Leaderboard
Popular Content
Showing content with the highest reputation on 09/04/2015 in all areas
-
If all you want to do is read the text file and store each character into different elements of an array, then all you need is this. #include <Array.au3> Local $sLines = FileRead("1.txt") Global $aTextArray = StringSplit($sLines, "") _ArrayDisplay($aTextArray)2 points
-
To switch between desktops you can use Send("#^{RIGHT}") Saludos2 points
-
I built my own libcurl for AutoIt based on BinaryCall UDF. libcurl - the multiprotocol file transfer library The Features: Pure AutoIt script, no DLLs needed.Build with SSL/TLS and zlib support (without libidn, libiconv, libssh2).Full easy-interface and partial multi-interface support.Data can read from or write to autoit variables or files.Smaller code size (compare to most libcurl DLL).The version information of this build: Curl Version: libcurl/7.42.1SSL Version: mbedTLS/1.3.10Libz Version: 1.2.8Protocols: ftp,ftps,http,httpsHere are the helper functions (not include in libcurl library). Curl_DataWriteCallback()Curl_DataReadCallback()Curl_FileWriteCallback()Curl_FileReadCallback()Curl_Data_Put()Curl_Data_Get()Curl_Data_Cleanup()See the example script for detail usage. Curl.zip1 point
-
I have not found much on OpenCV for Autoit. There is another UDF but it is not complete and it concentrated mostly on drawing stuff which is not what OpenCV was designed for. Ported about 80% of core and imgproc functions (CVcore_c.au3 and CVimgproc_c.au3). Why only 80%? I did not know how to handle functions returning a structure and I didn't really need the others There are also a few other functions found in other DLL libraries and my own functions to get every thing to work properly (OpenCVFcns.au3). You will need to download Opencv DLL libraries for this UDF to work and copy them in working directory where script will execute. I am using DLL version 2.4.5.0 . If you get current version 2.4.8.0, rename DLL file names in _OpenCV_Startup() function found in OpenCVFcns.au3 but I have not tested it with the new libraries! Any Opencv "C/C++" examples found on the web can now easily be rewritten to function with Autoit. If there are request, I can show how it is done. Start with simple examples first before trying to get Autoit to control the cursor with the movement of your eyes! Please post examples that you have tried here. Here is an example to find the contour of many shapes. I've also included it below. #include <GDIplus.au3> #include <Memory.au3> #include <GUIConstantsEx.au3> #include <OpenCVFcns.au3> ;start dll opencv _GDIPlus_Startup() _OpenCV_Startup() ;// load IPL type image ;Local $pimg = _cvLoadImage("shapes.jpg");Opencv function to load image Local $hImagep = Load_BMP_From_Mem(shapes_jpg()) ;get image from memory GDI bitmap Local $pimg = _Opencv_BMP2IPL($hImagep) ;convert GDI bitmap to IPL image ;// Create some CV and Autoit windows to show the input ;// and output images . ;// _cvNamedWindow( "Example-in" ) _cvNamedWindow( "Example-bw" ); Local $hGUI = GUICreate("GDI+", DllStructGetData(_cvGetSize( $pimg ),"width"), DllStructGetData(_cvGetSize( $pimg ),"height")) GUISetState(@SW_SHOW) Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ;// show input image ;// _cvShowImage( "Example-in", $pimg); ;// Create a destination image to hold output ;// ;//smooth and converting the original image into grayscale Local $pimgGrayScale = _cvCreateImage(_cvGetSize($pimg), 8, 1); _cvSmooth($pimg, $pimg, $CV_GAUSSIAN,3,3); _cvCvtColor($pimg,$pimgGrayScale,$CV_BGR2GRAY); ;//get ride of some noise by erode and dilate and convert to black and white image Local $pimgBW = _cvCreateImage(_cvGetSize($pimg),8,1); _cvErode( $pimgGrayScale , $pimgBW , Null, 3 ) _cvThreshold($pimgBW,$pimgBW,200,255,$CV_THRESH_BINARY);// may need to adjust threshold value (200) _cvDilate( $pimgBW , $pimgBW, Null,3 ) _cvThreshold($pimgBW,$pimgBW,128,255,$CV_THRESH_BINARY_INV); ;// show black and white image _cvShowImage( "Example-bw", $pimgBW); ; //setup memory block and sequence block Local $pstorage = _cvCreateMemStorage(0); //storage area for all contours Local $pcontours = _cvCreateSeq(0, 64, DllStructGetSize(DllStructCreate($tagCvPoint)), $pstorage); ;// find all exterior and inner contours in a list format (no vertical) Local $num_found = _cvFindContours($pimgBW, $pstorage, $pcontours, DllStructGetSize(DllStructCreate($tagCvContour)), $CV_RETR_LIST, $CV_CHAIN_APPROX_SIMPLE, _cvPoint(0,0)) ;// cycle through all exterior contours "0x4299500C" or interior contours "0x4299D00C". Remove if statement for both Local $pnext = $pcontours for $t = 1 to $num_found Local $vnext = DllStructCreate($tagCvSeq,$pnext) $pnext = DllStructGetData($vnext,"h_next") If $pnext = 0 Then $pnext = $pcontours + DllStructGetData($vnext,"header_size") ; skip over first sequence which is empty ;// Check if sequence is an exterior contour "0x4299500C" If DllStructGetData(DllStructCreate($tagCvContour,$pnext),"flags") = 0x4299500C then ; // determine number of elements in sequence and create an array Local $datasize = DllStructGetData(DllStructCreate($tagCvContour,$pnext),"total") dim $apts[$datasize+2][2] $apts[0][0] = $datasize+1 ; // retrieve x,y values of each points in sequence for $itt = 0 to $datasize -1 $vpoint = DllStructCreate($tagCvPoint, _cvGetSeqElem($pnext,$itt)) $apts[$itt+1][0] = DllStructGetData($vpoint,"x") $apts[$itt+1][1] = DllStructGetData($vpoint,"y") If $itt = 0 Then $apts[$datasize+1][0] = DllStructGetData($vpoint,"x") $apts[$datasize+1][1] = DllStructGetData($vpoint,"y") EndIf $vpoint = 0 Next ; // draw it in autoit gui using gdi drawlines _GDIPlus_GraphicsDrawLines($hGraphics, $apts) $vnext = 0 EndIf sleep(1000) ;just to show that each sequence is drawn individually Next ;// Wait for the user to hit a key, then clean up the windows ;// ;_cvWaitKey( 0 ); Opencv function to wait for a key pressed Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ;// Be tidy ;// _GDIPlus_GraphicsDispose($hGraphics) GUIDelete($hGUI) _GDIPlus_ImageDispose($hImagep) _cvReleaseImage( $pimgBW ); _cvReleaseImage( $pimgGrayScale ); _cvReleaseImage( $pimg ); _cvDestroyAllWindows() _cvClearMemStorage( $pstorage ); _cvClearSeq($pcontours) _Opencv_CloseDLL() _GDIPlus_Shutdown() Exit ; #FUNCTION# ==================================================================================================================== ; Author ........: Mylise ; based on _GDIPlus_GraphicsDrawPolygon ; =============================================================================================================================== Func _GDIPlus_GraphicsDrawLines($hGraphics, $aPoints, $hPen = 0) Local $iCount = $aPoints[0][0] Local $tPoints = DllStructCreate("float[" & $iCount * 2 & "]") For $iI = 1 To $iCount DllStructSetData($tPoints, 1, $aPoints[$iI][0], (($iI - 1) * 2) + 1) DllStructSetData($tPoints, 1, $aPoints[$iI][1], (($iI - 1) * 2) + 2) Next __GDIPlus_PenDefCreate($hPen) Local $aResult = DllCall($ghGDIPDll, "int", "GdipDrawLines", "handle", $hGraphics, "handle", $hPen, "struct*", $tPoints, "int", $iCount) __GDIPlus_PenDefDispose() ; does destroyed @error, @extended If @error Then Return SetError(@error, @extended, False) If $aResult[0] Then Return SetError(10, $aResult[0], False) Return True EndFunc ;==>_GDIPlus_GraphicsDrawLines ;----------------------------------------- ; used to load images stored in memory Func Load_BMP_From_Mem($pic) ;coded by UEZ. Thanks to ProgAndy for mem allocation lines Local $memBitmap, $len, $tMem, $hImage, $hData, $pData, $hStream, $hBitmapFromStream $memBitmap = Binary($pic) ;load image saved in variable (memory) and convert it to binary $len = BinaryLen($memBitmap) ;get length of image $hData = _MemGlobalAlloc($len, 0x0002) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002) $pData = _MemGlobalLock($hData) ;translate the handle into a pointer $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE $hStream = _WinAPI_CreateStreamOnHGlobal($pData) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents $hBitmapFromStream = _GDIPlus_BitmapCreateFromStream($hStream) ;Creates a Bitmap object based on an IStream COM interface $tMem = "" Return $hBitmapFromStream EndFunc Func shapes_jpg() Local _ $FileBin = "0xFFD8FFE000104A46494600010101007800780000FFE1006845786966000049492A000800000004001A010500010000003E0000001B010500010000004600000028010300010000000200000031010200120000004E00000000000000780000000100000078000000010000005061696E742E4E45542076332E352E313000FFDB00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101FFDB00430101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" $FileBin &= "010101010101010101FFC00011080251023E03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101" $FileBin &= "010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00FEFE28A28A8E45DDFE1FE401451451C8BBBFC3FC8028A28A391777F87F900514514722EEFF00" $FileBin &= "0FF200A28A28E45DDFE1FE401451451C8BBBFC3FC8028A28A141269EBA7A7F9005145156014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014515C0FC41F8ABF0C3E1368CDE23F8A7F113C0FF000DFC3E8CE8DADF8EFC55A1F84F4A0F1C4F70E9F6FD76FAC6D4BA4314B314F37788E377C6D0C4454A94E8C2552AD4852A704E53A95271842115BB94E4D4629756DA474E0F058CCC715430597E1313" $FileBin &= "8EC6E26A46961B0983A157138AC45593B469D0C3D084EAD5A927A4614E12937B2677D457E5D78DFF00E0B3FF00F04D3F015D4B63A9FED3DE1DD6AEE2965876F827C29F107C796923C5F78C5AB7843C27ACE8CF11E04538D43C89BFE594AE0311E6F6BFF05E9FF8265DC4EF0CDF1AFC4D651A3ED5BABAF83FF15DE0954330F3635B2F085DDC84C286C4B6F1498603CB0C1957E6AB71B706E1EA3A55B8AF8769D44ED284B39CBD4A2FB497D63DD7DD4AC7EDB80FA2F7D24F34C2431F97F803E32E3307520A74B1347C35E309D1AD07B4E84FFB212AF17D1D2E74F5B6CEDFB1B457C11F0C3FE0A89FF04FDF8C1716F67E0AFDAAFE148BEBB481AD34EF17EB171F0D" $FileBin &= "F52BB6B85778E0B5D3FE2259F85AF6E2EC2A379B650C0F77091B668632715F76D9DF59EA36D05EE9F776D7D6773124F6D77693C5736F710C8A1A39619A1678E58A452192446656520A920E6BDAC0E6796E674FDB65B9860B30A4AD7A982C550C55357DAF3A152A455FA6BA9F98F1470471A70462D6038D384389F8471D27251C1713E419AE438A9383B4F970F9AE1309565CAF495A0F95E8ECCB545145771F2E14514500145145001451450014514500145145001451450014515E53E12F8DDF0BFC73E3FF001DFC2FF0B78B6CB56F1C7C356B25F18E870C5768FA6B5F2FCBE4DD4F6F1D9EA42D6602D3523A65C5D0D2EF992CB51FB35D4891371E2B31CBF055" $FileBin &= "B0386C66370985C466788960F2EA188C452A3571F8B861EB62A786C1D3A938CF135E385C3D7C44A951539AA346AD571E4A7292EDC2E5B98E3A863F1382C06331786CAB0D0C6E6788C361AB57A39760EA626860E18AC755A509430B879E2F1386C2C6B579429CB115E8D152752A422FD5A8A28AEC38828A28A0028A28A0028A28A0028A28A0028A28A0028AF16F8D5F1F3E1DFC03D2746D67E20DDEA76F6DAFEA52E99A6C7A569971A95C4B3DBDB35D4F23AC6638A1861408AC64995DDE68FCA8E4513345F3A7FC3C7BF66AFF009FFF00197FE1293FFF002557E63C4DE34784DC199BD6C838AFC43E13E1FCEB0D4E856C46579A67384C26368D2C4D38D6C3CEAE" $FileBin &= "1EA5455211AD4A51A94F992E684A325A4937D14F0989AB153A746A4E0EE94A316D3B6F67D4FBD28AF82FFE1E3DFB357FCFFF008CBFF0949FFF0092A8FF00878F7ECD5FF3FF00E32FFC2527FF00E4AAF03FE2647C04FF00A3BBC05FF890E07FF96F9AFBCBFA8633FE81AAFF00E027DE9457C17FF0F1EFD9ABFE7FFC65FF0084A4FF00FC9547FC3C7BF66AFF009FFF00197FE1293FFF002551FF001323E027FD1DDE02FF00C48703FF00CB7CD7DE1F50C67FD0355FFC04FBD28AF82FFE1E3DFB357FCFFF008CBFF0949FFF0092A8FF00878F7ECD5FF3FF00E32FFC2527FF00E4AA3FE2647C04FF00A3BBC05FF890E07FF96F9AFBC3EA18CFFA06ABFF00809F7A51" $FileBin &= "5F05FF00C3C7BF66AFF9FF00F197FE1293FF00F2551FF0F1EFD9ABFE7FFC65FF0084A4FF00FC9547FC4C8F809FF477780BFF00121C0FFF002DF35F787D4319FF0040D57FF013EF4A2BE0BFF878F7ECD5FF003FFE32FF00C2527FFE4AA3FE1E3DFB357FCFFF008CBFF0949FFF0092A8FF008991F013FE8EEF017FE24381FF00E5BE6BEF0FA8633FE81AAFFE027DE9457CBBF087F6C0F831F1B7C5A7C13E09D435D3AF7F65DE6AD143AC689369B05C5BD8496C9711413B4B2ABDD2A5C89C4242EE820B870D98F07EA2AFD278578C78578E32BFEDBE0FE20CAB89328FACD6C1BCC727C651C761162B0EA0EB61DD6A3294555A4AA5373836A51538B6AD246152954A" $FileBin &= "32E4AB0942564F964ACECF67E9A3FB828A28AFA4330A28A2800A28A2800A28A2800A28A2800AF0BD0FE3F782F5EFDA1FC7DFB37D9CD9F1AF803E1AF81BE24EA2448AD1CF63E30D67C4DA54FA7AC4A37C577A1C1A4F87751BC690ED9ADBC61A5F92098A7DBEE4CCA8ACEC405452CC4F002A824927B000126BF915FD9B7F6A4D5AFF00FE0ACC3F69ABBD498FC37FDA37E3278F3F679B19CB8027F08BD9E87E19F84CCF2093ECC22BCD5744F04B32A9744934AD4595DD9E395BE7B3CCEE39457C9A93B3FED0CC6187AB7B5A9E15C7D9D4ACEFB2A75AB61AEF4F75BF47F947897E24D1E01CC7C3FC14E309AE2BE2DC36538E73B7FB2E4D3A6F0B8BCC1BBFB90C2E65" $FileBin &= "8FC9D549ECA9D59DDDAE9FF5D9451457D09FAB851451400514514005145140051451400578DFC76FDA07E0EFECCFF0F355F8A7F1C3C79A27C3FF000569188E4D4F5799CDC6A17D2472CB6FA4685A5DB24FAA6BFADDE24329B3D1F47B3BDD46E56295E2B6648A564F3CFDB13F6BAF855FB157C12F107C68F8AB7CED6D64574BF0A7856C2488F88BC7BE30BC8666D1FC27E1DB693FD6DEDF3C324D7774C86D748D2EDEFB57BE296765311FC847C40F15FC65FDB5BE25A7ED07FB5A5DB5C3C324EFF0A3E064124C3C09F0A7C3B70EB25BC2FA44C766A1E21BB8D209755BED4E39350BC9E2864D5581B6D3748D03F3BE37E3DA1C30A397602953C7E7F88A5ED69616" $FileBin &= "7292C2E06849B8C719994E0D4E34E5252587C3536ABE2E50928CA9528CEBC3FB23E8BDF44CCD7C72957E32E2CCC319C23E1264D8F780C6E7986A14EA679C579B51853AD5B86B8330F894F0D571B4A8D4A53CDB3BC5C6A655C3F46BD19D7A78EC756C26578AFB97E3DFFC15FBF6B0FDA727D43C3FFB21786E3FD9AFE0DCF24B6B0FC68F1EE9B67AD7C57F14D816789AFBC2DE1A98DD687E19B6B981F746EE9AADEE163BAB0F14E977A92DA43F9CF73F00740F16F8826F1B7C67F1578EFE3C78FAF4A497FE2CF8A9E2BD67C4777348A72638EDEE6F193EC2BC241637B25FC56F12AC31158D428F78555550AAA155400AAA0055038000180001C003814B5FCF59A6" $FileBin &= "3731CFAB7D633EC7D7CD6A7339428D77CB80C3BBDD2C2E5B06B09414744A7ECE788924BDAD7A925CC7FB09C0BC35C1BE13E5AB26F09B84F2AE01C17B254311986570F6FC5D9BC395467533FE33C4C67C4199CEB34E757091C5E1727A539CE381CAB0745AA2B98D1FC13E0DF0F22C7A0F84FC37A322A8551A5E89A6D8E141C819B6B68CE377CDC9E5BE63CF35D0496B6D2A7972DBC12478DBE5C9146E9B4F51B594AE381C631C54F4573461082E5842318AD14631514976B249745F71EDD5C562ABD475ABE26BD6AB26E4EAD5AD52A54727BC9CE72949B7D5B773CD7C45F073E1678AE3923D7BC01E16BD797716BA4D22D2CF5005D83B98F52B18EDAFE22ECA0B" $FileBin &= "98EE54BF46C824537E1AD9FED01FB30DFAEB7FB217ED0DE3DF854219DAEE4F871AF6A92F8C7E13EB0C64DF25BDF78575E8F53B081AE119E197557B0D4755823666B2B8B5B83F695F4CA2B3851852AD1C5619D4C1E2E0EF4F1982A953078BA6F469C31386952AC95D26E2E6E32B5A516B43AF119AE2B1F9656C8B398E1788F87B131E4C5F0E713E0B09C47C3D8B859AE5C464B9D51C6E5F37CAE4A35561E35A9733951AB4E7692FD5DFD91FFE0B6FA0EB9E21D0FE0E7EDD3E0FD3BF67DF895A9BC761A1FC54D2E69E5F815E36BB2C234326AB7B73773F80AEE72D1E5357D4753D1213BA5D4B5BD1249ED74F7FDF5B7B882EE086E6D668AE6DAE2249A0B882449A" $FileBin &= "19E19543C72C52A164923910AB23A332BA904120827F88BF15784BC39E37D16EFC3DE2AD22CF5AD22F536CD69791EE0AE0109716F2A959AD2EE1277DBDDDB4915C40E03C52230CD7D17FB07FFC1403C79FB0078B7C39F03BE3EF88B56F1CFEC6BE28D4E1D17C11E3FD5A49B50F10FECFBA95ECC12CF4ED62EB6B4B77F0EDA47DB35AE08D1600DA8E8896F15ADDE897DFACF09789B8CC1D6A396F16578E2B055671A387CFDC214AB616726A34E9E710A718D19D0937CAB31A50A7ECA5CAF174DC653C4C7FCFBFA427D07387389B2DCCF8DBE8FD95D5C8F89F0346BE639C78474F1188C765B9EE168C255B178AF0E7138CAB5F30C3E6942119D79F0663F138DFAF" $FileBin &= "5355170EE3635E187C8EB7F5DF4553D3EFEC756B0B2D534CBCB5D474DD4AD2DEFAC2FECA78AEACEFACAEE249ED6EED2E607786E2DAE20912586689DE3963757462A41372BF7C4D349A69A6934D3BA69EA9A6B469AD99FE49CA3284A509C6509C24E3384938CA328B6A51945A4E328B4D34D269A69AB8514514C90A28A2800A28A2800A28A2800A28A2803C13F69AF8D9A67ECF5F04FC73F142FBC89AF346D2DAD7C37A74CDC6ADE2BD51858787B4EF2D59259207D4668A7BF301325BE976F7D7614A5BB63F9DFF00833E2EF137ECD3F137E1B7ED19AD5FEA7A85C6B7AEDF41F1D3CC7966BAD4B41F8817EB73AA5D5CC2399AEF4CB9962D51A22D8BAF10D9581D" $FileBin &= "EA8CD8FB17F6FEF89FFF000B9BF683F0CFC0ED22E8DD7817E092C5E2BF1DAC4FBECB51F1FEA56F9D2B4B9CAB3C333689A64A8814ED2B26A5E22B29D7CDB650BE0DAFE8B65E23D1753D0B508FCCB3D52CE6B398000B209508496227859A07D9340FD63963471CA8AFF387C76E39C771678952C470F633D950F0BB171C270BE263272A13E30C162686373ACC64A0D7B5A14B1386C2F0ED483BDE961736A69FB3C5CD4BFD3DFA3DF00E5DC1FE16C68712607DBD7F16B072C6716616504B114F8231D84C460722CB20E7193A588AF83C5E3389E94E2AEAAE3724ACD2AD81838FF489617D67A9D959EA5A75D417B61A85ADBDED95E5B4A935BDD5A5D44B3DB5CC1346" $FileBin &= "5A39619E174922911991D18329208356EBF347FE099DF1AAFBC61F0AB57F82BE2FBDF37C79F01EFE2F0D0F3A46371A9F816E3CD3E13D4A31236E960B28A19F444112B2C16165A44D3B7997C85BF4BABFBBF80B8BF03C79C2190F1665EBD9D1CDF030AD5F0D292954C063E94A587CCB2EACD69EDF2FC7D2C460EAF473A2DABC5A6FFCF5F10B82F30F0F38D388783B3297B5AF9263E7428E2E3171A598E5F5A30C4E579A504F5FABE679757C2E3A87554EBC54AD24D228A28AFAF3E3028A28A0028A28A0028A28A0028A28A00FCD1FF828DFFC7BFECF9FF65497FF0040D3EBE5DAFA8BFE0A37FF001EFF00B3E7FD9525FF00D034FAF976BFC9CF1F23197D203C4D" $FileBin &= "BC53B51E09B5D276FF008C5705DCFA2C27FB9E1FFEE27FE961451457E5FECE1FC90FFC057F9792FB8DEEFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC1451451ECE1FC90FF00C057F9792FB82EFBBFEBFE197DC6DFECAFFF0027ABA77FD881AD7FE9B56BF6D6BF12BF657FF93D5D3BFEC40D6BFF004DAB5FB6B5FDD5F421D3C31E30B7FD1D7E30FF00D47C98F2734FE352FF00AF10FCE41451457F649E6051451400514514005145140051451401F13FFC1457E35FFC281FD8C3E3D7C40B6BB167AECBE0BBBF07" $FileBin &= "784E58E40974BE2AF1EC91783F45BBB25FBD35C6933EB1FDB8D1A86C5B697712BE2289D87F273E26F00EA5E13FD9C3C3D068AD269FE2CF8676DA17C44D3AEE05513E9FE26D16E8EBFABDDC65949325AFDAF57684919DD1C4194A8295FB47FF0005AEF881FF000937897F658FD97EC67F321F10F8C352F8D3E3BB3462857C3DE07B49F4CF0EC17657EFD96B5737DE2B8D637FDDFDBB49B4931E6A42C9F015DDADBDF5ADCD95D44B35ADE5BCD6B730B8CA4B6F711B45344C3BAC91BB230F426BF20E30ACF30CE7154149FB3C0612183834FE1C45751C5569C5F49454B0B1EEA54F7BE8BF803E90199BE28F10F37CAE9D56B0DC2F9161B87F0F38C9DA8E6D99D386" $FileBin &= "75996229C93D2A53856C969371B4A1570728B7CD1B47FA9BF805F1534DF8E1F04BE14FC5ED28C4B69F117C03E18F1635BC2C1D6C2F758D26D6EB52D2DC867DB3E93A8BDDE9B7285D8C7716B2C6CCCCA4D7AED7E2FF00FC111BE254FAA7ECE3E3DF807AC5EB4FAF7ECE1F15BC49E19B686570F37FC213E2EBBBBF137872F8B6164115DEB7278C21B5560CB1DA58C0B13AC5B2083F682BF4CC971DFDA394E5F8D7F1D7C3539554BECD78AF67888FFDB95E1523F23FB2FC3AE25FF5BF81B85F88E4E2F1199E4F85A98E8C6D6A799D087D5734A3A5B5A198D0C5516AC9DE1AA5B228A28AF4CFB40A28A2800A28A2800AA1AAEA9A7687A66A3AD6B17B6BA6693A458D" $FileBin &= "D6A7A9EA37D3C76D6761A7D8C125CDE5E5E5CCCC90DBDB5ADBC524D3CF2BAC71468EEECAAA4D5FAFC4CFF82E7FED09ACFC38FD97BC3DF003C0DA89B1F889FB5AF8C23F85B6F24324915D58FC39B44B7BDF893AA2142375ACB6777A3785B548DB3BB4AF155EC8837C431E3710E734387F25CCB39C4479E180C34EAC692769622BB6A9E170D07ADA789C4CE950868FDFA88FD27C1FF0DB34F17FC4EE0AF0DB28AB1C362B8B33CC2E5D5F1F383A94B29CAE0A78BCEF3AC4423694B0D92E4D86C7E6B898A6A52A183A8A3EF347E23FED01FB416B5FF050BFDA7B5AF8FBAC9BE4F803F0A753D4FC1DFB33F83EF838B2BBB5B1BC116AFF0013AFAC25DB1FF6C788EFAD" $FileBin &= "22BD47780CD671C3A5E8EF2BCBE178EE6E74EB07C2DE1CD33C21E1CD17C31A34220D3342D3AD74DB38F03718ADA25432CACA143CF3B869EE252374B349248F96724EF57F244EAE2B155F138FC7D5FAC6618FAF2C563ABEB69D7A96F729A7AC70F420A3430D4F6A5429D382DB5FFA17A180C8B21CAF25E14E12C02CA783B84B2CA19070B654ADCD85CAB08E4D6231528A8AAF9B66B889D7CDB3BC6C97B4C766D8DC5E266FDF4A2514514005145140051451400562788FC3BA378B743D4FC39E20B18751D1F57B492CEFAD261959229070E8C30D14F0B849ADAE232B35BDC471CF0BA491AB0DBA294A319C65092528C938CA3249C65192B34D3D1A69B4D3D1AD0D" $FileBin &= "28D6AB87AD4B1142AD4A35E854856A35A94E54EAD2AB4E4A74EA539C5A942709A5284A2D4A3249A69A3F473FE08A9FB5BF883C29E21D73FE09E3F1935D9F53BFF0769175E2CFD997C51AA4A0CFE22F8676ECD26A7F0FDA79363DC6A1E0E4325FE8B6ABE73C7A241AEE9F6FF67D1FC33A6249FD1E57F07BF16F59F14FC2ED47E1E7ED29F0E1DADFE23FECEFE32D27C7DA2CB1B3C6351D12DEF208FC4FA05FB46ACCFA3EA9A66F8F578C865934A1A85BE365D4A1BFB80F84DF127C3BF18FE177C3CF8B3E1199AE3C31F127C17E1AF1C68323ED131D2FC4FA45A6B1671DC2A332C77314376915CC3BB30CE9244D86422BF75F09F882AE372FC570EE32ACAA627235" $FileBin &= "46581A9524E552B64D88E68E1A3293D673C0D6A75707296AFD8470929B73A8DBFF002A7F681784381E1CE2FC83C64E1BC0D1C164BE2ACF33A3C5182C2528D2C265BE24E4AB0B5B3CC452A34E31A786C3F1665F8FC0711D2A515184B36A9C454F0F0861F0D0A70F42A28A2BF5C3FCF10A28A2800A28A2800A28A2800AF15FDA23E31E91F00FE0DF8EBE29EAC6091BC37A34CDA3584CFB06AFE23BD2B63E1ED246D65936DF6AD71690DC3C5B9EDED0DC5D15D90391ED55F871FF00050EF8A1FF000B6FE38F83FF00679D1EE0CFE10F851F67F1E7C4911B96B6BEF15DF5B2B787F42B850C6397FB374ABB59A44C9DCBAF5EC4CAB3E9FC7E57E3371E3F0F780B35CD" $FileBin &= "F09387F6EE3DD3C8F8668CECFDAE7D9A29D2C255707F1D1CBA947119B62E3A5F0980AE935271BFEBBE07F8791F127C44CA325C642A7FABF97AA99FF15D785D7B1E1DCA654EB636929A69C2BE6756586C9B072576B1B98E1DD9A4CF917E19E95ABC5A4EA1E2AF154F35F78D3E20EAD7DE33F166A1743FD2AE753D6EE25BE2B3E79564170D24B1602C7753DC85014803D268030303A0E0515FE6D60F0D1C1E1A961E339D574E3FBCAD564E75ABD69B73AD88AD395E552B622ACA75AB5493729D49CA526DB67FA8B8DC54B1B8AAD89953A745559FEEE8518A850C3518254E8616841251A787C3508D3C3D0A714A34E8D38422928A461F83BE23CDFB38FED03F0F7E" $FileBin &= "3A44F2C7E15D4274F007C55821DFB25F0A6B72C71C7AACD1C78699B46B98ADB5250DCCB3693A75A2E04CD5FD275BDC41776F0DD5B4B1DC5B5CC51CF04F0BAC914D0CA8248A58E442C92472232B2BAB1565208241AFE6C7C4BA0D978A341D5740D41775AEA9672DB3B601689D8660B88C12079B6D3AC73C44F0248D49E057E9D7FC135FE36DEFC41F83575F0AFC5B77E67C42F8137B1782F54499CBDC5F7857128F076ACACCDBA6812CADAE34359797917468AEA539BC8DA4FE93FA32719AC9789B36F0FF001B55432FE2755F88787799A50A59EE0E8C239F65D06FAE6180A74336C3D28D97B5C166D55A73AADBFE5CFA55F037F6EF0A64FE23E028F3663C26F0" $FileBin &= "FC33C4FC91F7EBF0FE36BCE5C399A55B5AEB2CCC6AE2325C4559734BD8E6192D14D428E9FA35451457F731FC00145145001451450014514500145145007E68FF00C146FF00E3DFF67CFF00B2A4BFFA069F5F2ED7D45FF051BFF8F7FD9F3FECA92FFE81A7D7CBB5FE4EF8F7FF002901E26FFD79E09FFD657047D1617FDCF0FF00F713FF004B0A28A2BF31360A28A2800A28A2800A28A2800A28A28036FF00657FF93D5D3BFEC40D6BFF004DAB5FB6B5F895FB2BFF00C9EAE9DFF6206B5FFA6D5AFDB5AFEE7FA117FC9B1E30FF00B3AFC61FFA8F931E5669FC6A5FF5E21F9C828A28AFEC93CC0A28A2800A2A96A376F61A7DF5F476379A949676973751E9BA78B6" $FileBin &= "6BFBF7B785E55B3B25BBB9B4B46BBB96410DB2DCDDDB40667412CF121675FC9CF117FC16A7F635F08788F57F07F8AAD7E367877C57A05FDCE97AE787359F851AB69DADE93A8D9B14B9B2D434DBABB8EEED6E21653BE296256030D8DA41AE2C666580CB941E3B1987C1C6A36A9CB115614A336AD75194DA4DABA6D2774B5B58F9AE23E32E15E11861AA71467F95E434B1B39D3C255CD7174F074F11520939D3A352B38C27522A49BA71939D9DED6D4FD70A2BF1EFFE1F8BFB0EFF00CFCFC5EFFC363A97FF0026D1FF000FC5FD877FE7E7E2F7FE1B1D4BFF00936B83FD65E1EFFA1D659FF85943FF0093F3FCFB33E5FF00E234784DFF00470F84BFF0F383FF00E5" $FileBin &= "87EC2515F8F7FF000FC5FD877FE7E7E2F7FE1B1D4BFF00936B9EF16FFC172BF63EB7F0AF89A7F0947F14F51F15C3A06B12F8674FD43E1CEA169617DAFC7A7DCBE8D677B74D7A16DAD2E7515B682E2E1B02186479091B490A5C4FC3D18CA4F39CB9A8C5C9A8E2E8CA4D257B28A9DDB7D12D5BD0CEAF8D7E1352A552ABF1078566A9C27370A79BE16A549F245CB969C2351CA7395AD0845372935149B763F31FF68EF881FF000BD7F6FF00FDA57E22C731BAF0F7C2C934BFD9F7C192316963893C1CCE3C622DA424C457FE1318B5BBC85E1014DAEB58058C924B3E6578BFC01D1750D2FE19E91A96B52CD73E22F195D6A3E38F10DE5C8C5D5EEA7E27BA6BF5BABA" $FileBin &= "C807ED32D81B1F3CB004CC1FE55FBABED15F9146B4F132AB8BA8AD531B5EB63269EF1789A92AB187FDC384A34D2E8A09743F80E18FC46715B1F9EE322E38CE21CCB30CFB13197C54E79B62AA6329D077D9616854A38484536A30A118A7648F68FF0082737C403F07FF00E0A20DE14B99FECDE19FDA8FE16DFE902367686DA4F887F0EA27D734A9989FDC34A9E1CD3F57B2855F0F35E788152361348B1DD7F5115FC587C53D7B57F86FAA7C29F8EDE1CB79EE35FF00817F153C1DE3D861B60CD35EE956BACD926AFA56C5652F6FA9EDB3B7BD52C11AC85C2CACB133B2FEE52FFC1717F61D2066E7E2F06C0C8FF8563A89C12391C5E9E87FFAD9AFB2E12CF30197" $FileBin &= "E1B1B80CC31B87C1FB2C5BC4617EB3561454E8E2E2A738D3E7694B93130AF29DBE1552374AEAFF00D13E03F89BC2DC299371070BF1671165790AC1E772CDB2579AE329612388CBF3DA4B118AA58675A51551E1F38A198D5ACA0DF22C6527249CAF2FD85A2BF1EFFE1F8BFB0EFF00CFCFC5EFFC363A97FF0026D1FF000FC5FD877FE7E7E2F7FE1B1D4BFF00936BEB3FD65E1EFF00A1D659FF0085943FF93F3FCFB33F77FF0088D1E137FD1C3E12FF00C3CE0FFF00961FB09457E3DFFC3F17F61DFF009F9F8BDFF86C752FFE4DAED3E19FFC1603F652F8C7E39D13E1AFC31D1BE3778CBC71E21BB5B4D33C3DA37C2FBD9AF1DB23CFB9BB793528ADB4DD36CA326E" $FileBin &= "352D57529ED34DD36D524BBBFBBB7B68E4956A1C4790D49C29D3CDF2FA952A49429D3862A94A739C9A518C2319394A526D24926DB764AE6D86F183C2EC66270F83C271EF0BE27178BAD4F0F85C350CDB0B56BE22BD5928D3A34294272A956AD493518421194A526924D9FAA1452039009054900E0E32323A1C12323A1C1233D0914B5ED1FA3857F257FF000556F1ACDF13BFE0A7DA07835E499B42FD9C3F67ED39ADAD2570F0C5E36F88F7F71AA6A77D6F1F9B2A20BCF0B6A9E1FB791C456F7065D2577B4B08B723FAD4AFE2FBF69ABA6D5BFE0A81FB7FEA53AFEFED75DF829A446CC77B0B7B0F857A4E9A803ED5C2B45A4DB9D98F94054CBECDC7F25F187113" $FileBin &= "870FE53848DF931FC4383A75927A4A9E13079866504D754B1182A13B778A7D0FF423F6716514313E2E7883C43563175F84BC1DE21C5E5D271529D2C6F11712F08705569C1B69C1BC9F89736A529C6EF96AB85B96723228A28AFC24FF0056028A28A0028A28A0028A28A0028A28A00CFD5F4CB4D6B4AD4F47BF8C4D63AB69F79A6DE4449025B5BEB792DAE23C8C11BE295D723919CD7EE37FC1063E235FF8BFF608D2FC09AC5C1B8D5BE017C56F895F07AEE4937ADC79361AADBF8CF4E8E68D9576259E9FE34B6D36DC234A8B6D63146D2B4B1CA17F126BF4D3FE0805797315BFEDD7E1D4948D26C7F688B0D72D6D78D916A3E22D0EF46A93A9237E6E174AB152" $FileBin &= "A58A22DBA2C688320FD978735E787E38CB141DA38DCBF36C0D55FCD054A8E3E0DAD9F254C12B377B29CADF13BFF377D3372AC3E71F45AE39A9888A955E16E30F0FB8AB013695E9622A66198708E25424D734557C27144BDAC22D2A8E85194D374616FE8928A28AFE9E3FC300A28A2800A28A2800A28A2803C93E3B7C5AD0FE067C25F1CFC53D7D90DA784F44B8BCB4B46711BEABACCE56CF42D1A16ED3EAFAC5CD969D1BE36C46E7CD90AC71BB2FF3B1F0DAD35CBCB3D6BC7DE309DEF7C71F1375ABDF1A789EFA6044AF71ABDC4D796F6FB493E4C30C770F2C76B80B68F7325B2011C48ABF657FC1477E279F8A3F177C0FFB3468D7064F0D7808DAFC47F8A861" $FileBin &= "7CC771ABCD6E57C2FE1CB8DBB48F234DBD37D750333C73C7AFD95CA05B8D2C6DF9F80000038000007A01C0AFF3B7C7CE327C65E2355CAF0B5BDA643C011AF9461D4257A58AE28C6469CB3EC669A49E5942387C968C9A6E962239BC232B5568FF004BBE8EBC0DFEA478654B38C651F65C43E23CB0F9CD7E78DAB61384B052A91E1DC1EB770FED6C44B159ED78A6956C2CB249CA37A485A28A2BF213F6A0ACFF00871F1324FD9BBF68FF00017C62F35ADFC13E2E921F871F15D33B6DE3D17579A05D3FC41719DC14E87756D67A94D304F30DAE90D610B2B6A4FBF42B9EF167876D3C59E1DD5FC3D7C0791A9D9C902C85771B7B81FBCB4BA45C8CC96B7290DC2027" $FileBin &= "05A300E4122A3EB19865F89C067193D45433AC8B30C267393D66DA8C730CBEAAAD4A9546B7C3E2E0AA60B1707A54C2626BD392719B45FD572CCCB0D986499E5275F22E20CBB1791E774524E72CB732A4E8D6AD4AE9A58AC14DD2C7E0A76BD2C6E170F562D4A09AFE95A391258D258D95E39115D1D48657470195958120AB0208209041C8A7D7E7C7FC138FE395D7C51F8203C07E29BA67F88DF042F23F00F89629E5325D5E68D6A92C7E12D6D8905E48EE74CB497497B991E49AF2F743BDBD91B17285BF41EBFD4CE0BE2ACBF8DF85722E2BCADBFA9E7797D1C646949A7570B5DA74F1981AF6F871380C653AF83C4C6DEED7A1523D0FF23F8E784332E02E2EE2" $FileBin &= "0E0FCDD278EC8732AF81956826A96330E9AA982CC30F7D6585CCB05530F8FC24FEDE1B114A5D428A28AFA73E5028A28A0028A28A0028A28A00FCD1FF00828DFF00C7BFECF9FF0065497FF40D3EBE5DAFA8BFE0A37FF1EFFB3E7FD9525FFD034FAF976BFC9DF1EFFE5203C4DFFAF3C13FFACAE08FA2C2FF00B9E1FF00EE27FE961451457E626C145145001451450014514500145145006DFECAFF00F27ABA77FD881AD7FE9B56BF6D6BF12BF657FF0093D5D3BFEC40D6BFF4DAB5FB6B5FDCFF00422FF9363C61FF00675F8C3FF51F263CACD3F8D4BFEBC43F390514515FD927981451450015F9E3FB6F7FC13B7E167ED7FA743E2AB2B83F0BFE3F786EDC1F057C" $FileBin &= "62F0EDB08F52125BA1169A2F8CAD6DDEDCF89BC3AC711A24D326A9A4AB39D2AFA1B69F50D3F51FD0EA2B931B81C266386A984C6D08622854569426B66BE19C24AD2A7522F5854838CE0D271699E1F1170DE47C5994E2B23E21CBB0F99E598B8A5570F888DF96717CD4EBD0AB171AB86C5519DA74313879D3AF42A253A55232499FC67F8824F8A7F00BE22B7C0CFDA8FC343C0FF1010B0F0C78BADF73F807E2769B1BAC306B7E17D6FCA82C9DEE8B4624B6DB6CD05DB9D3EF6CF47D5F3A2C5E8393EA7F335FD3BFED11FB35FC1EFDA9BE1DEA3F0CBE33784ED3C49A0DDEF9F4DBE5DB6BE20F0BEADE53476FAF785F5A446BAD1F57B5DC409A12D6D796E65D3F53" $FileBin &= "B5BFD32E6EECA7FE61FF00687FD9CBE38FFC13FB5D8ECFE223EA7F15FF00668D46FD2C7C1BF1BF4EB1967D5BC1EB712F9763E1DF895A7DBF9F2D95C401A382DB51F9ECB535DADA3DCCD7064F0DE93F94E759062F2372AC9CF19955FDDC535CD88C1A6F48632314B9A9AD1471704A3A5AB460ED297F0B788DE14E79E1AD4A99852789CFF825CFF779CFB3F6B99E43194AD0A1C454E9412AB8385D469E794611A56B4731A5869F2D7AEB93EA7F33464FA9FCCD51D3B52D3F57B1B5D4F4ABDB6D474EBE852E2CEF6CE68EE2D6E6171959219A2664753C8CAB1C1054E18102ED78EB95A4D59A6934D59A69D9A69AD1AB5ACD791F9D45C27152838CA324A51946D28C" $FileBin &= "A2D5D34D5D34D6A9A766B60A28A299414B93EA7F33494502B27BA4FE42E4FA9FCCD35E411A349248111159DDDD82A22282CCCCCC405550096624000124E0562F88BC47A1F84F48BBD77C45A9DAE93A4D8C65EE2F2EDF6A0383B228900696E2E66236416B024971712111C31BBB053E99FB2EFEC53F197F6FCBAB1F16F8BBFE120F829FB220B8499350F2C597C42F8D56B1C87741E1D86749534BF0C4C10AC9AEDD433E9AFE605B083C4572B31D11D2A55F155E184C150789C5D4D634A164A11BA4EB579BF768D08E9CD5276BBB460A536A26D97E0333CF334C3E43C3D96D5CE33CC5AE6A381A0E30850A1CCA13C76638992F6597E5D45BFDEE2ABB4A4ED4A842" $FileBin &= "BE2274E8CFC87E17F83FE35FED8FE3BB9F855FB2EE9E89A3697730DB7C48F8F3ABC532F81BC056729FDF45A5DDAA32EB7E229E10FF00D976361E7DDDE3033D9C70E9C973E21D2FFA53FD8F3F61DF831FB1978425D27C056136BFE3CD7E1493C7FF00163C4914373E35F1AEA0CE2E27FB4DEE1DB4BD092ECB4BA7F876CA6FB25BE16E2F65D4F577BDD5AEFE83F84FF08BE1BFC0DF02E87F0D7E14784748F04F82FC3D00874ED1747B7F2E32EC17ED17D7F73234B79AA6AB7D22F9FA8EADA95C5D6A5A85C96B8BCBA9E66673E8F5FA6E43C2F87CA9C7178A70C5E6728BBD7E5B51C2A92B4A960A9CB582B7BB3AF2FDF5557BB841FB35FDA7E17782B957034A9E7B" $FileBin &= "9D54A39F719D4A4E32CC9D26B019342AC52AB83E1FC3544E5878357A75F31AB7CC31AAFCF3A1424B094CA28A2BEA8FDC02BF8D2FDB074993C27FF0552FDB574A9D0471F8CF4AF82BE39D2B6F49ACE3F86FE1FD37509586D5C38D66EAFA2F9778654DECE198A8FECB6BF96EFF0082D6FC3E9FE1AFEDA7FB30FED1114021F0D7C61F87FAEFC02F14DF228586DFC47E1BD5E5F127853ED8DB39BBD78F88E0B2B53B896B6F0DCC18C6B6D1ACDF95F8BF849D6E19C2636316D6539E6031755A57E5A3898627299C9EEF9612CC6139B5B462E4DA8A91FDF1FB3AB882865DE37F1170BD6A90854F107C2DE2CE1FC0466EDED733C8F1792788386A34DB693AF88A3C198A" $FileBin &= "C361E1ABAB56BC68D38CAAD4A68F8E28A28AFC0CFF005A028A28A0028A28A0028A28A0028A28A002BF52BFE0DFAD0A5BAF875FB637C4D0CE6CBC65FB51EB5E1CD31823082E6CBC17E1CD2AE62BEB6948093C730F15885A48B747E75ACA9BCB232AFE40FC46F16DBF817C09E2BF175CB22AE83A1DFDF40AFF00767BE585934FB51CA82D777EF6F6C80B28DF2AE594648FE94FFE08F3F042F7E057FC13EBE03E8FADDABDB78ABC7DA46A1F17FC52660E9732DFFC4CD467F12E922F23930F15ED9784EEBC39A65DC6C1596E2C640EA24DC2BEDFC34C24B17C6B86AA93F6795E5598636ACADA46A625D1C061A0DEEA5523571728EE9AA13BF43F97FE9B7C4187E1FF" $FileBin &= "00A31E7997D59C638CE3DE3DE0FE1BCBE8B76A95B0990C731E2DCEB1304D6B4B035F01C3F42B34EEAA66986EECFD39A28A2BFA64FF000FC28A28A0028A28A002BCCFE327C51D03E0BFC30F1AFC4FF12C8174AF07E8775A9B402458E5D46F8058349D22D9D95945DEB1AA4F67A65A6E529F68BB8CBE13711E995F8ADFF0529F8A2FF113E23780BF65DD0AE8BE89A19B6F891F16CDBC876B6C565F0BF872ECA6D29BA199B52BAB672EAFFDABA15F2057B3CD7E69E2EF1DAF0F381338CFE8FB3A99BD48D3CAB8770D52CD62B883336F0D96C2517ACE8E1AA4A58FC625AC70384C4CF689FA9F833E1F3F12FC42C93872BBA94F26A73A99BF1362E9DD4B07C3795258" $FileBin &= "ACD6A466BE0C4626946397605BD2598E37094F79A3E26F874BAFEB83C49F13FC672B5D78DFE2AEBB7BE32D7AE6456568E3D4A796E74FB18958930DA5BC13992DAD46D5B48674B35554B6403D2A9A88B1AAA22844450AAAA005555180A00E00000000E829D5FE68E0F0F2C361E14AA56A988ACDCEAE271559B956C5E2EBD4957C5E2EBC9EB3AD8AC4D4AB88AB27ACAA5493EA7FA9F8CC4C71589A95A9D0A585A16A74B0B84A1150A183C1E1E9C2860F054209250A183C2D2A386A104AD1A54A11E8145145749CA1451450033E107C4E3FB377ED35E09F89B35C7D93E1FF00C49683E1C7C51DCDB2CED12FA489743F12DCE772C6749BA86D6E6E2E42178B4DB1D4" $FileBin &= "6DE321F517DFFD1D2B0650CA415601948E410464107D08E457F341E33F0C5AF8C3C33ABF87AEF6AAEA16AE904C5771B6BC8C896CEE547526DEE52294A8C6F55284E18D7EB77FC13CBE3A5D7C60F81163E1EF12CEC7E227C1FB94F875E31867937DE5CC7A4C5E4F8775C98B16964FED3D2A05B6B8BA9599AEF57D33569412BB6BFA4FE8C1C65FD959E673E1D636AF2E0B3A588E27E175397BB4B30A6A9C78932AA57D23EDE2F0F9DE1E947E29BCE2AA5EECADFCB7F4B0E07FED7C8323F13701479B1B913C2F097167247DEAB96D57525C2D9BD6B5AFF579AC4E4189AD2BF2D3590D1BABABFDE5451457F6E9FC161451450014514500145145007E68FF00C146FF" $FileBin &= "00E3DFF67CFF00B2A4BFFA069F5F2ED7D45FF051BFF8F7FD9F3FECA92FFE81A7D7CBB5FE4EF8F7FF002901E26FFD79E09FFD657047D1617FDCF0FF00F713FF004B0A28A2BF31360A28A2800A28A2800A28A2800A28A28036FF00657FF93D5D3BFEC40D6BFF004DAB5FB6B5F895FB2BFF00C9EAE9DFF6206B5FFA6D5AFDB5AFEE7FA117FC9B1E30FF00B3AFC61FFA8F931E5669FC6A5FF5E21F9C828A28AFEC93CC0A28A2800A28A2800AC6F10F87741F16E87AB7863C51A3697E22F0E6BD6175A5EB5A16B7636DA9E93AB69B7B13417763A8585E4735ADDDA5C42EF1CD04F1491C88C55948E2B668A4D29271924E2D34D349A69AB34D3D1A6B469E8D11529C2A" $FileBin &= "C274EAC21529D48CA1529D48A9C2709271942709271946516D4A324D34DA69A67F333FB637FC137BC77FB25B789FE3AFEC9F0DDF8C7E025AC77FE24F88DF01F51BE9EE75AF0069F6E925E6ABE23F87DA8DDBCD71A9685636C92CF7BA6CED3EB3A75B43E64A3C4167FBED0BE51F07F8AB4AF1BF86B48F1568BF69FECCD66D8DCDAADE5BB5ADD47B2696DE68A7858901E29E19622F1BCB04C104D6D34D6F2452BFEE7FFC160FE2F5CFC2EFD88FC79A068F33278AFE37EAFA0FC12F0E431BFEF2E7FE1329E59BC4D6E63044924575E0BD2BC47604A82AB35EDB89032BF96FF86DE16D06DBC2DE1BD07C3769836DA1691A7E9513018F3058DAC56E666CF25E668DA5" $FileBin &= "918E599DD9989249AFC778830383CBB3AA986CBD3A542584A789AF864D3A343115EACD423875BD284A9D29549D1BBA717383A6A117CA7F9EFE2CF0D70F708F88989C9B8569CF079755C970B9C66795464A797E5999E638CC546851CAA0D73E0A857C3616AE2ABE014E786A2EB61E584A787A75254CDEA28A2BCA3E082B83F88FF1034AF869E17B9F136AB6D7B7C893C16163A7E9F0B4B737FA9DE6F16768AF831DBA4AD1B6FB89BE48D548449A7786DE6EF2BCCFE327853FE135F865E31F0FA45E6DD4FA3CF79A72004BB6A9A515D534E4420165335DDA4503150498E575C10C41CABBA8A8D5749DAA2A7370D2FEF28B6B47A36DAD2E9ABEE9EC716633C4C301" $FileBin &= "8D9E0ADF5B8616BCF0EA51E64EAC29CA505CADA4DB92495EEB99ABA92BA7FA5FFB1AFF00C12BFC47F10B57D07E3EFEDD36104E6D648B57F87DFB34249E7786FC391B059AC752F89A11DA2D6358705279BC2C5A5B500476FE259AE227B9F0AE9FFD035B5B5BD9DBC169676F0DADADAC31DBDB5B5BC4905BDBC10A08E1821862558E28638D55238E340888A155400057C8BFB01FC6BFF8682FD8F7E02FC4EB8BBFB6EB5A878134FD07C573B3979A4F17F831E6F0878A2E26572D244D7DACE8979A8C492B331B6BC8240F224892BFD835FB0F0FE5F9760B2EC3D4CBE0E51C650A3899E2AAB53C4625D5A719C6A56A96D5A8C928C22A34E9AF76108A3FD0BF0AF853" $FileBin &= "84787384B2BC5709D073A1C4197E5F9C62738C54A188CDB399633094F11471398631462EA38D3AB6A387A4A9E130916E9616851A778B28A28AF70FD2828A28A002BF3EBFE0A77FB264DFB637EC83F10FE1B681006F897E1BFB27C4BF84176244827B7F88FE0C8EE6EF4AB282E1D923B67F1269B3EAFE127B99888ACE2D7DEF32AF6C8C9FA0B4570E699761737CBB1D95E361ED3098FC2D6C2578AD1FB3AF09425283FB3385F9E9CD6B09C6325AA47D570371967BE1E71970BF1D70CE256133FE11CF72CE20CA6BC939D358DCAF174B17469E229DD2AD85AEE9FB0C5E1E4F931186A9568544E15249FF000A9F06FE201F88DE06D3B57BC824B0F1269D24DA078C" $FileBin &= "347B985ED6FB47F14E9045AEAD6779652A473594AF328BA4B69A3496186E238A455911D57D4EBEABFF0082AF7EC73AF7ECABF18F59FDB83E0EF87EEF53F815F15751807ED31E0FD16DE49E4F0378CAF2E44707C54D3AC614C2E8FE20BAB867D7DF1B6D3C43737524D2345E26B77D1BE42D1B59D2FC43A5D8EB7A25F5B6A7A56A76D1DDD8DF5A48B2DBDCDBCABB9248DD7F265387470C8EAAEACA3F9171F96E3723CC715926669FD7704D72D6B72C31F83936B0D98D0E8E9E220BF7B18B7EC3131AB8793E6A7AFF00D0F709F1A70C78A7C1B91F89FC0F28BE19E28849D6CB95555B13C25C474614E79DF06E6D6B4A963327C455FF0062A9563059AE4B572ECDB0" $FileBin &= "EA547176869514515CE7B0145145001451450014515E5BF143E233781EC74BD2B41D22F7C5BF11BC67A8DB786FE1D781747B5B8D435AF14F89B539E1B2D3AD2D74FB3592EE7845E5CDBACA214324CF243676DBAEEE6DE37CEAD5851A72A951B518AE89CA526DA5184229394E73935184229CA736A314E4D23B30181C4E658BA382C2414EBD672B734E14A953A708CAA56AF88AD5251A587C361E94275F1389AD3851C3D0A752B569C29C2525D3780FE0CDFF00EDA5FB567C21FD923485B89FC1D0EA769F14BF684D46D19C45A37C31F0ADCDADE368D757116E16F77E27BB96CF47B1DE8D25AEA9ABF87EF4C6D6DE732FF6F967696D61696B63650436B67676F0" $FileBin &= "DADADB411A4305BDB5BC6B1410C314615238A28D15238D15551142A800015F97BFF04AEFD83AE3F635F835A8F887E2535B6B5FB4AFC6DB9B4F17FC68F10A9B6B96D22631C9368BF0EB4BBCB769206D27C2115E5C477325948D677FAF5D6A77368EDA4A6930DAFEA557F46F86BC315B20CA2AE3730A5ECB37CEE74B158BA32B39E0B0B4A0E380CBE4D7DBA14E752B62126D2C5E271118B708C19FE317D363C74CB3C5BF1132FE19E0EC7ACC3C39F0BF0B8EC8B87F31A2E4B0DC4B9EE3EBD2ADC5BC6342124A4B0D9BE330B83CB7289492954E1EC8F27AF3852AF5F114D1451457E8E7F1805145140051451401E7FF00153E22E81F08FE1CF8C7E24F89E5F2B44F" $FileBin &= "06E837DADDDAAB2ACD74F6D11FB269D6BBFE56BDD4AF1ADF4FB18CF125DDCC31E406C8FE6FFC0773AFF8BEFBC5BF183C66DE6F8C7E2D6BF79E2CD449DE56CB4EBB9A47D1F4CB5F3373C7656966EAB65106C45626CED881F66503EE7FF82997C5493C6FE2EF007ECADE1EBC6364D25B7C45F8BAD6B29022D1ECA4CF863C3F74F1B1DAF793ACDAADCDB4A81E199BC317AB98E4CD7CBB1471C31C70C48B1C5122C71C68A15111142A222A80AAAAA00550000000062BFCF7FA42719FFADDE20C787F075954C8FC3F8D4C34F9257A58AE2DCC2841E635747CB3FEC6CBAA51CB69CB574F178CCD6934A54CFF0048FE8D9C0DFEA6F8712E24C6D1F679FF0088F2A78B87" $FileBin &= "3C6D5B07C1B9662271CAE8D9AE687F6EE694EBE6B563B55C160725AF1BC6A2BBE8A28AFC5CFDD428A28A0028A28A002AD7C07F89DFF0CE1FB51F853C6977726CFE1CFC615B6F875F10F2DB2CAC3569E45FF8467C47759DB0442CEF56DC4F74FCDB69875E94B6EB921AAD721E3BF0A5B78D3C2BABF87A7DAAF796CCD653B0CFD9B5083F7B6571900B0549D504A1706481A58B3873453C766593E372CCFF0025928677C3D98E1B39CA9B93842AE270726E782AD25AAC36658596232DC5A5BE1B17556E1572FCAF3BC066BC399EC5CF21E25CB31591E70A31529D2C26362953C7518B4D3C56558B861B34C1BB698BC1517B5CFE99C104023904641F5068AF887F60" $FileBin &= "2F8F375F1C3E01E9117892E19FE22FC34B96F87BE3D82E24DD7F36A1A1C491699AD5D2B3195DF5AD285BCD7772CA914BAD41AC430656D4E3EDEAFF0053F84F8972DE31E1AC938A3289B9E5F9E65D86CC30EA5A54A3EDE9A954C3578FFCBBC4E16B7B4C36269BD69D7A5520F58B3FC8BE30E16CD38278A73EE12CE69AA79970FE678ACB712E1774AB3C3D471A58AC3C9FF130B8CA3ECF1784AABDDAB86AD4AAC5B8CD30A28A2BE84F9B0A28A2800A28A2803F347FE0A37FF1EFFB3E7FD9525FFD034FAF976BEA2FF828DFFC7BFECF9FF65497FF0040D3EBE5DAFF00277C7BFF009480F137FEBCF04FFEB2B823E8B0BFEE787FFB89FF00A58514515F989B051451" $FileBin &= "400514514005145140051451401B7FB2BFFC9EAE9DFF006206B5FF00A6D5AFDB5AFC4AFD95FF00E4F574EFFB1035AFFD36AD7EDAD7F73FD08BFE4D8F187FD9D7E30FFD47C98F2B34FE352FFAF10FCE41451457F649E60514514005145140051452310A0B1380A0924F4000C927E8280DB73F9BDFF82B97C40FF858FF00B5EFECF7F022CA713E8BF063C1BACFC65F17C30B2BC43C49E27BB8F4AF0B5B5E0E5A2BED1E1D16C752B75217365E2667F9FCC061F94AB8BBAF1FB7C7AFDA3FF6A0FDA2DA7379A778EBE285F785BC1174CE2457F00780A28FC3FE1AB8B62AA1121D4347B4D2A49E38F29F6BB494EE91B74D2DEF1778C7C39E05D12E7C41E28D4E0D2F4D" $FileBin &= "B618DF29DD35CCE559A3B3B2B75CCD777736D6F2EDE0577215E460B14723AFE178DC647198ECCB319CD2A788C5D59539C9A51585A0A386C33BBB251951A31A9EB36F5BDCFF0031B89B8869F11713F17F16D6AD08E1335CF31B57095EA4D469C726CB14328CAA7CD26A30A7570180A38AB5D479F11396AE4E52E82E2E20B4826BABA9E1B6B6B68A49EE2E2E244860821894BCB34D2C8CB1C51468ACF248ECA88A0B3100135E1361FB44F81EF75F8AC5E0D66C3C297FA85CE87A17C46BFD3AE2D7C15AEF88F4E5B69755D16C7579A34804B6305FE9B2BCF2BAC7B6F229275B6B69EC2E2FFED8FD943FE09FDF15FF006DEB9D27E257C79B5F107C1FFD963CE8353F" $FileBin &= "0EF8055E5D2BE217C66B44613595F6A72A14B8F0DF846EF093A5E301757F6C14F87E074B8B2F17C3FD06F8B7F650FD9E3C6DF0423FD9CF5DF853E136F83B69A747A7693E0FB1D3934DB6D05A05945BEADA05E5898350D23C4304B3DC5D2F886CAEA2D624BCB9BABAB8BC9A5BBBA69BD4CBB86F36CDA84B174E50C050E4E6C27D6E94DD4C6CAE9A72A69C6A61B0D38DF96AB8BAB2BA9C69725B9BEDF847C1CE3AE39CAABE7B85AB86E17CBBD83AD91473CC1579E2788EB692A72AB868CA962328C9AB439952C7D4A7571D5A4E188A381961146589FE6541040208208041072083C8208E082390475A5ADFFDA6BF643F8D3FF04FBBF9B598DB5EF8D3FB244D7491" $FileBin &= "69DE3886D85DF8E3E114573308ACF4BF1CDA5AA2A5C68B0B3C7696DAF5B45169372DE4C71A6837D3D96837DC5E89AE691E24D2ECF5BD0751B5D574AD422135A5F59C825865424AB0C8C3472C6E1A39A095526826478668E3951D07915615B0D5EA6131746785C552F8E854B5DC5BB46A529AF76B519FD8AB06D3DA4A32BC57E7B8EC266593E678AC8B3ECBEBE4F9E6092789CBB1366E54A4DC618CC16222BD8E6197D669FB1C6619CE9C9DE9D454ABC6A5287E8AFF00C112FE207FC23F75FB50FECBD7D37943C11E3DB0F8AFE07B594E59BC29F106CA3B4D4AD2CB2C7369A2DD693A23DC615545EF88256566779522FDF0AFE4BBF65BF8803E067FC142BF67AF" $FileBin &= "1B4B3FD8FC39F19EC759F801E2E75648A396EBC44F05CF82D6769088DE4BAF18A786E35C957F234E6542CC1636FEB46BF48E0AC57B6C9DE124EF532DC4D5C259BD7D84AD88C33B748AA35A34A3FF005E9F54CFEC5FA38679FDA1E1FCB23AB3E6C57086718FC9395BBCFF00B3AB3866D93C927AFB2A780CC29E0A9BD9BC14E2B58C9228A28AFAF3F7F0A28A2800A28A2803235FD0343F15E87AC7867C4DA469BE20F0EF8874CBED175DD0B58B2B7D4749D6348D4EDA4B3D474CD4F4FBB8E6B5BDB1BEB49A6B6BBB5B88A482782578A54646607F944FDB3BFE0989F177F625D6BC41F183F649D035CF8BBFB2E6A17575ADF8C7E085AC977ABFC40F84066769AF75" $FileBin &= "3F04893ED17DE26F085B67CC92206EB5AD36D576EAF0DFDBC375E29B3FEB4A90804104020F04119047A107AD7CAF15708E57C5984852C629E1F1B86E7965F99E194162F0539A5CCA2E69C2B61AAF2C562309554A8D6518B6A35214EA43F7BF013E913C75F47EE20C5661C36F0D9CF0D676B0F438BB81F3A75AA70F7136130F293A13AD1A33857CB739C07B4AB2CA33FCBE74B31CBAA54AB053AF82C4633058AFE1A7E1FF00C4EF057C4DD2FF00B57C21AD5BEA0230A2FB4F90FD9F56D2E660736FA969B291736B22B0645728D6F31466B79A68F0E7BFAFDF6FDAEBFE08F3FB2EFED3DAEDF7C4AF0BC7ACFECEFF001D2E6596EDFE29FC22F27491AD6A12B9925B" $FileBin &= "8F19F8454DBE89E227B991DE4D4350B53A278875262897DAF4F6F1AC15F8D7F12BFE09AFFF000539F80D35C9F0F7877E1B7ED7BE0DB5795EDB57F06EBB65F0F7E221D3E1CAA4BAB786FC4D2E9DA6FDB1D155C58787AE3C5974EC4AFDAEE1D891FCFF009C704715E4539AAD9655CDF0916F9331C9294F17CF15B4ABE5B173CC30F51AD651A54B17463ADB10D23FD77F0EBE93DE0078AB87A0F2BE38C0F877C435A30FACF06F8A38EC2E40E8579594A9E55C6F5550E10CE308A6DC6857CC31BC3999D58F2B9E4D4DDD9E3B45795F887C59F1A3E1EB3C1F163F640FDA9BE1F4B0C8229AFAF3E137882FBC3C64650EA2D7C402DECECEFD594FDFB259D03AC9196DF1" $FileBin &= "B81CA47FB4169F70E61B2F857F1CEFEE830436767F0BB5C96E44A4ED588C64AFEF18860AB9E4AB0E315F252C453A7274EAC6BD1A89D9D2AF86C4D1AA9F674AAD28544FCB96F7BAB68CFE84C3E4B8DC6518E2701532CCCB0928A9C71B95E7792E67809425671A8B1D80CC3118474E49AB4D56E4775696A8F7FA2B9BF0A7837F6D6F8AF3C367F087F612FDA02F1AF088ED757F8A1A10F849A02B3A6F5B86D57C61F61D26E2D910862D1EAD12C8D9852612E15BEE6F84BFF0456FDAE3E334B6D7FF00B5AFC75F0EFC13F03CF22C97BF0BFE022BEB7E33D42C5B092E9DAB78E75584693A1DCBC664591AC078DB4CB84219ECE367F2A0F5B2FC9B3ECE271865591669" $FileBin &= "8BE7692AF570B5301818A7F6A78EC7C70D41C52D64A84ABD4B691A729349FC0718788DE14787342AE27C41F157813875D08B94B29C0E7D82E2EE29ACD24D51C3F0B70956CE736A75AA36A14A799D2CB303CCEF5B1B429467561F9BDABFC4CD4F5BF19E9BF07BE07F84755F8D5F1C7C473B58E87E01F07C46FCD95C0FF5B7BE25D4216FB268FA769D1E6EB5292EEE2DE3B2B54373A9DCE97605B508BFA12FF826D7FC12BD3F670D587ED1FF00B4C6A7A57C4BFDAB75EB374B16B70B79E0DF829A45E44F1BF877C0AB344A93EBCF6D34969AC78A238A2090CB71A4E88A2DA7D6358F12FDFDFB2E7EC5DFB37FEC71E146F0AFC04F86DA47851AF61B78FC41E2A9D4" $FileBin &= "EADE38F164D6E095B8F12F8B2FFCED5B521E6B4B71069E278747D3E59E65D2F4EB185FCA1F53D7ED1C21E1952CAB114337E21AD4732CD6835530984A0A6F2BCB2AADAAD355631A98DC6435E5C5D7A74A345BBE1B0F4A6BDACBFCCCFA467D37F1DE2064F9A7875E1065D99F067006674E583E22E20CD2A508F1CF1CE0B9939E031AF0356BE1386386ABB5175F8772BC5E36BE62A3C99CE73986164B0144A28A2BF593FCFB0A28A2800A28A2800AE33E2278EB41F863E05F16FC41F145CFD9740F07E83A96BFA9CA0A79AF6FA75B49702DAD95D9165BCBC9152D2CADC307B8BA9A1823CC92283D9D61789BC31E1EF19E83AA785FC59A2E99E22F0E6B56AF65AB68" $FileBin &= "9AC59C1A869BA85ABB2B186EAD2E52486550EA9226E5263951248CAC888EBC98F8E36781C6432DA987A598CB0B888E02AE2E139E169E325466B0B53110A6D549D0857709558C1A9CA9A9462D49A67665D2C0C330C0CF34A788AB96C7198696634B073A70C5D4C0C6B41E2E9E167553A50C44F0EAA4684EA274E355C5CD38A68FE5CFC2DF13F47F1A789BC7BF197C7FE2EF0BDA78DFE297892F759BDB0BAD7F4D8E6D0F478667B7D1B428D2E2E5678A0B0B28E1B6B6590090E9F6FA724C3CC80E3BFF00F858BF0FFF00E878F08FFE147A47FF002657EE3FFC313FEC9DFF004407E1A7FE13767FFC4D1FF0C4FF00B277FD101F869FF84DD9FF00F135FC1F87FA2E" $FileBin &= "78A54A12F6DC53C118BC4D7AD5F178DC657867EF118DC7632BCF158DC6E21AC324EBE2B155AAD7AAD2B73CE4A2ACA28FF42B13F4B5F096B548FB0E12E3CC1612850C360F0381C3BE1D587C065F81C3D2C1E0303874F1975430583A34B0D493D5C2945C9B936DFE1C7FC2C5F87FFF0043C7847FF0A3D23FF9328FF858BF0FFF00E878F08FFE147A47FF002657EE3FFC313FEC9DFF004407E1A7FE13767FFC4D1FF0C4FF00B277FD101F869FF84DD9FF00F135B7FC4B0F89FF00F451701FFE0BE20FFE67FEACFCAFCFFF00135FE14FFD137E20FF00E05C39E5FF00519E6FEEF33F0E3FE162FC3FFF00A1E3C23FF851E91FFC9947FC2C5F87FF00F43C7847FF000A" $FileBin &= "3D23FF00932BF71FFE189FF64EFF00A203F0D3FF0009BB3FFE268FF8627FD93BFE880FC34FFC26ECFF00F89A3FE2587C4FFF00A28B80FF00F05F107FF33FF567E573FE26BFC29FFA26FC41FF00C0B873CBFEA33CDFDDE67E1C7FC2C5F87FFF0043C7847FF0A3D23FF9328FF858BF0FFF00E878F08FFE147A47FF002657EE3FFC313FEC9DFF004407E1A7FE13767FFC4D1FF0C4FF00B277FD101F869FF84DD9FF00F1347FC4B0F89FFF00451701FF00E0BE20FF00E67FEACFCAE7FC4D7F853FF44DF883FF008170E797FD4679BFBBCCFC38FF00858BF0FF00FE878F08FF00E147A47FF2651FF0B17E1FFF00D0F1E11FFC28F48FFE4CAFDC7FF8627FD93BFE880F" $FileBin &= "C34FFC26ECFF00F89A3FE189FF0064EFFA203F0D3FF09BB3FF00E268FF008961F13FFE8A2E03FF00C17C41FF00CCFF00D59F95CFF89AFF000A7FE89BF107FF0002E1CF2FFA8CF37F7799F8C9FB2D7C78F0CFC11FDABF44D42C7C55A25EFC3FF8E30DA7827C6F6FA6EB163770691E251711C7E15F12DD416B72C90C69A84F1D84D773ED86D6CB56D7AEE562FE5E7FA3EEBD2BE6AD33F639FD96F47D46C356D37E047C35B5D474CBCB7BFB0B95F0D5833DB5E5A4A93DB5C2092374F3209A34950956DAEA180240AFA57A74AFE88F03BC3DE2DF0D721CDF21E24CDF26CD3075F39AD9AE4B4728863A34F2C8E3E11A999E15CB1D1849D1AF8F5531F4A9D38DA9D7C5" $FileBin &= "E2DB938CE0A3FCD3E3EF893C1BE29711649C45C2D92E7994E370F9150C9F3EAF9D4F2F757359E5D5254F29C5C6180A9562AB61B2D74B2DAB52A54BD4C3E0B049414A9D49D428A28AFDB4FC1C28A28A0028A28A00FCD1FF00828DFF00C7BFECF9FF0065497FF40D3EBE5DAFB47F6F8F86DF123C7DA07C2CBFF871E10BDF185E783FC6B2EB7A858D84B6A278A216D6E6D59ADE6B986E668A69E0314AF691CC6053BE5F2D4AB1F83FFE10BFDAB7FE8DEB5FFF00BE5FFF00922BFCA2FA446073EC1F8EFC7D8D8708F19E6381CCF0BC2353038FC9B84B3FCDF01898E178730986C47B2C665D80C461E52A35E13A5522AA7342A4650924E2D1F45837196128AF694D38" $FileBin &= "FB45252A908B579E9752927B6BB6C6FD1581FF00085FED5BFF0046F5AFFF00DF2FFF00C9147FC217FB56FF00D1BD6BFF00F7CBFF00F2457E41ED33BFFA217C48FF00C57DC5BFFCE93A2CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5" $FileBin &= "BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFBF45607FC217FB56FF00D1BD6BFF00F7CBFF00F2451FF085FED5BFF46F5AFF00FDF2FF00FC9147B4CEFF00E885F123FF0015F716FF00F3A42CBFE7E51FFC1D4FFF0092FEACFCAFDD7ECAFF00F27ABA77FD881AD7FE9B56BF6D6BF1FF00F646F83DF1C2CBF6908BE23F8FBE1B6A9E0AD12C7C21ABE9F3DD6A2D0C50C97173043696705AA3CF25CDC5C4ACEF2B8488C50C313B4B22318925FD80AFF403E85B95E6F96F85DC452CDF26CE324A9997891C5399E0F0B9DE598DCA71B570189A395428627EA78FA343111A55254AAC6139534A52A734" $FileBin &= "9BB33C7CD25175E9A8CA32E5A304DC64A493BCB4BABAECF7BEA1451457F5E1E68514514005145140057C61FF00050BF8D63F67FF00D8DBE3DFC4682F3EC5ADC5E07BEF0B78526495A3B94F16F8E648BC1FE1FB9B509FBD926D3350D6A2D5DD63C14B6D3EE2691A28619268FECFAFC3AFF82C27867E34FED1DABFECEDFB1E7C01F0ECDE22F137893C497DF187C73752AB5BF86FC23E1CF0B29F0DF85F58F1B6AD24535958786EF354D6BC4571E4DC43733EA57FE1CB7B4D32C350D49AD2CA7F1B883155B0993E3EA61A9D4AB8A9D0787C2D3A5173AB3C4E25AC3D1E48C7594A33A8A7656D22DB6926CFCF7C56CEB30C8BC3EE28C664F87C56333BAF974F2AC8F0" $FileBin &= "B81A33C4632BE719C4A195E5CB0D429FBF5674B138B8622518DB969D1A9394A1084A71FC45F0CEB96BF087C03F0E3E1B68FA1EA9E32F8A1AEE9D636DE1FF00873E18B49F51F12EBDE25D7246BBB8816CECE1B9BA8A06D52EEE2049DADE49E648592CEDAE5E178D3F6A3F627FF8255DEAEB5A2FED07FB6EC3A678C7E234261D4FC0FF0003D1A1D43E1EFC2FDCC97104DAFDBAC973A7F8A7C530158B75A992F742D3AE22335C5CF88EF96C6F34AFB0BF61FF00F8274FC30FD90ECA5F196AD767E29FED0BE23B663E32F8C1E20B6125EC0D748A2EB42F04DA5C34EDE1BF0F20510C8F1C8DAAEB0A8ADA8DD8B18B4FD274CFD15AF97E1EE0E542387C5E730854AB4A" $FileBin &= "30786CB9353C3617912509E21ABC713898DB45AD0A52BB82A92E5A91FC57C27FA3ED3CB29E599E788342862F1D82A586964FC26A70C4E57934A8461EC3139ACE37A59BE6F4F96328C2D2CB70155374238AAF0A78C8A001405501540000000000E8001C003B014B4515FA09FD58924AC9592D125B25D8A7A869F61ABD85EE95AAD95A6A5A66A56B7163A869D7F6D0DE58DF595DC4F05D59DE5A5C24905CDADCC12490CF04D1BC5344EF1C88C8C41FE787F6C4FF00825BF8CBE0CEA9AF7C75FD86F4C9756F0DDD4D3EB3F10FF661324B25B4C8374B7BAAFC25FBF2437691E648FC22AAF731ED6B7F0EB6A16A34FF0008AFF455457939BE4B82CE682A58A838D4A7" $FileBin &= "CD2C3E2A95A388C34DAB73D29B4F47A73D392952A8B49C25A5BE178F3C3BE1CF10F2C8E073BC3CA9E2F0AE7532ACEB06E34736CA31325675B05897197EEE768AC4E0EB46AE0F1708A86268544A2E3FC32FC40F1BD87C49F857A978AFC137579A478EBE156B9A4F8DA3D26F61FB1F897C1FE24F08DFFDA2E3EDD632FEFA09AC6DD35268675568649ED9A3C89A19E18BFB43F813F14B4CF8DBF063E16FC5DD1FCA5B0F88DE03F0C78B92DE193CD5B1B8D6B49B5BCBED31DCFCDE7E957D2DCE9D728F8923B8B5963701D48AFCECFDBD3FE0975E0DFDA5A4D53E2E7C17BED3FE127ED20961771CDAEDBC1F67F07FC5182681A39344F88FA6DA412896E2F623F645F1" $FileBin &= "4C169757CB0B88759B1D76D6DB4F874F83FE08F177F12FC13F003C63FB30FC6AF0E6AFE10F89FF00B367C41D53429F40D657CC98F823C70F3F8B7C2DACD8EA11BCD65AB68B7FAC4DE31B2D1751D32EAF34C9F4FD261FB0DD3C01638BE4787703996459FE23058C87B4C2E61845F57C7518B587C457C14A53829C2EDD0C43C355ADCF4E526A5EC93A529C13E5FC1BC25E19E2EF0C3C50CD786B8830FF005AC938B3234F2BE24C0D39ACAF33CCF87AB54AF85A75A8B7396599AD5CAB1B98BC560AACE51AAB030A984AF89A307EC7F5C68A28AFD10FEB30A28A2800A28A2800A28A2800A28A2801195586195587A30047EB4CF2A2FF009E51FF00DF0BFE1525140E" $FileBin &= "ED6CDAF9B0000E00C0F4145145020A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800AAA965671DE4FA847696A97F756F6B69757C9044B77736B6525D4B676D3DCAA09A682D24BEBD92D6191DA3824BBB978951A794BDAA28FD361349DAE93B3BABABD9D9ABAECECDABAE8DAEA145145030A28A2800A28AAAF6A1EF6DEF7ED174A6DED6F2D45AA4ECB6530BC9AC66371716C06D96EADBEC223B39C90D6F0DDDF46A08B96C005AAACB6768B7725FADADB2DF4B6F1" $FileBin &= "5A4B78B0C42EE4B58259A686DA4B90A267B7865B89E58A06731C724D33AA869189B345164F75B6ABC9F71349DAE93B3BABAD9D9ABAECECDABF66C28A28A06145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145" $FileBin &= "14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145795FC58F8DFF0009FE076827C49F15BC75A0F8334C6594DA2EA7745F53D524854349068BA25A25C6B1AD5CA290CD6FA558DDCC8A77BA2A02C3F2E7C7DFF054CF1478A24B8D3FF667F82B79AB59EE7483E227C5795F44F0F3ED263FB458786B4DBC86F753B56244B13B7886CEF51420B9D21199D53EAF87F82789B8997B5CAB2CAB3C1C65CB5332C54A9E0B2DA6EF6927" $FileBin &= "8DC54A9509CE3F6A951955AFDA936D27F3D9C715645913F679863E9C712D734705878CF158D9A7F0B586A0A756119749D450A7DE6926D7ECD5636B3E22F0FF00872D4DEF8875DD1F42B21D6EF59D4ECB4CB618C6733DECF04431919F9B8C8F5AFE723C57F14FF6BBF8A4F23FC40FDA3FC49E1CB09890DE1BF84B0A7822C21858A97B65D63498F4BD5AF616C1561AAFF683BAB14795A2FDD9F9F3C55F0E3E14786ED2E3C53F10AFF5DF115C0E0EA3E28F11EABA8EADA8DC7CCEB6F025B4F6925EDC48CCEFE56C68D079934C638524917F4CCBBC129549538665C4F8755EA34961725CB31399CDCE56B4156C5D5CAE9B9746E9C6AC7476725A9F098CF14D454E58" $FileBin &= "1C8AABA514DFB7CCF1D47051497DB74B0F4F1D351EB69CA9CADA3517A1FD2DEA9FB527ECD1A2C8F06ABFB417C16B2B8452CF6D37C4EF067DA9546E1936ABACBDC004AB2A8F2F2CC0A0CB7152F853F69BFD9EFC77AED97863C15F197E1DF8B3C45A8B94B1D13C3BE27D3358D52E4AE37B4565613CF70D1C40EE9A5D822853324AE880B0FC25FD9DFF00E09CDE2BFDA45F4CF1AF8C7C3517C06F82723C57BA4DA269F1CBF143C73A7B80D0DE5A1D492E57C3FA65DC44C96FA96A113A491BC52D9691ADDA4D0EA8BFBCDF05FF0067CF841FB3EF8787877E14782749F0CC1245126A5AA4711BBF10EBB244322E35DF105D99B55D4DFCC2F24715C5C9B4B4323C7636" $FileBin &= "D6B06D857E638CB87780786613C065F9FE719EE7D0BC2B50A14F2FA596E06A2BA943178C83C4AAB5E0FE3C3E12559464A54EAE228D44D2F7B8673BE2FCF651C5E2F28CB32ACA256953AD5678C9E37154DA4D4F0F869FB170A524FDDAD8854949352A74AA4757ECF451457E5E7DF051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051450083C8391EA2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A2B2F5CD6F49F0D68BAB788B5FD46D349D0F41D32FB59D6755BE992DEC74DD2F4DB596F2FEFEEE772121B5B4B5865B89E" $FileBin &= "5760A9146CC4E066BF3764FF0082C57FC13A6292489BF681919A391A3263F853F1A668D8A3152D1CB17C3B78A442465248DD91D70E8CCA41AFA5C838338BF8AE3899F0BF0AF11F1243052A51C64B21C9332CDE3849575374638996030D8854255553A8E9AAAE2E6A13714F95DBEBF85FC3FE3CE378E327C19C15C59C5B0CBE54618F9F0D70EE6F9EC3053C429BC3C7172CB3078A8E1E55D52AAE946B383A8A9CDC135095BF4DA8AFCC6FF87C77FC13A3FE8E027FFC34BF1B3FF9DCD1FF000F8EFF0082747FD1C04FFF008697E367FF003B9AFA2FF883DE2DFF00D1AFF10FFF0010CE23FF00E7779AFBCFAAFF008809E397FD19AF153FF15F716797FD4A7CD1FA" $FileBin &= "73457E637FC3E3BFE09D1FF47013FF00E1A5F8D9FF00CEE68FF87C77FC13A3FE8E027FFC34BF1B3FF9DCD1FF00107BC5BFFA35FE21FF00E219C47FFCEEF35F787FC404F1CBFE8CD78A9FF8AFB8B3CBFEA53E68FD39A2BE7EFD9F3F6A6F80DFB54787F59F13FC07F88365E3AD23C3DA9C7A3EB663D2BC41E1FD474BBF9A01736E97BA2F8A749D1359820BB84BB595E3E9E2CAF4C372B6B7133DB5C2C5F40D7C366595E659363B1395E7197E372ACCB073F658BCBF31C2D7C16370B51C63354F1185C4D3A55E8CDC251972D4A71972CA32B59A67E719BE4D9BF0FE658BC9B3ECAF31C9337C0545471D9566D82C4E5D98E0AB3846A2A58BC1632951C4E1EA384E13" $FileBin &= "50AD4A127094656B4936514515C279A1451450014514500145145002120024900004924E000392493C0007249E95F925FB4CFF00C146E7B6D7355F847FB2959E99E35F1AD933D97897E29DF05BCF87FE0A94968A44D29943DB789B5780ACA56E0B4BA3413C2120B6F11BADE59DA7997EDC5FB5A788BE2AF8B75EFD987E06EB92E93E13D11E4D3BE37FC49D2A5613DCCE1DE1BCF87DE1CBC8D804895925B3F105C44FE6EA174975A4EE8B4AB0D55358F933C35E19D17C23A4DB68BA0D94765636C01C28066B8988024BABB9880F717536D0649A424E02A20489238D7F7FE05F0DB0786C2E173EE2BC37D6B1189A74F1395E41579A346142694E8E3B3851719C95" $FileBin &= "68B5530D9727153A4E35717274E6B0F2FC738B38E7135F1188CA387EB3C3D1A13950C766F4F965527562ED570B96B69C63ECDDE15B1AD49C6A2953C3AE683AAB974F014FE21F10DC78EFE2BF88F57F8AFF00107502B25EF887C5D7126A105BB025D2D74AD36E1A4B5B4B1B427658DBF9661B24555D3EDEC220B027A28000000000000006000380001C0007000E94B505CDCDBD95B5C5E5DCD1DBDADAC12DCDCCF2B048A18204696696463C2A471AB3BB1E02826BF60A95AAE21D383B72538C6961E852846950A34D5A30A387C3D28C6951A715651A74A118AE88FCD614A9D2E79A4F9A6DCEB559CA53AB566F5954AD5A6E552ACDEADCEA4A527DCE67C69E32D2" $FileBin &= "BC0FA24BAC6A65E572EB6DA769D6F86BDD57509B22DEC6CE3E59A491B9770AC21883CAC0ED0ADF7F7EC6FF00B07DDDF5F691FB41FED43A5C5A978CA748752F87DF09B51844BA17C3DB19596E2CB51F10E9D3EF8AFBC54E9E4CD0E99771B47A24812E3534B8D7D618BC3FE67FF04FAFD9D8FC6DF191FDAAFE2569AD2F827C2DA95DE97F023C31A8C24DB5F6A1A75CB41A8FC40BDB5917CA94D85EC2D6DA3EEF348D720B99C98DBC3BA5CD3FEE5D7E47E2571DD5CA6589E13C86BBA58CE574788733A32B55A73925ED325C1D48BBD28D25EE6655E12552AD573C1C5C68D3ACAB7E8FC0DC230CC551E21CDE8A9E154954C9B01515E9D48C5FBB99E2A9BD2A39B5CD" $FileBin &= "82A334E10A7CB886A55274DD33A74A28A2BF9F0FD9828A28A0028A28A0028A28A002BF98EF8D5FF05D6F8F5E04F8FDF1E7E10F81FF0066CF875E22D27E0DFC59F1DFC358B55D57C6DAC5B6A3A8C1E0DF166B9E16B7D5EED0AD85B4736AEDA14FA81B4B58E54B0130B46B8B9312DD4FFD38D7F9F77C6DFF0093DAFDBC3FECE9FE337FEADAF88F5FA97857C3B94711E6D9861738C27D6E8D2C1C2A528FB5AD4B926EAD9C93A3520DB7156B4B9959BB2BEA7C871663B1B83595C3078AA985FACE26BC2ACE94694A728D3C3CAA452F6B4EA452E64AF68DDAD2E7EAFF00FC3FCBF6AEFF00A34FF857FF0085FEA7FF00C9B47FC3FCBF6AEFFA34FF00857FF85FEA7FFC" $FileBin &= "9B5F903457EF3FF10A781FFE850FFF000AF19FFCBFD7FA5AFCBFF68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9" $FileBin &= "FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D1FF000FF2FDABBFE8D3FE15FF00E17FA9FF00F26D7E40D147FC429E07FF00A143FF00C2BC67FF002FF5FE96A7F68E73FF00439C77FE0181F2FF00A83F2FC7D6FF00AFDFF0FF002FDABBFE8D3FE15FFE17FA9FFF0026D7DDDFF04D6FF82ACFC4FF00DB63F685F1CFC0AF88BF063C1FF0EA5F09FC26D4FE2545ABF86BC4DA9EAF3B4FA678A7C09E1F1A4DCDA5DC335ACB15F5AF8E23BF4BCB7BE8DED1F4FF00B3C96F39BB66B4FE64EBF4B3FE0849FF00291AF8E1FF0066B3E21FFD" $FileBin &= "4FFE0057C971C787BC279370C66B986032CF638BC3D0E7A355E27153F672E787BCA33ACE2DEEAD252567B5F537C0E699B4733CAE954CD3155E96231B0A15A95586179254E54AA49AFDDE1A9CD3BC16AA5A2BF5D4FEC128A28AFE613F500A28A2800A28A2800A28A2800A28A2800AE4BC77E3DF057C2FF07F883E207C46F15681E08F04784F4CB8D63C4BE2AF13EA969A3683A26996AB99AF351D4AFA582DADE1525514C920696678E1895E692346F913F6E4FF008286FECE3FB01F8063F14FC64F123DF78C35D8668FE1D7C20F0B793AA7C49F88BAA2930C36DA1E86255365A4ADD148350F136AEF65A169EEE96A6EE7D56E74FD32F7F915FDA37E39FED39FF0" $FileBin &= "522F17DA78CFF6A9BE9BE1EFC0FD1F533AB7C35FD93BC27A8DE43E1DD3555A41A6EB7F13350436D77E2AF162D9C9E5CF717D1412DBBCD751E97A7F846CEEB51D0AEBF4FE05F0C735E2D50CCB193964DC350A8E35734AF4B9AB635C1FBF86C9F0B27178DAF7F7275AF1C1619B6EBD7E751A33FD2782BC36CD38AB9730C5CE59470F426E35333AD4DCAAE31C1AE7C3E5586938CB195BECCEB371C261DFF1AB73A8D29FDB7FB6BFFC162FE33FED8D79AFFC15FD81EF35EF83BFB3FA5C5E689E36FDAAF52B3BCD1FC79E3CB6477B5BCD37E0F69B29B5D4BC2FA55CA0909F1048D65E2D9A37819A7F04CB1359EB3E29FB227FC14ABF6A0FF8271DEDA7853E2DDFF8CF" $FileBin &= "F6B0FD8D5AF0B5CDD6A378759F8E7F052DAE24792EAFF45D5351B88C78A7C350B48D34FA0EAF7B0E9902443FB2EFFC1D189A1D5FC7AC2C2C74AB2B5D374CB3B5D3B4FB1823B5B2B1B1B78AD6CED2DA150915BDB5B40890C10C4802C71C68A88A005000AB44060558065604329008208C1041E0823820F0457F49D1E18E11C3E4F2E1BA7C3982A991CD275E3888C279B62710A2A2B31A99C2847174F308EAE94F0EE96168C652A10C2FD5E75294FF00A2A970D70A61F28970F53C830753269EB5A3888C679A622BA5658FA99AC611C4D3C7C75F653A0E9E1A8C652A30C37B094E9CFF00B4FF00801FB44FC17FDA8FE19685F183E03F8FF42F88BE01F102116DAB" $FileBin &= "E8D3B79F617D1A44F75A26BDA55CA41AAF87BC41A7F9D12EA3A16B76763AA59349199ED5125899FDAABF801F86FA8FC77FD8EBE265C7C78FD893C5F0F81FC4D7B25BCDE3EF835AB179FE107C5DD3ED1E598E97AE7877ED36B67A7EA0C92DC43A7EA163369773A7497334BA36ADE1C9EE6F6F2E7FAA9FF82797FC158BE057EDDD66FE05BCB79BE0AFED3DE1BB47FF0084E3F67FF1A5E245ADB4B65089350D67E1F6A3711590F1BF86130D34925ADADB6BBA54004BAD68D6963369FA96A3FCF3C75E14E3F86E9D6CE323A9573AE1B8BE6AB59535FDA593A93F769E6D86A69AF649BE48665874F0755A5ED1616ACE340FC078DBC2FC7F0EC2B66D934EAE71C3D17C" $FileBin &= "D52B282FED1CAA326AD0CD70F4D5BD926D42398504F0955AFDE2C35492A27EAAD14515F919F95051451400514514005145140051451400514564EBDAEE93E18D0F58F126BF7F6DA5687E1FD2EFF5AD6753BC9561B4D3B4BD2ED65BDBFBEBA99BE58ADED6D609679A46E1234663C0AA84275270A74E129D4A928C210845CA739C9A8C6118A4DCA52934A3149B6DA495CBA74EA56A90A54A13A956ACE34E9D3A7173A952A4E4A30842114E529CE4D46318A6E526924DB3F1C3FE0B1DFB406A1A37C3AF06FEC99E03D48DBF8F3F68ABE31F8AE7B590FDA3C3FF0008B459D66F11DE5C88CF990C7E22B9846948AE3C9D4747B1F1459E7CC0A2BF28B4AF09F87346D3" $FileBin &= "34FD22C747D392CB4CB2B5B0B5592CEDA49041690A4117992345BA594A20324AD9791CB3B12CC49CFD47E266ADFB4FFC78F8B1FB5578823B98EC3C61AA4DE11F84DA65E8659340F85BE1AB87B2D252385B72DB5C6AAF07DB75248885FED893599E3262BE39ECABFD43E04E12FF008873C1592708C57B2CD61079C714D4A72B4AAF11E674A8CB11859CE2FDF864B85A785CA20AEE0AB617155A1678891FECCF869C0DFF00109BC3CE1DE0587EE73AA54E59F71A55A52E59D6E2DCE28D09E2F053A906B9E1C3F82A583C869ABB87B7C163311049E2A77CCFEC5D1BFE813A67FE005AFF00F1AA3FB1746FFA04E99FF8016BFF00C6AB4E8AFA8F6F5FFE7F55FF00C1" $FileBin &= "93FF0033ECFEB589FF00A08AFF00F83AA7FF0024667F62E8DFF409D33FF002D7FF008D51FD8BA37FD0274CFF00C00B5FFE355A7451EDEBFF00CFEABFF8327FE61F5AC4FF00D0457FFC1D53FF0092373F652F8C69FB21FED93E0EF185C4CBA67C1CFDA1C69DF0A3E27C4BB6DF4AD17C5265C7813C5D708BE4DADB8B4BF9059DCDD4CCB058E8D7FE2BD4262D2CB1D7F58608201041040208E841E411EC457F1D3F11BC1565F10BC19AEF852F0229D4ACDBEC372E33F62D520227D36F06017DB05DA44665421A5B733404ED9581FDFDFF00825FFED3B7BFB487ECCFA35AF8C6EDDFE2F7C1CBC3F0AFE29DB5E4BBF52B9D5BC3D0A41A3F896E83B19A66F12E8A96D7" $FileBin &= "57B7BB12DE6F10DBEBF6D6DB92C988FE65FA4F7067F6965793F89381A5CD8AC07D5B8638B3915E73A2A32FF56F37AD6579374A15B24C4D693B47EAD94D36DCEB6BFC77F4C7F0FDE6D92E43E2E65B41CF1B967D4F83B8DDC15E7568284DF08E7B5DA4E52FDCD3AFC3B8BAF3D21F54C8E9B6E78857FD1AA28A2BF8B0FF003D028A28A0028A28A002BE18FF008280FED11A9FC04F82325A7832764F8A7F153525F007C3C103AADE69F77A8C58D63C4B0024156D0B4F93167703725B6B9A8E8AF3C6F01941FB9EBF01BF6E7F15CBF10FF6D9B7F0B492F99A27C06F86FA74705A6F32C5178BBC711DBEB7797853EE452DC685A8E8B195C160DA45ACB9DC46CFD07C32" $FileBin &= "C8B0F9EF15E1638DA51AF97E5587AF9D63A8CD5E15E96079161F0F516CE96271F5B0942B27A4A9549C7A9F1BC779BD6CA787EBBC2D474B199856A596616AC5DA54A78AE675AB41EEA747094F11569B5B54845F43E77F02783ECBC0FE1BB2D0ED584F70A0DD6AB7ED932EA5AADC056BDBD95DBE76DF2011C0242CF1DB470C4CCC50B1EC68A2BFA6EB55A95EAD4AD564E752A49CE727D64DDDE8B44BA24AC924924923F06A74E14A10A74D28C211518A5D12FCDBDDB7AB776F5615E7FE29F0EEB5F147C5DF0D3E03785E7920D6FE2F78B2CF45BDBB814C92695E15B274BDF12EAB246BF3186C74E8E6BFB84E93D858DFC38705D47A057B87FC13E7C2B1F8CBF6C7" $FileBin &= "F88DE33BC884F6DF07FE1769DA1E92C5415B4D7BC73731CAB788C49C4C7474F1269ED85F9D26656602201F931D992C9329CEB3DB275327CB3118BC32925283C7CE54F099773A77528471D89C3CE516BDE8C5C7A9D384C17F6A66396654EFC99963E8E1AB357BFD562A788C659A69A6F0942B453E8E49DB43F6EBC17E10D03E1FF84BC37E08F0AD847A67873C27A2E9DA068B631018B7D3B4BB58AD2D95D82A996668E20F7170E0CB713B493CACD2C8EC7A6A28AFE31A952A56A952AD59CAA55AB3954A95272729D4A939394E7393BB94A526E52936DB6DB7A9FD3F4E9C294214A9C630A74E11A74E1149461082518C62968A318A4925A24920A28A2A0B0A28A2" $FileBin &= "800A28A2800A28A2800AFF003EEF8DBFF27B5FB787FD9D3FC66FFD5B5F11EBFD046BFCFBBE36FF00C9ED7EDE1FF674FF0019BFF56D7C47AFDB7C0FFF0091F669FF006014FF00F4F33E1B8D3E3C93FEC2F15FFA8933028A28AFEA33E6028A28A0028A28A0028A28A0028A28A002BF4B3FE0849FF291AF8E1FF66B3E21FF00D4FF00E0057E69D7E967FC1093FE5235F1C3FECD67C43FFA9FFC00AF82F133FE48BCEFFEC1BFF6F81784FF0091BE49FF00633A5FFA66B9FD82514515FC587EBA145145001451450014515C07C53F8A5F0FBE09FC3CF16FC57F8ABE2AD2FC13F0F7C0BA3DC6BDE2AF146B323C761A4E9B6E510CAEB0C735CDCDC5C4F2C36763616505" $FileBin &= "CDFEA57D716D61616D7379730412694A955AF569D0A34E75AB56A90A54695284AA54AB56A49429D3A708A729CE736A30845394A4D249B69174A954AF529D1A34E756B569C2952A54E329D4AB52A494214E9C229CA739C9A8C2314E52934926DA3BF2400493803924F403D4D7F3F1FF000508FF0082DA787FE15EBFADFECDDFB0DE99A2FC7CFDA523F3F4DF1378D1665D43E0CFC109433417775E24D6AD265B4F15F8A74D70F1AF87B4EBD5D2B4CD4A37B6D6F51B9D5AC65F086A3F99DFB66FFC1553F683FF008283CDAD7C2DFD9825F15FECDDFB1ECD2DD695E22F8A570ADA47C64F8E9A586782F2D3404864693C17E0AD4C2BC0F6F6971F6FD4EC1DD3C41A94" $FileBin &= "91DCEABE0683E47F87FF000E3C1BF0BFC3F0786BC17A2DBE91A7C415E791479B7FA95C85DAD7BAA5F383717D77273FBC998AC484416D1C16E91C29FD23C17E0FE1B2C54736E38A51C4E3572D5C370AC6A7EEE83D250A99FD7A52BF32D1FF0064E1E6AA3D238DAF4AD530B2FE88E0EF09B0F972A39A719D28E2319EED5C370D467FBAA3F6A13CF2B5295F9B67FD97426A7B2C656A769E165CDE87F0F3C45ADF8F358F8E3F1E7C77ADFC71FDA0BC5529BAF107C48F17CC6F1B4F670E174AF08E9AEA965E1ED1AC2291ACB4EB7D3AD2CA1B2B15FB1E9567A3E98C34B8BD728A2BF68AB5A759C39B9230A54E14A8D1A50851A187A34D28D3A187A14A30A5428D38A5" $FileBin &= "1852A508C2292491FB0D4AB3AAE3CDCB1853846951A54E11A54285182E5A746851A6A34A8D1A714A34E9538C6104ACA2828A28AC8CC2BC9BE237C22D13C7B75A3F892C753D63C0DF12BC29756BA9F81FE28783AF6E344F19785357D3E6FB5E997965AB69F3DA5E3C565798B98A1FB4C52DBCA5E6D3AEB4FBB7174BEB3456B46BD5C3D45528CDC26938B6ACD4A32569C27169C674E716E33A735284E2DC65169B46B46B55A1355294DC269357566A5192B4A138B4E3384D3719C269C2716E324D368FD2AFD857FE0B75E2BF865AC7873F678FF8296CB67A63DD4B0689F0F7F6C0D2ED16DFC11E2A500456567F17EDAD618ADFC2DAE6D50B75E2CB5B6B6D30074B" $FileBin &= "9F1269BA5D95BDDF8BB51FEA074DD4B4ED674EB1D5F47BFB2D5749D52CEDB50D3353D36EA0BED3F51B0BC852E2CEFAC6F2D9E5B7BBB4BAB79239EDAE6092486786449627646563FC1CF88FC37A0F8BB46BEF0F789B49B1D6F45D4A230DEE9DA842B3DBCCBD51803868A785B12DBDCC2D1DC5B4CA93412C5322BAF75FB257EDB1FB4EFF00C130AFE2D2FC2C35EFDA3BF6327BC7B9D73E08EB1A8BDC78F7E125A5CCCF3EA1AC7C24D6AE7CC61610492497D75E1AB857D16F49B837365A56A177A878CD3F25E34F0972FCFF00DAE69C234F0F94E752E6A95F21728D0CAF339BD5CB2AA936A9E5B8B9BBBFA8D5947035A4D470D530AD468D4FCAB8C7C2BC0679ED73" $FileBin &= "2E15861F2BCDE579D7C8DCA3432CCC66F594B2CAB36A9E5D8A9BBBFA9559470555BB50A9866A34AA7F733457CE5FB2BFED5DF03BF6CDF841A37C6EF801E308BC5DE0AD52E66D2AF964B7974ED73C2FE26B2B6B2BAD57C25E2BD1AE40B9D1BC47A4C5A8594B756721960B8B3BCB1D574BBBD4346D474ED46EFE8DAFE64C5E131580C5623058EC3D6C26330B567431386C4539D1AF42B53938D4A556954519C270926A51924D33F9BF1584C4E07135F078DC3D6C2E2F0D567471186C453952AD46B536E33A7569CD29427169A71924D0514515CE738514514005145140057E2D7FC163BF680D4346F875E0DFD933C07A91B7F1E7ED157C63F15CF6B21FB4787FE1" $FileBin &= "168B3ACDE23BCB9119F3218FC457308D2915C793A8E8F63E28B3CF981457EC7EBDAEE93E18D0F58F126BF7F6DA5687E1FD2EFF005AD6753BC9561B4D3B4BD2ED65BDBFBEBA99BE58ADED6D609679A46E1234663C0AFE40F51F899AB7ED3FF1E3E2C7ED55E208EE63B0F186A937847E136997A1964D03E16F86AE1ECB4948E16DCB6D71AABC1F6DD4922217FB624D6678C98AF8E7FA3FE8D5C130CFB8C2B717E654155C93812387CCE30AB1E6A38DE24AF39C787702D3D2A2A388A35B38C44358BC3E572A55125888DFFAD7E887E1D53E26E3CAFC779BE1A35B877C34861737842B414A8663C5D8A9D48F0A65CE325CB52387C550C467D8A87BD1961B26950AA9" $FileBin &= "47150BEFE8DA458681A469BA1E9502DB69BA4D8DAE9D6302E3F776D690A43106200DEE51019242374921676259893A74515FDB952A4EACE752A49CEA5494A739C9B7294E4DCA526DDDB6DB6DB7AB67FA2D52A54AD52A55AB3954AB5672A952A4DB94A739C9CA73937AB94A4DB6DEED85145150405145140056FF00ECADF1A0FEC93FB66F843C6B7D746C3E10FED15FD9FF000ABE29EF90C7A6E91E2B79BFE285F185D65A3B784DADFC82CEEAEE7610D8E8D7FE2BBF98B4B2A5605711F11BC1565F10BC19AEF852F0229D4ACDBEC372E33F62D520227D36F06017DB05DA44665421A5B733404ED958155B0196E7580CD387B3A5CD92F1165F88C9F34B454A5468" $FileBin &= "62945D1C7528BD3EB39662E187CCB0ADED88C2D3E8DA6B1196653C4396673C2BC43173E1EE2BCAF1590671CB1539D0C3E3545D0CCA845E8F1793E3A9E1336C13E98AC152E8DA7FD8B020804104100823A1079047B114B5F9CBFF0004BFFDA76F7F690FD99F46B5F18DDBBFC5EF839787E15FC53B6BC977EA573AB787A148347F12DD076334CDE25D152DAEAF6F7625BCDE21B7D7EDADB7259311FA355FE5C71570DE65C1FC479D70C66F4D53CC324CC31180C472DDD3ABEC66D52C4D093F8F0D8BA2E9E270D557BB570F5A9D48B719267F8C1C6DC239BF01716F10F06E7B4952CD787334C56598AE5BBA55DE1EA35471786934BDA6131D8774B1983ACBDDAD85" $FileBin &= "AF4AAC7DD9A6CA28A2BE7CF970A28A2800AFE6EBE2F3CB37EDA3FB5AC97259A74F11F80A18DA418716F1F849628557A6635821B654206362C673C827FA45AFE7C7F6C7F0DCBE02FDBAFC5B77321874EF8D5F0E7C2DE2CD365008866D5FC31649E16BDB446C05FB4C76DE1DBBD42E2304B2ADDC32B0C5C835FB1782F5A11CF73DC336955C5F0CE29505D672C2E679563AAC1756FEAD86AD51AFE5A527D0FCCFC51A72794E535D26E9E1B3CA2EABD6D18E23058EC2D393E897B6AD4E177FCFA6A79ED14515FBB1F91857D79FF04A9488F8FBF6C2B8214DD3788FE15C0EF9CC9F6686C3C77F674233F2A0679769C0DE41C96D836FC875F427FC137BC4717867F6AD" $FileBin &= "F8EDE05B8912DD7E23FC3AF0A78DB4C47213ED771E0BBDFEC99E2849C0927CF88F55B908016305B5CBE0885DABE7F8CE954C4702F17D1A49BA9FD9F80C4D975A583CF32BC4D7F9468C2751F4B41B7B23D9E18A90A3C57C3952A34A0F1B89A177D2A6272DC6D1A567DE55251A6BBF3F63F7328A28AFE473FA3C28A28A0028A28A0028A28A0028A28A002BFCFBBE36FF00C9ED7EDE1FF674FF0019BFF56D7C47AFF411AFF3EEF8DBFF0027B5FB787FD9D3FC66FF00D5B5F11EBF6DF03FFE47D9A7FD8053FF00D3CCF86E34F8F24FFB0BC57FEA24CC0A28A2BFA8CF980A28A2800A28A2800A28A2800A28A2800AFD2CFF0082127FCA46BE387FD9ACF887FF0053FF" $FileBin &= "008015F9A75FA59FF0424FF948D7C70FFB359F10FF00EA7FF002BE0BC4CFF922F3BFFB06FF00DBE05E13FE46F927FD8CE97FE99AE7F609451457F161FAE8514514005145140057CB7FB6D7ECFB69FB547EC97FB40FECFD731C2F75F133E19789345F0F493B2AC365E33B6B5FED7F036A92962AA63D27C65A6E87A9BAB3A2BADA152E818B0FA928AEAC16331197E37098FC24DD2C560713431986A8B7A75F0D5615A8CD79C6A4232F91D382C5D7C0633098FC2CDD3C4E0B13431787A8B7857C3D58D6A535E719C22FE47F9E77ECD3E29BBF147C1BF09AEAB0CF69E21F0AC571E06F12585D44D05E586B3E1099B4792DEF61701E2BC7B3B7B3BAB98DD51D25B965" $FileBin &= "75570C07BCD6AFED55F0A3FE1987FE0A69FB5BFC1B86D7EC1E0FF8C377A6FED4DF0D21C491412597C4491FFE13A4B48591618E1B7F1DB6BBA3D8DBDB168E2B0F0D80842C6F05AE557F794F174332A785CDB0A92C267382C266F868A6A4A14F31A10C4CA8DD7DAC3D5A9530F35BC6A52945EA99FDC4F154730A585CD30C92C2E6F83C2E6B8749DD429E3E84312E95FBE1EACEA61E6B753A528BD530A28A2B32028A28A0028A28A002B91F1F78B2D3C09E09F1578C6F76B5BF86F42D4B56F29D828B99AD2D6492D6CD4923F797B7421B488646E966450726BAEAF17F891E02D57E3FFC47FD9D7F64CF0FCB3C5A9FED21F1A3C25E13D626B5F9A6D37C05A4EA767A" $FileBin &= "AF8D75C28A7798F42D3845AD4D80375B69D72A371F94F461551F6F1A98A9AA784C3C6A62F19525F0D2C16129CF138BA927A59430F4AA4B75B1BE1951F6D19E266A9E16829E271751E8A9E130B4E588C5546FFB987A5525F23FAA0FF82177ECF775F00FFE09D1F086F75DB47B6F1BFC7ABAD67F68BF1B492A08E6BABCF89CD6B3F84E79136ABC721F86FA6F8296E21946E8AF05D2ED8F3E5A7EC0565685A2695E1AD1347F0E685616DA5689A0697A7E8BA3E996512C367A7697A5DA4565A7D8DA42802436D69690456F046A02A451A20E0015AB5FC31C439C57E20CF737CF311755B35CC7178E945BBFB3588AD3A94E8C7FB9469B8D282DA308452D123F89F3FC" $FileBin &= "DAB67D9DE6B9CE22FED733CC3158D947A5355EB4EA42947A2852838D2825A46108A5A2414514578C79014514500145145007E2D7FC163BF680D4346F875E0DFD933C07A935BF8F3F68BBE31F8AA7B590FDA3C3FF00087459D66F11DE5C04224863F115CC23494571E4EA3A458F8A2CF3E60515F965A369161A0691A6687A540B6DA6E93636DA758C0B8C476D690A43129200DEE510349211BA490B3B12CC49FD0AFF0082CAFC14BEF0E5FF00C2AFDB5FC2F697176DF0E9AD7E17FC5EB4B74799A5F86DE21D4EE9F42D616203646341F10EB17F66C41DF7177E21D25A42B6F612B57C016B736F7B6D6F7969347716B77045736D7113078A7B79E359619A271C3C" $FileBin &= "72C6EAE8C3865604706BFD20F04A864D43C1EE169643255218BC767388E24AAD255FFD6A8626346B61B12A2DA8D3C364D1CA1E02377CD85AEF116855AF5E11FF005B3E8EB86C830DE02F054F86A6AAD3C7663C4389E2EAB2518E27FD75A58C8E1F1185C5A83928D3C1F0FC721795C5C9A9E0B13F59E5857C4E269C27A28A2BF483F5C0A28A2800A28A2800A28A28037FF656F8D07F649FDB37C21E35BEBA361F087F68AFECFF00855F14F7C863D3748F15BCDFF142F8C2EB2D1DBC26D6FE416775773B086C746BFF0015DFCC5A5952BFAC004100839040208E841E41FC6BF907F865F0766FDAF3F6ABF85FFB3A240F73E01F0B5C43F15FE38DCC618C31785342" $FileBin &= "9216B1F0E4F2AE1A29BC47717769A4B22B79AB1EBF6BA8C408D3A6DBFD7BAA845545E1554281ECA001FA0AFE43FA5751C9A3C47C1F89A524B8A715C3117C434A9A8F2BCBE86265438671389927CDFDA35B2F856A3521257FECDC2E55575F6D77FC25F4DCC3E410E2CE02C5D19A5C678DE0D84B8AA8D35170795E1F173C37076331934F9966B88CAA9E22854A7349AC9F0791D7BBFAC0EA28A2BF94CFE240A28A2800AFCD9FF8297FC0DD5FE217C23D1BE2DF822CDEEBE217C02D4AEBC61656D0216B8D5FC19711C03C6BA4AA22F99318AD2C6CF5A11EE667B4D2B50B3B68A4B8D4114FE93535D55D591D55D1D4ABA300CACAC086565390558120823041C1AF6B" $FileBin &= "87B3BC570E675976778351956CBF111AAE94DB54F114649D3C4E16ADB5F658AC3CEAE1EADB5E4A927169D9AF2F3ACAB0F9DE578CCAF12DC6962E9382A91B73D1AB192A942BD3BE9ED2856853AB0E8E5049E8D9FCC9F863C45A778B342D37C41A54A24B2D4AD9664048324128CA5C5ACE070B3DACEB25BCC071E646C54B21563BD5DD7ED6FF00B37EABFB2278F353F89DE07D2AEAFF00F66DF881AC0B9D734CD3A09277F849E28D464DAE16DA20C23F0AEA370C174B9E358E2B75787409825D5A688DABF9D58DFD96A7676DA869D7505ED8DE4293DADD5B48B2C13C320CAC91C884AB29E9C1C820A9018103FAEF0B8BC066D80C2E739455F6F95E3939519369D5" $FileBin &= "C2D6493AD97E3229BF658CC2CA5C9522DDAAC392BD273A356137FCDD88C2E2F2EC5D7CB731A7EC71F847CB522AFECEBD37FC3C5E19B4B9F0D5D7BD092BF24B9A94F96A425156EB921E39BAF81DF18BE0EFED076893BD8F80FC4A9A478DE2B546966BAF02789D64D235B1E50F9667B5B3BEBEFB0C6C081A9DDD9CA06E895D3ADACED5F4AB1D774BBFD1F52845C586A56B359DD44782D0CE8518A360EC91321E2900DD1C8A922E1941AE8A5EC24EA50C5D3F6D82C5D0AF82C751EB57058CA53C3E2A9AED2951A93E47D27CB2E8633F6B1E4AB879FB3C4E1EAD1C4E1AAEFECF1386AB1AD426FC95484799758B92EA7F4A7A6EA361ACE9D61ABE97776FA8699AAD95" $FileBin &= "AEA3A75FDA4AB35ADED85EC097369776D321292DBDCDBCB1CD0C884AC91BAB0241157ABF1FFF00E09B5FB475C69626FD917E286A58F14783E09EEFE0FEB57B2154F17F80D4CD7234081E5E1F52F0D44B33D95AA4B21FEC549F4E82348FC332C93FEC057F2271570E62F8573BC5E518ABD485392AB82C5A8B54B1F97D6BCB098DA2F670AD4ADCF14DBA55A35684ED5294D2FE90E1ECEF0FC419561B31A1684A71F678AC3B779E13194D2588C3545BA9539DF95B4954A6E156378CE2D9451457CE9ED851451400514514005145140057F9F77C6DFF0093DAFDBC3FECE9FE337FEADAF88F5FE8235FE7DDF1B7FE4F6BF6F0FF00B3A7F8CDFF00AB6BE23D7EDBE07F" $FileBin &= "FC8FB34FFB00A7FF00A799F0DC69F1E49FF6178AFF00D449981451457F519F301451450014514500145145001451450015FA59FF000424FF00948D7C70FF00B359F10FFEA7FF00002BF34EBF4B3FE0849FF291AF8E1FF66B3E21FF00D4FF00E0057C17899FF245E77FF60DFF00B7C0BC27FC8DF24FFB19D2FF00D335CFEC128A28AFE2C3F5D0A28A2800A28A2800A28A2803F98FFF008388FE140F0ADEFEC7FF00B6B6976EB10F86FF0010EFFE06FC4FBC8C12F27807E27DA5C5F687A86A04FCA34FF0BEA9A6788E3B7E547F6A78BAD772BB796F07E5BFBF507A1EC47A8F6AFEB8FF00E0A2DFB38AFED63FB12FED1BF0260B317DAF78BFE1BEAD7BE0A87644CE" $FileBin &= "7E20F845A0F18F8042BC88FE524DE2FD0746B6BA923DB2FD8E7B944652F5FC597ECEFE377F881F073C0DAF5CC8F26AB16929A16BA25DDF685D6FC3EEDA3DFBDCAB00C93DDBDA2EA0C8C3704BC43D1857F5B784D9BFF6B702D2C24E7CD89E18CCAB65D24DDE4B2DCCFDA6639749FF007638A59AD18DFE18D3A715A592FEA9F0AF35FED4E0AA7849CB9B11C399856C04937792CBF31E7C7E024FAD9627FB4E947A28C2115D97B5514515FA11F7E145145001451450015F5B7FC116BE141F8DFF00F0522F8C1F1DEFAD8DCF84BF642F85565F0FFC2F70F0116E3E297C5AFED1B7D42F6CE770CB25D699E13B4F1BE87AA450E26845E696F218A19A2377F1578AFC45" $FileBin &= "63E11F0C7887C53A91C58787345D4F5BBBC1019A0D36CE6BB78D09EB24A22F2A25E4B48EAAA0B100FF0044DFF040AF8097BF08FF00E09FDE15F88DE26B4F27E207ED4BE31F14FED0DE2B9E58992E25B0F16DD47A77821566932EF617BE0CD1B48F13D9C436C314DE26BE78833CF35C4DF21E22E6FF00D87C079ED78CF93159CCB0FC3983B3B4B971CE589CCE696EE2B2DC256C34DAD23F5D8297C493F92F10735FEC5E07CEAB467C989CDE54387F09676972E35CB1198CE3D5C565D86AD869B5B7D7209FC4AFFB63451457F1B1FC8814514500145145001451450070FF0012FE1EF863E2CFC3FF00197C33F1A5826A7E15F1D787356F0C6BB66E17749A7EB167" $FileBin &= "2D9CEF03B2B982EE0597ED165748BE6DA5DC50DCC2CB2C48C3F90BF097863C4FF063C71F12FF00664F1F48F278BBE08F88EE746D3EF654684788BC0B78E2F7C27E21B3490EF36977A55CD9CF120045A585EE976F21136F55FECB2BF04BFE0B1DF036E3C27A97C35FDB6FC1FA74924DE099ECFE1B7C6CB7B18499352F87BAF5E98B40D7AE923555924D035ABC934D32CA5E69A6D5F405765B5D246CFE9FFA31F1A2CB78931BC05985750CB38D5528E56EA4AD4F0BC5B828D4FEC9716DDA1FDAF4AA62325A895BDA6231397CE6F970CADFD93F439F109653C5D9878639A62234F27F111508E4D2AD3E5A581E39CBA355E4528B93B4167B42AE2B87AAA8A4EB62B1" $FileBin &= "99554AAF9309171F8328A82D6E6DEF6DADEF2D268EE2D6EE08AE6DAE2260F14F6F3C6B2C3344E3878E58DD5D1870CAC08E0D4F5FD9528B8C9C649C6516E328B5669A7669A7AA69E8D3D99FE804A328CA519271945B8CA2D34E324ECD34F54D35669EA98514514841451450015CE78BBC4FA77833C33ADF8A3556DB63A2D84D7B2A860AF71228096D6711391E7DEDD3C3696E0F0669A30700935D1D63FC31F83F71FB5D7ED55F0C7F6738A2967F007862683E2AFC73B88B70817C25A14D6F258786AE25421924F115DDCD9696D1E7CC45D76CF53855BFB3652BA2C465F80A18ECDF38ADF57C9724C0E2B38CDEBAB73432FC05375AB4295DAE6C46264A184C242F" $FileBin &= "7AB8AC451A714E5349EB1C56579661B31CF73FACF0DC3DC3996E333FCFF131B73D3CAB2CA4EBE229D1BB4A58BC64953C06069DEF5B1D8AC3D18DE55123F633FE090BFB37EA3F0B3E025FFC6FF1DD8F95F15FF698BFB7F881ABBDC4456EB47F03959DFC05A02090799040FA75E5C7884C0363C4BAE5BE9F709BB4B8B67EB65416D6D6F656F6F67690456F6B6B0C56F6D6F022450C10428B1C30C5120548E28E355444450A8A02AA80389EBFCBDE36E2CCC38E78AF3CE2BCCED1C56738EA9895422DBA583C2C5468E072FA17DB0F97E0A961F07416EA95085EEEEDFF008CDE22F1C669E2471B71271B67168E3788332AB8B8E1A1272A397E0A2A387CB32BC35F55" $FileBin &= "84CAB2EA385CBF0B1B26A861A9DF5BB6514515F2A7C5851451400514514019BAC68DA4F8874AD4B42D7B4DB1D6745D62CAE74DD5749D4ED61BED3B51D3EF216B7BBB2BDB3B94920B9B6B881DE29A1951A391199594826BF0E3F683FD817E23FC0BD4B55F881FB2F595EF8F7E18DD5C4DA8EBDF04A7B89EEBC4BE1CDE5E5B8B9F025CCCD35CEB5648A0A47A68171AFA2882236FE2427CFB0FDD9A2BEAF8578C738E11C54EAE5D529D6C26279163F2BC5A955C063A106F97DAD2528CA9D6A69BF638AA13A788A2DB50A9C929C27F3DC43C3396711D0853C6C274B134399E0F1F8771862F09296FECE6E328CE94ECBDAD0AB19D1A8BE287328CA3FCBAF847E22786" $FileBin &= "BC6265B5B1B892C35CB46962D4BC37ABC66C35DD3AE2DDDA3BA867B0988793ECD22B24D25B996389C797318A50D1AF755FB31FB417EC49F00BF68D77D5FC5DE1993C3FE3A545FB27C46F054D1F87FC610CB1205B77BDBA8E09AC75D5B70B1AC2BAED86A325B44A63B296D0B171F98BE3EFD82FF6B9F84CD35C7C39D7BC33FB44784ADC96834ED52687C1FF0010E1B651BD918EA577FD917F244B94FB41D7B50BDBC65261D2E26923B75FE82C938FB847882108AC74787B30925CF97E755630C239BB5D61338518E1674EEFDDFAFC70353A7EF1AE67F8D66BC1FC4793B9378479C60E2DF2E2F2B839E21474B3C465ADBC44676F8BEAAF15076BFBA9A8AF9A7C6B" $FileBin &= "E119FC429A5EAFA16A973E1AF1BF856FE0D6FC1BE2BD3A696D750D1758B39A3B9B678EE6DCADC470B4F0C4ECD1B6F8658E2B9895DE2F2E4FD72FD8BBF6E1B0F8DD147F0A3E2DAD9F837F683F0F5B086F74B98C567A5FC42B4B584B3788BC28777D9DEF64B74377AA6876ECC635126A5A489B4BFB445A67E3BEBBF11352F005E2E97F183E1B7C46F84DA9190C58F16785B558B4D99C679B0D416D237D4622159927B5B3686541BE291D72473DAFEA5F0B3E22C7A7DDD8F8EB4BD1FC4DA44F15EF86BC4BA6EB31E8BE25D0F50B7916E2DAE6C9A69AC7500B0DC2C737943CB68E55135BCB6D7691DC47F43C43C2386E2DCA6960733A3539697B4A993E7F818471DF" $FileBin &= "509D4B39C155C3CE7471997579462F11868D64E32FDFE1E70AB753F1B26E23C470EE633C5606A41CAA384331CA7152961563210B28B70AD18D4C3632945B542BBA7669BA75633A7F0FF57F457E21FECF1FF0529D77E1E3E99F0FBF6B0C6B3A36E86C340F8F5E1783FB4AD6E621F2DBA78F349D36379C5DAC4A449AB6996ED7D2F96AF75A45E8FB56B927ECE785FC57E18F1BE85A7F89FC1DE20D1FC51E1CD5A0171A6EB7A0EA36BAAE977B09C8DD6F7B652CD6F26D60C92287DF148AD1C8AB22B28FE5BE28E0CCFB84712A8E6D8492C35593583CCB0FCD572EC7456AA587C4A8A8F3DB59E1EAAA589A5B55A3076BFEFF0090713E51C4741D4CBF10BDBD34BEB3" $FileBin &= "81AD6A78DC2C9F4AD41B6DC2FA42B5373A1537A7524741451457CA9F40145145001451450015FE7DDF1B7FE4F6BF6F0FFB3A7F8CDFFAB6BE23D7FA08D7F199F1FBFE097DFF000518D43F6A7FDA97E227C3CFD9CECBC61E0BF8A7F1E3E27F8E7C2DAE37C5AF837A426A1E1BF11F8F7C53E22D0AF174ED6BE22695AC594B71A76B909B9B4D4B4EB4B9B69D1E268BE5DCDFAEF83F9B65994E739957CCF1F84C0529E069C61531788A58784E4AB6B184AACA2A5249A7CA9B76D6D64CF8AE31A188ABFD9352861B13898D0C562255561B0F57112846786942329428C27249C9DAF6B1F01515F5B7FC3B23FE0A99FF004695A7FF00E1EDF813FF00CF528FF87647FC15" $FileBin &= "33FE8D2B4FFF00C3DBF027FF009EA57F44FF00AF1C21FF00451E4DFF00871C2797FD3EF3FEAEAFF29ECF17FF0042DCDBFF000D78FF00FE51E7F9F667C93457D6DFF0EC8FF82A67FD1A569FFF0087B7E04FFF003D4A3FE1D91FF054CFFA34AD3FFF000F6FC09FFE7A947FAF1C21FF00451E4DFF00871C2797FD3EF3FEAEAE7B3C5FFD0B736FFC35E3FF00F9479FE7D99F24D15F5B7FC3B23FE0A99FF4695A7FFE1EDF813FFCF528FF0087647FC1533FE8D2B4FF00FC3DBF027FF9EA51FEBC7087FD147937FE1C709E5FF4FBCFFABAB9ECF17FF42DCDBFF0D78FFF00E51E7F9F667C93457D6DFF000EC8FF0082A67FD1A569FF00F87B7E04FF00F3D4A3FE1D91FF" $FileBin &= "00054CFF00A34AD3FF00F0F6FC09FF00E7A947FAF1C21FF451E4DFF871C2797FD3EF3FEAEAE7B3C5FF00D0B736FF00C35E3FFF009479FE7D99F24D15F5B7FC3B23FE0A99FF004695A7FF00E1EDF813FF00CF528FF87647FC1533FE8D2B4FFF00C3DBF027FF009EA51FEBC7087FD147937FE1C709E5FF004FBCFF00ABAB9ECF17FF0042DCDBFF000D78FF00FE51E7F9F667C935FA59FF000424FF00948D7C70FF00B359F10FFEA7FF00002BC27FE1D91FF054CFFA34AD3FFF000F6FC09FFE7A95FA4DFF00047EFD833F6C5FD9CBF6B9F89DF19BF689F8416DF0D3C2BE24F80FAD781B4DB98FC7FF000E3C5AF77E24BDF1AFC2CD4ED2CE1B2F05F8BFC4B7D0C5FD" $FileBin &= "95E0FD52E67BBBE86D6D92410C0924924CAABF19E2071570DE63C279BE17059E65789C4D4C3DA9D0A38EC354AB51F3C34A74E156529BD768A6ED77B6A746070F8CA99AE512FECFCC69C2963E156AD4AD80C5D1A74E9AA555394AA55A508455E515ABDDD8FE9528A28AFE4C3F580A28A2800A28A2800A28A2800232083D0F06BF83CF8DBF0A0FECBBFF000507FDB27F6748ED9AC3C29AEF8CE3FDA23E155B8511D9B783BE2AA41ABEAF65A5C670C34EF0D6B7A845E138000409B43BCDC4B0F366FEF0EBF96DFF0083843E130F01FC59FD8CFF006D3D36D445629AFEABFB30FC56D4163401F43F1745A9789BE1D4D7B2A0124761A25FFF00C2C1BD9659B7C22EA6" $FileBin &= "D361478A59161BBFD9BC10CDFEA9C5589C92A4ED438972CC460A9C5FC3FDA582FF00852CBA5FE3A92C357C153EEF1AE3BB4D7EBFE0BE6BF55E27C464D5276A3C4596D7C2422FE1FED0C1FF00C2865F2FF1D4950AD83A7BEB8C6ADADD7E6CD14515FD29CB2FE597DCFF00CBCD7DE7F45F2CBF965F73FF002F35F7851451472CBF965F73FEBAAFBC3965FCB2FB9FF5D57DE1451451CB2FE597DCFF00AEABEF0E597F2CBEE7FD755F79E11F1B3C31AF7C5DD43E0F7ECCDE0F95E2F167ED2FF183C0DF0B6CA58C316B0D1F50D7B4F7D775A94AAB94B1D255EC26D4DCC6E89A6C976F2298D1C1FF00408F04F83F40F87BE0CF097807C29611E97E17F04786742F08F8" $FileBin &= "6F4C88E62D3B41F0DE976BA3E916319E331DA69F676F6E87FBB18AFE40FF00E090FF000A07C7CFF82A27887E26DEDB8BCF067EC57F08A56B3988335AC7F173E30C379A1696195BF71BD7C1F2F8C1CB7CD25AEA7E1DB47451320920FEC8EBF9FBC75CDF9B31C8786A9CBDDCA32F96678D8A7B6639E7B2AF084D77A595D0CBA51BEB1788A89249B6FF0006F1B735E6CC323E1DA73F772AC03CC71904F6C7E73ECEB46334BAD3CB6860251BEB175EA2B2BDD9451457E0C7E1C14514500145145001451450015C3FC4BF87BE18F8B3F0FF00C65F0CFC69609A9F857C75E1CD5BC31AED9B85DD269FAC59CB673BC0ECAE60BB8165FB4595D22F9B6977143730B2CB12" $FileBin &= "30EE28ADB0F88AF84C450C5616AD4A189C356A588C3D7A5270AB46BD19C6A52AB4E71B4A1529D48C6709269C6514D6A8DF0B8AC4E071586C6E0EBD5C362F075E8E2B0B89A33953AD87C4E1EA46AD0AF4AA41A953AB4AAC23529CE2D4A338A9269A47F1A7E12F0C789FE0C78E3E25FECC9E3E91E4F177C11F11DCE8DA7DECA8D08F117816F1C5EF84FC4366921DE6D2EF4AB9B39E24008B4B0BDD2EDE4226DEABE995F79FFC163BE06DC784F52F86BFB6DF83F4E9249BC133D9FC36F8D96F6309326A5F0F75EBD31681AF5D246AAB249A06B579269A6594BCD34DABE80AECB6BA48D9F035ADCC17B6D6F7969347736B77045736D710B078A7B79E359619A27190" $FileBin &= "F1CB1BA3A30E195811D457FA91C29C57438FB84722E35A3ECD62334A33C267F42924A383E27CBE34E9E6F4B91694A18D73A19BE169ED1C2E634A9ABBA72B7FB41C13C6F87F13F81786BC43C3FB28E2F3AA15303C4F86A2946380E32CAA346967D47D9C7DDA34F317570D9F60E92D2182CDA8525EF529A53514B83E87F23460FA1FC8D7B47D089452E0FA1FC8D183E87F23401CDF8BBC4FA77833C33ADF8A3556DB63A2D84D7B2A860AF71228096D6711391E7DEDD3C3696E0F0669A30700935FB2FF00F0485FD9BF51F859F012FF00E37F8EEC7CAF8AFF00B4C5FDBFC40D5DEE222B75A3F81CACEFE02D010483CC8207D3AF2E3C42601B1E25D72DF4FB84DDA5" $FileBin &= "C5B3F1CFE18FC1F9FF006BAFDAABE18FECE71452CFE00F0C4D07C54F8E77116E102F84B419ADE4B0F0D5C4A843249E22BBB9B2D2DA3CF988BAED9EA50AB7F66CA57FAF1B6B6B7B2B7B7B3B4822B7B5B5862B7B6B781122860821458E18628902A471471AAA222285450155401C7F3C7D2638D3FB1786F2AF0F7035B9730E24FABF10F12A83B4E8E4B86AB2FEC0CB2A59E9F5FC653AB9C62294AD2F6585CAAA59C2AEBFCA9F4C1F107FD5EE11C97C2CCB6BF266BC5DF55E2AE2FF00672B4E870EE12B4BFD57C9AB5B6FED3C7D2AF9FE2A8CB965EC705915657856D67A28A2BF878FF38828A28A0028A28A0028A28A0028A28A0028A28A00A97D6163A9DACD63A8" $FileBin &= "D9DA5FD95CC662B8B3BDB786EAD6789B868E6B79D1E295187051D194F706BE71F16FEC67FB2AF8DE4926F10FC03F866F73336F9AF348F0D59786AFE772BB4BDC5F7869748BB99F181BE59DDB85E46D5C7D33457760B33CCB2D9BA9976618EC04DB4DCF058BAF859B6B66E542A53775D35D0E4C5603038E8F26370785C5C7A471387A55D2F45561248FCF5D4FFE096BFB14EA0CCF6FF0BB53D219D8B9FECDF883E3F280B3066D91EA3E24D4238D49040444545562A8AA026DF55F82DFB177C1BFD9EF597D67E13DCFC42F0C1B8915F52D217E20788750F0D6B3B544606AFE1CD4AE6EF47BE956306286F24B417F6A8CDF62BAB773BC7D6B457AF8BE32E2DC7E12" $FileBin &= "A6071FC4B9E63B07562A3570B8CCD3198AA1522ACD2A94EBD6A919D9A4D7326EE93DF53CDC3F0C70EE13110C5E1323CAF0B89A6F9A9D7C360B0F42AC1F78CE942128FC98514515F347BA145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145154EFD2FE4B574D32E6CECEF4BC063B8BFB19B51B558D6E226B947B4B7D434B96479AD44D0C122DEC6B6F7124573245751C2F6B3805CAF04FDA5BF666F833FB5DFC21F107C0DF8F5E13FF0084C3E1DF892E34ABEBED322D4F53D12FED752D12FE1D4F49D534BD6B45BBB1D534CBFB1BC811927B4BA8C4F6EF7363749716177756D37BD2EE" $FileBin &= "0AA1CAB3803732A9552D8E4AA9672A09E42976207058F5A5ADF0B8AC4E0713431983C456C2E2F0B5A9E230D89C3D49D1AF87AF4A4A74AB51AB4DC674EA539C54A138494A3249A69A37C36271183C450C5E12BD6C2E2B0D5615F0F89C3D49D1AF42B52929D3AB4AAD3719D3A90925284E32528B49A699F86DFF0010EA7FC12CFF00E890F8EFFF000F2FC4AFFE6828FF0088753FE0967FF4487C77FF008797E257FF003415FB93457D7FFC44AF10BFE8B7E2AFFC3EE65FFCD27D5FFC444E3DFF00A2CB89BFF0F7987FF341F86DFF0010EA7FC12CFF00E890F8EFFF000F2FC4AFFE6828FF0088753FE0967FF4487C77FF008797E257FF003415FB93451FF112BC42" $FileBin &= "FF00A2DF8ABFF0FB997FF3487FC444E3DFFA2CB89BFF000F7987FF00341F86DFF10EA7FC12CFFE890F8EFF00F0F2FC4AFF00E6828FF88753FE0967FF004487C77FF8797E257FF3415FB93451FF00112BC42FFA2DF8ABFF000FB997FF003487FC444E3DFF00A2CB89BFF0F7987FF341F1F7EC77FB08FECCFF00B08784FC55E0DFD9B3C0D75E10D2FC6FAF5B788FC5575AA7893C41E2AD5F59D46C6C574ED3C5C6A9E22D4350B98ACB4EB4F352C74FB56B7B2825BBBEBA580DD5EDD4D37D834515F298FCC31D9A62EBE6199633138FC76264A788C6632BD4C4626BCE318C232AB5AACA752A35084609CA4DA8C6315A248F97C763B1B99E2AB63B31C5E231D8DC44" $FileBin &= "94EBE2F175AA623115A518C60A556B5594AA4DA846314E526D46292D124145145721CA14514500145145001451450014514500715F123E1F785BE2BF807C61F0D7C6FA726ABE13F1CF87755F0CEBF60D8569B4DD5ECE5B3B86B794AB9B7BC8565F3ECAEA31E75A5DC70DCC256589187E3E5BFF00C10EBE0DD8C1159E9BFB4BFED57A7D85AC6B05958DAF8DFC2F0DB59DAC436C16D0430F83628A3860882C71A471A22AA80AA0703F6E28AFB9E12F12B8EB8170F8CC2709F1263F25C2E615A96231986C3AC3D5A15B114612A74EBBA58AA15E9C6AAA7274DD4846329C146337250828FE91C0DE2F7895E1AE171F81E07E2ECCF87F059A6228E2F1F84C2AC2D6C3" $FileBin &= "6231587A72A54B10E86330F89A70AF1A52749D5A5184E74D421394A34E9A8FE26FFC3913E14FFD1D1FED65FF0085E786FF00F991A3FE1C89F0A7FE8E8FF6B2FF00C2F3C37FFCC8D7ED9515F5BFF1309E32FF00D175997FE12E55E5FF0052FF002FC5F73EE7FE26A3E901FF00472F38FF00C23C97CBFEA59E5FD595BF137FE1C89F0A7FE8E8FF006B2FFC2F3C37FF00CC8D1FF0E44F853FF4747FB597FE179E1BFF00E646BF6CA8A3FE2613C65FFA2EB32FFC25CABCBFEA5FE5F8BEE1FF001351F480FF00A3979C7FE11E4BE5FF0052CF2FEACADF14FEC77FB0AFC29FD8C6D3C732781F5CF1AF8DBC4FF116FF004DBBF14F8DBE226A5A6EAFE26BCB5D1A19E2D2" $FileBin &= "B498EEF4ED2B498A2D3ACDAEEF6E36B432DCDC5CDD3BDC5CC91C36915BFDAD4515F98E7FC419D714E6D8BCF788731C4E6D9BE3E54E58BC762E4A55AB3A3469E1E8C5F2C6308428D0A54E8D2A74E30A74E953842118C6291F8EF13F14F10F1A6798EE25E29CDB179E67B99CA94B1D99E3A6A788AFF57C3D2C2E1E2F96308429D0C350A387A34A9C214A951A50A74E1184524514515E39E0051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005" $FileBin &= "145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514537CC4DFE5EF4F336EEF2F70DFB738DDB73BB6" $FileBin &= "E78CE319E3340D26F64DD95DDBA2EFE83A8A28A04145145001451450014514500145145001451450014514500145145001457857ED33F1375FF835F023E257C4EF0B5A6917DE20F07787DB55D2ED75EB7BCBAD226B9179696E12FEDEC2FF004CBC961D93B9DB6F7F6CFB829F300041FC7BD07FE0A37FB6DF88F48B0D734CF007ECF8F61A8C3E7DB34BA3F8D6291A32C532F1B7C4ADC872ADC1EC33DC57E3DE20F8E1C13E1AE7782E1FE21867D5B33C7E59FDB1428E4D92E23348AC0FD6AA60FDA559D19254DFB7A528F2B57B72BBEA7ECDE1CF811C75E286498FE21E1A970FD1CAF2DCD2393622B6759E6172994B1F2C2431AA9518574DD55F57A919B94744EE" $FileBin &= "BA1FBF3457E0EFFC3C03F6E9FF00A27DFB3C7FE0B3C67FFCF2BFCE0FB643FF000501FDBA4027FE15F7ECF18033FF0020CF1A7E3FF352BFC7A1F6CFC47FC4D77863FF00401C75FF0088863FFF00933EF7FE2513C55FFA0EE02FFC4CB2EFFE40FDE2A2BE1CFD813F696F1E7ED4DF087C4FE3EF885A5F85349D6745F891AAF83ED6DBC1F61AB69DA6BE9963E18F08EB514D710EB3AE6BF74F7CD75AFDE4724B1DE4501B78ED916D92449659BEE3AFDD78478AB29E37E1AC9B8B3229D7A993E7B83863B2F9E2684B0D88961E729C22EAD09B72A53E684AF0936D1F81719709671C09C519DF07F1053A14B3AE1FC754CBF31A785AF0C561E189A718CA4A96220942AC" $FileBin &= "2D38DA715661451457D19F321451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451599ACEB3A4F87B49D475ED7B51B2D1F45D1ECAE751D5354D46E62B3B0D3EC2CE279EEAF2F2EA774860B7821479659657544452CC46282E9D3A95AA4295284EAD5AB38D3A74E9C653A952A4E4A30842114E539CE4D46318A72949A4936C359D6749F0EE93A96BDAF6A565A3E8BA3D95CEA5AA6ABA95CC56761A7D859C4F3DD5E5E5D4EE90C16F0428F2CB2CAEA888A5988C57C8ADFF000509FD8E54907E37E81C120E348F1530241C65597412AC38382A483D41C75FCBAFDA63F698F11FED8DE23B8F" $FileBin &= "05F82EE353F0E7ECD3E1CD4F6DE5DA89F4FD53E2C6A9A7CE192E2E1584735BF87A099164D3B4E91418D95352D4A3FED636567A1F9B41E0FF0009DB430DBC3E1AD0921822486253A4D8B958E350880B3C0CEC42A8059D9989C9624924D68B7D5FF5D9AFF83E4ACDFF0071F04FD14724A79061719E28E65C4980E24CC547151E1BE1CAF95E16AE43829C232A1473EC4E63976669E718852556B65B87A549E5749429632ACB193AD86C27EC6FFC3C2BF638FF00A2DFA0FF00E09FC57FFCA0A3FE1E15FB1C7FD16FD07FF04FE2BFFE5057E3BFFC22BE18FF00A17341FF00C13E9FFF00C8F47FC22BE18FFA17341FFC13E9FF00FC8F45D765F8FF00F25EBFD3D3EBBF" $FileBin &= "E256BC1DFF00A197895FF878E18FFE85BD7FA5AFEC47FC3C2BF638FF00A2DFA0FF00E09FC57FFCA0AF58F84FFB4CFC09F8E3A8EA5A3FC2CF891A1F8B756D26D23BFBFD2ED56FACB518AC649441F6C8ECB55B3B1B9BAB58A668E1B8B8B58E786D659EDE3B8789AE60127E0FFF00C22BE18FFA17341FFC13E9FF00FC8F5CBEA9E15D63C3DAE687F117E11EA03C0BF12BC1D38BED0754D26386CADEF420613697A9DBA462D6EAD2FA2796D678EEA19ADAE6DE79ACEFA29ECA792302E57BAB79ABE9B77959F5DEDEAAEEDCB8DFA2878638DC1E2B0D91F127196539CD5A138E578ECFF1792E619253C7249D08669432EC8B038E860AB4D7B1AD8AC3569D4C246A2C4F" $FileBin &= "D5F131A52A153FA7EA2BE2EFD8FF00F6C0F0EFED2BE1DB9D1B58B687C23F197C230243E3AF02CCCD133344C96EFE23F0EA5C3B4D77A05E4EC8248CBCD75A2DD4D1D8DF493C3369BA96A9F68D26ADFD7F5FE69E8F53F85F8AF8533FE08CFF0031E19E26CBAB6579CE575BD96270D56D28CA324A7471386AD072A38AC162A8CA188C1E330F3A987C561EA53AD46A4E134C28A28A47CE85145140051451400514514005145140051457C37FB78FEDE3F09BF60FF84C7C6FE372FE26F1E789A4B8D1BE127C24D16E13FE12BF893E2C2B1AC163630247733D8685633DCDA49E22F1149693DB6956D3C104106A1AD6A1A3E8FA97263F1F83CB30988C7E3F114F0B83C2" $FileBin &= "D3756BD7AAED0A70565D137294A4D46108A94EA4E51842329C927F43C27C27C47C73C47947097096518CCF788B3DC653C0655956029FB4C462B1152EFAB8D3A3468D38CEBE2B155E74F0D84C353AB89C4D5A542954A913F6F1FDBC7E137EC1FF00098F8DFC6E5FC4DE3CF134971A37C24F849A2DC27FC257F127C58563582C6C6048EE67B0D0AC67B9B493C45E2292D27B6D2ADA7820820D435AD4347D1F52FE476FFE2D7EDD3AAFC6C5FDBB9BE2EDE597ED4105D8BAD37E1D43338F85B65F0CD5DE71F037FB0DEECC0FA04D03B7DA2296F5966D5D9B549B526F14B9F18A5CBBBCF8B1F1EBE2C6B3FB507ED43ACC7E26F8C9E268FC9F0FF87E12E7C29F07FC27" $FileBin &= "BA6934DF05F82F4D926B886C16C21B8952EAE9259EE65B99EF6E6E2FB50D5350D6357D57D0ABF9AF89F8AB31E29C6C2B53AB8BCB32CC15555729C351AB2A18A55A9BBD3CCF173A6D7FB5DD7361E85E54F0906E2D4EACEA49FF00B65E077809C1BE0270CE2B2BC565FC3FC75C73C4B809E5FE21E7B996030F9B645532CC5412C7702F0ED0C5D269F0F59BA59C66D18D1C6E7F8A846AD29E1B0187C1515FD3DFFC13F3FE0A07F0B7F6F5F85B2788FC3919F077C57F071B7D27E30FC1ED5EE31E24F01F890078659238A64B7B9D4FC2FA95C5BDCB685AEADB44B3AC53585FC363ACD8EA1A7DAFDFB5FC1D4D0FC52F839F14B41FDA73F663D7C783BE397839717966" $FileBin &= "723C39F14BC360C4751F05F8CF4F12C16FA95AEA76F0476E925C490B168AD196EEC6FEC747D6347FEB23FE09F9FF000503F85BFB7AFC2D93C47E1C8CF83BE2BF838DBE93F187E0F6AF718F12780FC4803C32C91C5325BDCEA7E17D4AE2DEE5B42D756DA259D629AC2FE1B1D66C750D3ED7F53E06E3959D28E4D9CCA9D1CF68D36E9554953A19C50A69396230D1F8618AA71D719845F0BBD7A09D0728D1FE09FA53FD1625E194AB7893E1B51C6665E146658C853C6E0AA4E78CCD7C38CD71936A964D9CD569D5C56438AAADD3E1DE22A8AD5D72E579A4A9E6B4E9D4CC7EFDA28A2BF4C3F88828A28A0028A28A0028A28A0028A28A0028A28A0028A28A00F913F6" $FileBin &= "F4FF009341F8EFFF006263FF00E9CF4EAFC38F83DFF24D3C21FF0060B1FF00A3E6AFDC7FDBD3FE4D07E3BFFD898FFF00A73D3ABF0E3E0F7FC934F087FD82C7FE8F9ABFCF9FA4F7FC9E4E1EFF00B36F3FFD697127FA37F450FF009331C4BFF67361FF00ACB618F4AA6BFDC6FF0075BF91A7535FEE37FBADFC8D7E292D9FA3FC8FDFA3BAF55F99F697FC11C7FE4DABC7DFF65D3C47FF00A80FC35AFD68AFC97FF8238FFC9B578FBFECBA788FFF00501F86B5FAD15FE80FD1AFFE4C4F863FF64CE1FF00F523127F9C1F4A1FF9482F15FF00ECACC5FF00E99C38514515FB81F828514514005145140051451400514514005145140051451400514514005145140051" $FileBin &= "4514005145140051451400514552D4750B1D274FBED5753BB82C34CD32CEE6FF0050BDBA9121B5B3B2B485EE2EAEAE6690848A0B78239259A472AA91A3331001A37D8A8C653946108CA739C946108A7294A526946318A4DCA526D24926DB6925721D6759D27C3DA4EA3AF6BDA8D968FA2E8F6573A8EA9AA6A373159D869F616713CF757979753BA4305BC10A3CB2CB2BAA2229662315F801FB4C7ED31E23FDB1BC4771E0BF05DC6A7E1CFD9A7C39A9EDBCBB513E9FAA7C58D534F9C325C5C2B08E6B7F0F41322C9A769D22831B2A6A5A947FDAC6CACF433F698FDA63C47FB63788EE3C17E0BB9D4FC39FB357873530B7976A27D3F54F8B1AA69F3864B8B85611" $FileBin &= "CD6FE1E82645974ED3A450D1958F52D4A3FED636567A1F1D616165A5D95B69DA75B436763670A416D6B0208E28628C61511578000E49392C4966258926B6F5FEBFAF3F4F8BFD19F03BC0FA3E19D1C2719718E129623C45C453862325C9B110855A3C0B46AC54A963B1F4A57854E2EA90929E1E8494A1C3B192A9513CE1C63969616165A5D95B69DA75B436763670A416D6B0208E28628C61511578000E49392C4966258926DD14549FBBCE73A9294E7294E739394E739394A5293BCA52936DCA4DB6DB6DB6DDDB0A28A282428A28A00E0B5FD03C45A6788B45F89DF0C75A9FC23F14FC233A5E689AE59B2C4BA82C4ACAFA56AA8CAD05DD9DDC0D259CB15DC735" $FileBin &= "ADC5ACD3595EC33594D2463F693F63FF00DB03C3BFB4AF876E746D62DA1F08FC65F08C090F8EBC0B33344CCD1325BBF88FC3A970ED35DE81793B209232F35D68B75347637D24F0CDA6EA5AA7E4C5705AFE81E22D33C45A2FC4EF863AD4FE11F8A7E119D2F344D72CD9625D41625657D2B55465682EECEEE0692CE58AEE39AD6E2D669ACAF619ACA6923149DF47F27DB6F34B656D74B68FA38FC7788FE1C641E2E6414B25CE6AD1CAF88B2BA338709716CE9B94B2E949B9AC933A74E32AD8AE1BC556936ECAA62326C45496370519D29E2F098AFE9D68AF8D3F63CFDADF45FDA67C2B7D63AAE9E3C29F173C1496D69F107C1B22CA91C73396862D7F42698BC93E" $FileBin &= "85A94D149B617925BBD26E49B1BB92E217D3F52D4FECBA4D58FF003078AB8573EE09E20CCF8638972FAB9667594D7F618BC2D57192F7A11AB431142B41CA9627098BA1529627078BA139D0C561AAD2AF4673A7523265145148F9E0A28A2800A28A2800A28AF86FF6F1FDBC7E137EC1FF00098F8DFC6E5FC4DE3CF134971A37C24F849A2DC27FC257F127C58563582C6C6048EE67B0D0AC67B9B493C45E2292D27B6D2ADA7820820D435AD4347D1F52E4C7E3F0796613118FC7E229E170785A6EAD7AF55DA14E0ACBA26E52949A8C211529D49CA3084653924FE8784F84F88F8E788F28E12E12CA3199EF1167B8CA780CAB2AC053F6988C5622A5DF571A7468D1" $FileBin &= "A719D7C562ABCE9E1B0986A7571389AB4A852A95227EDE3FB78FC26FD83FE131F1BF8DCBF89BC79E2692E346F849F09345B84FF84AFE24F8B0AC6B058D8C091DCCF61A158CF73692788BC4525A4F6DA55B4F041041A86B5A868FA3EA5FC94DDDE7C58F8F5F16359FDA83F6A1D663F137C64F1347E4F87FC3F0973E14F83FE13DD349A6F82FC17A6C935C4360B610DC4A9757492CF732DCCF7B73717DA86A9A86B1ABEAA5DDE7C58F8F5F16359FDA83F6A1D663F137C64F1347E4F87FC3F0973E14F83FE13DD349A6F82FC17A6C935C4360B610DC4A9757492CF732DCCF7B73717DA86A9A86B1ABEABE855FCD5C51C518CE2DC5C67523530B93616A73E5D974F4" $FileBin &= "9D59AD239866115A4B1325774283BC3070959735694E67FB69E05F817C39F47BE1CAD84C256C1E7BE25E7B83586E34E35C32F6987C161EA724EB707F07D79C554A39251A8A30CDF368C69E2788F134D36A96554B0B856514515F3E7EB615E65343F14BE0E7C52D07F69CFD98F5F1E0EF8E5E0E5C5E599C8F0E7C52F0D8311D47C17E33D3C4B05BEA56BA9DBC11DBA4971242C5A2B465BBB1BFB1D1F58D1FD368A89C1C9D39C2A54A35A8D4856C3E228CDD3AF87AF4E5CD4EB51A91F7A9D48495D496EAF192716D3E9C3E2234A38AC3E230B83CCB2DCCB0788CB737CA332C3C31995673956320E96372CCCF05553A58AC162A9370A94E6AF17CB5694A9D6A74EA" $FileBin &= "47FA7BFF00827E7FC140FE16FEDEBF0B64F11F87233E0EF8AFE0E36FA4FC61F83DABDC63C49E03F1200F0CB24714C96F73A9F85F52B8B7B96D0B5D5B6896758A6B0BF86C759B1D434FB5FBF6BF83A9A1F8A5F073E29683FB4E7ECC7AF8F077C72F072E2F2CCE47873E29786C188EA3E0BF19E9E2582DF52B5D4EDE08EDD24B892162D15A32DDD8DFD8E8FAC68FFD647FC13F3FE0A07F0B7F6F5F85B2788FC3919F077C57F071B7D27E30FC1ED5EE31E24F01F890078659238A64B7B9D4FC2FA95C5BDCB685AEADB44B3AC53585FC363ACD8EA1A7DAFEEFC0DC72B3A51C9B39953A39ED1A6DD2AA92A74338A14D272C461A3F0C3154E3AE3308BE177AF413A0E5" $FileBin &= "1A3FE51FD29FE8B12F0CA55BC49F0DA8E3332F0A332C6429E37055273C666BE1C66B8C9B54B26CE6AB4EAE2B21C5556E9F0EF115456AEB972BCD254F35A74EA663F7ED14515FA61FC441451450014514500145145001457CEBF1A3F6B0F807FB3D6ADA3687F17BC74FE13D53C41A7CDAAE936ABE16F18EBDF6AB082E0DA4B399BC35E1FD62DE02B700C7E55CCB0CCDF796329F3578C7FC3CCFF627FF00A2C92FFE1B8F8ADFFCC3D7C2E6BE28786B9166189CA73BF10382B27CD30728C31796E67C5192E031D859CE9C2AC2388C262B1B4ABD194E954A7522AA538B9539C66AF1699F7D93F853E28710E5D86CE320F0E38F33BCA71B19CB079A651C23C4198E5D" $FileBin &= "8B8D3AB3A152586C6E0F2FAD86AF1A75A9D4A53952AB251A94EA424D4A124BEF1A2BE0EFF8799FEC4FFF0045925FFC371F15BFF987A3FE1E67FB13FF00D16497FF000DC7C56FFE61EBCEFF0088CFE107FD1D3F0EFF00F133E1DFFE78F9FE7D99E9FF00C410F1A3FE8D1789DFF881F14FFF003ABCFF003ECCEDBF6F4FF9341F8EFF00F6263FFE9CF4EAFC38F83DFF0024D3C21FF60B1FFA3E6AFD06FDADBF6F7FD947E27FECE5F163C03E07F8A326B5E2CF137865B4FD134B3E06F88DA68BDBCFB7D94DE57DBB56F095869D6DFBB8A46F32EEF208BE5DBE6062A0FE7CFC1EFF009269E10FFB058FFD1F357F12F8FDC55C31C59E2DE4B8CE17E21C9388F0986F0F" $FileBin &= "6586C462B22CD7059B61E8621F10D7ABEC2B56C0D7AF4E9D6F673854F653929F24A32E5B34DFF75FD1CF8478AF83FC22CFB05C5BC31C41C2F8CC5788D0C56170BC439366392E2713865C354293C450A19961B0D56B5155212A6EAD38CA0AA465072E68B4BD2A9AFF0071BFDD6FE469D4D7FB8DFEEB7F235F99CB67E8FF0023F5D8EEBD57E67DA5FF000471FF00936AF1F7FD974F11FF00EA03F0D6BF5A2BF007FE09ADFB5FFECF1FB3F7C10F17783BE2DF8FDFC2BE23D53E2B6B5E26B1D3D7C27E36D784FA25DF847C11A5DBDEFDAFC37E1CD62CA3F32FB47D461FB3CD72974BF6712BC2B0CD04927E86FF00C3CCFF00627FFA2C92FF00E1B8F8ADFF00CC3D7F" $FileBin &= "627D1FBC53F0CB26F063C3BCAB37F10F8232ACCF03C3D4286372FCC78A724C1637095957AEDD2C4E17138EA75E8544A516E15611924D36AC7F117D237C24F1573BF1CBC4CCDB25F0D38FF37CAF1FC4F8AC460732CB383B8871F80C650952A0A35F0B8CC2E5D570F88A3269A8D4A552706D4AD2D1DBEF1A2BE0EFF8799FEC4FFF0045925FFC371F15BFF987A3FE1E67FB13FF00D16497FF000DC7C56FFE61EBF62FF88CFE107FD1D3F0EFFF00133E1DFF00E78F9FE7D99F8A7FC410F1A3FE8D1789DFF881F14FFF003ABCFF003ECCFBC68AF923E19FEDD1FB2DFC61F1C689F0E3E1DFC4C7F1078CBC467511A368EDE0AF883A48BC3A56937FAE5F83A86B9E15D3" $FileBin &= "74BB7F234BD36F6E47DAAF6112F93E443E64F245149F5BD7D7E41C4DC37C5783A998F0C67F937116028E22783AB8DC8F33C166B84A58BA74E9569E16A623035ABD28622146BD0AB3A329AA91A75A94DC546A45BF8CE22E15E27E11C6D3CB78AF8733DE18CC6B61618DA380E20CA31F93636AE0EAD4AD469E2E9E1731C3E1ABCF0D52B61EBD28578C1D2955A15A9C64E74E6A2514515EE1E08514514005145140051451400515F9D5FB72FC58F1CF86B5EF849F0DBE1CF8C354F076ADE269BC43E20F10EA7A332477B0E8DA4DB43069F13332EE6B7BA9DF546F2D658D5E7B08449B8ECC7C7DFF000967ED05FF004717F10BFEFA8FFF00926BF9538FBE95790703" $FileBin &= "F19E7DC194782B89F89313C39570585CC731CAF179061B031C6E332DC1E68F094BFB4B33C2D7A9530D86C7E1E38892A4A10ACE74AEDC256F42965F3AB4E151D58414D37152536EC9DAFA45EF676F45DCFDD6A2BF0A7FE12CFDA0BFE8E2FE217FDF51FF00F24D1FF0967ED05FF4717F10BFEFA8FF00F926BE47FE274F2AFF00A357C6DFF874E11F2FFA9DF9FE1EB6D3FB325FF3FE97FE0353FF0091F5FE9E9FBAD457E14FFC259FB417FD1C5FC42FFBEA3FFE49A3FE12CFDA0BFE8E2FE217FDF51FFF0024D1FF0013A7957FD1ABE36FFC3A708F97FD4EFCFF000F5B1FD992FF009FF4BFF01A9FFC8FAFF4F4FDD6A2BF0A7FE12CFDA0BFE8E2FE217FDF51FF00F2" $FileBin &= "4D63F883C7DFB4668DA26A9AB59FED05E3FBCB8D36CA6BE4B59248D1265B55334AA584B29CF948E40F2DF7300BB7935957FA6CE4B86A357115FC2CE388D1A14A75AACA398F09D494695283A95251A70CE9CE6E30526A114E52694629B7642CAE6DA4ABD2BBD17BB53776FEEFF5F3D3F7BA8AF38F83FE355F88DF0B7E1FF8E77A493789FC27A26AB7DB02AAC5AA4F6308D56DF6A0080DAEA4B776CE17E5568885E057A3D7F6765399E133ACAB2DCE70153DAE0736C060F32C15556FDE6171D87A78AC3CF46D7BD4AAC25A36B5DCF32517194A2F4716E2D7669D9FE21451457A020AF27F8F5FF243BE31FF00D92DF1FF00FEA2BAAD7AC5793FC7AFF921DF18FF00" $FileBin &= "EC96F8FF00FF00515D569C775EABF33DBE19FF00928F87FF00EC77957FEA7E1CFE747E0D0C7C31F087FD83E53F9DF5D9AF4EAF32F835FF0024C7C21FF60E97FF004BAEEBD3691FEC6F10FF00C8FF003BFF00B1B663FF00A975828A28A0F1C28A28A0028A28A0028A28A00F7EFF008275003F6B1F8E580067E15F86F3EFFF00134D23AD7EDD57E22FFC13AFFE4EC7E397FD92BF0DFF00E9D348AFDBAAA97D9FF0AFD4FE01FA577FC9DFC4FF00D923C09FFAC9E5414514549FCDA1451450014515E41F1FFE25EAFF00067E087C59F8B1A0F82B57F88DAD7C39F0078A7C65A5F81341137F6BF8B2FBC3FA45D6A56FA1D89B6B4BFB959AFE4B75877DB58DF5CA2333" $FileBin &= "41657532A412675AAC2851AB5EAB6A9D1A73AB51C6329B50A71739B508294E4D4536A318B93D926F43B72DCBF159B66380CAB030854C6E678DC2E5F83A752B51C3D3A98AC657A786C3C2788C454A587A10956A908CAB57AB4E8D28B73AB52108CA4BE7AFDBC7F6F1F84DFB07FC263E37F1B97F1378F3C4D25C68DF093E1268B709FF00095FC49F16158D60B1B18123B99EC342B19EE6D24F11788A4B49EDB4AB69E08208350D6B50D1F47D4BF929BBBCF8B1F1EBE2C6B3FB507ED43ACC7E26F8C9E268FC9F0FF87E12E7C29F07FC27BA6934DF05F82F4D926B886C16C21B8952EAE9259EE65B99EF6E6E2FB50D5350D6357D5795F0CFC43F17FED77E3ED5BF6C" $FileBin &= "2F8E3E32B1F883F13BC532DCE9BA0693A79997C2BF06BC3B6B34C2CFC07E14D16E9E46D1DF4F82E59A79650F7773F6C9B5292F352BCD5F52D7358F6CAFE61E26E2BC4F1862A15BDFA191E1E7ED32BC0392E6AF25A4731C7A8B7196226AEE850BCA9E0E12B272AF2A933FDCEF04FC03C93E8E191E2F2A8FB0CD7C53CDF0DF53E3AE2E8D392865B4A7CB3AFC1BC272AD0856C3E4D46A4630CDF35E4A58AE23C4D34DAA59552C2E199451457827EAA145145001451450015E65343F14BE0E7C52D07F69CFD98F5F1E0EF8E5E0E5C5E599C8F0E7C52F0D8311D47C17E33D3C4B05BEA56BA9DBC11DBA4971242C5A2B465BBB1BFB1D1F58D1FD368A89C1C9D39C2A54" $FileBin &= "A35A8D4856C3E228CDD3AF87AF4E5CD4EB51A91F7A9D48495D496EAF192716D3E9C3E2234A38AC3E230B83CCB2DCCB0788CB737CA332C3C31995673956320E96372CCCF05553A58AC162A9370A94E6AF17CB5694A9D6A74EA47FA7BFF827E7FC140FE16FEDEBF0B64F11F87233E0EF8AFE0E36FA4FC61F83DABDC63C49E03F1200F0CB24714C96F73A9F85F52B8B7B96D0B5D5B6896758A6B0BF86C759B1D434FB5FBF6BF811F1BF8BBC55FB2EF8DB48FDB03E08F8DED3E19FC5BF034905BDF0BAF31BC39F157439E4885DF80FC57A3C0C9FDB8BAB5BDBAC31A051314B686E0DCE9F71A5E99ADE89FDB87ECB1F18F5FF00DA0BF678F845F1A3C53F0F75AF857E" $FileBin &= "20F88DE0BD2FC4BAAF80F5F120D4741B9BC570515A686DAE24D3AFD234D57469EEED2D2F27D1EFAC26BBB3B5B9796DE2FDF38078CEAF10D3AF956671B67596D0A556BD7A54DC70D8FC2CE5ECE9E3128AE5C3622534E388C34B9573A7570FCD49CA347FC96FA5B7D1AB03E0FE2F2BE3DE08AEE7E18F1B6698DC0659956618A53CEB84F3FC3508E3B1DC395255A51AF9D6514B0F5635F29CF68C6ACD61650C0E73EC731A74EB661EFD451457E8E7F1785145140051451401F83FFF000547821B9FDA6BF67182E218E7824F0B6A09243346B245229F104C0ABC6E0A3A9F460457867FC233E1CFFA0068BFF82CB2FF00E31EC3F2AF78FF0082A0FF00C9D07ECDDFF6" $FileBin &= "2C5FFF00EA433579157F95FE25D1A357C65F16DD5A34AA35C4D96A4E74E13697FAAB90BB2724DDAE7FAD7E13D5AB4FC11F07A30AB5209F0BE6EED09CA2AEF8D789F5B45A57B24AFBE88C4FF8467C39FF00400D17FF0005965FFC63D87E547FC233E1CFFA0068BFF82CB2FF00E31EC3F2ADBA2BE5FEA984FF00A06C3FFE09A7FF00C89F67F58C47FCFF00ADFF008367FF00C9189FF08CF873FE801A2FFE0B2CBFF8C7B0FCAB5A0B782D614B7B6862B78225DB1C304691451AF5DA91A05455C9E8A00A968AB850A349B74A8D2A6DAB370A70836B7B37149B57D6C4CEAD5A8929D4A9349DD29CE5249F749B7661451456A66627FC233E1CFF00A0068BFF0082CB2F" $FileBin &= "FE31EC3F2A3FE119F0E7FD00345FFC16597FF18F61F956DD15CFF54C27FD0361FF00F04D3FFE44DBEB188FF9FF005BFF0006CFFF0092313FE119F0E7FD00345FFC16597FF18F61F951FF0008CF873FE801A2FF00E0B2CBFF008C7B0FCAB6E8A3EA984FFA06C3FF00E09A7FFC887D6311FF003FEB7FE0D9FF00F2466FECCF6165A7FF00C1453F67F86C2CED6CA16F0CF8D2468AD208ADE3690FC3FF008AAAD218E25442E55514B11B885504E1463FA4AAFE703F672FF948C7ECFBFF0062B78CFF00F500F8AD5FD1FD7F607D0F2318705F8811846318C7C53CE546314A314970CF095924AC92F248FE2AFA6B394B8EBC3994A4E527E11646DCA4DB6DBE2CE35DDB" $FileBin &= "D58514515FD707F1B05145140051451400514567EADA9D9E8BA5EA5AC6A128B7B0D26C2F352BE9C8C886D2C6DE4BAB9948EE23862773EC2B3AD569E1E955AF5A71A7468D39D5AB526D4634E9D38B9CE7293B2518C62E526DA4926D8D26DA4B76D25EACFC63F8FDE21FF84E7F6B1F8897EB279FA7FC39F0EE81E00D39FF00816E5E33ABEAA106D1892DB55BCD62D242724AE09386455E6EBCFBE1EDFDE788EDFC4BE3BD4D48D4FE20F8C7C49E2DBB2C4170DA96A73B18C901728938B868F8036C995014A8AF41AFF14679CD4E27CCB3FE2DADCDED38BB88B3CE258F3DF9A384CDB31AF88CB28B4F54B0D953C0E1A0A5AA8518A7ADCFA751508C29ADA9C230F9C5" $FileBin &= "24DFCE577E7B85145154014514500151CD0C7710CB6F32078678A486543D1E3954A3A1F665620FB1A928A528C651946494A324E328B574E2D59A6BAA69D9A03EDAFF008278789E4BEF82BABF812F262D7FF0C3C75E22F0D88A439906977F7035CB2B827AF952DF5FEAD0419E025A6D402354AFBDABF247F627F10FFC22DFB45FC45F05CB279563F11FC15A6F8A6C5189D92EB1E17BAFB2490C408C09A5B4D4359BC976F2C96C0B9C2C42BF5BABFD27FA2B710BCF7C14E16C255A8EA63384AA665C158A526DCA11E1BC755C1659CCDFBDFBDC8D6578857D796B2DD599E26610E4C5547D2A28D55FF6FC537FF937320A28A2BFA28E20AF27F8F5FF00243BE31FFD" $FileBin &= "92DF1FFF00EA2BAAD7AC5793FC7AFF00921DF18FFEC96F8FFF00F515D569C775EABF33DBE19FF928F87FFEC77957FEA7E1CFE74BE0D7FC931F087FD83A5FFD2EBBAF4DAF32F835FF0024C7C21FF60E97FF004BAEEBD3691FEC6F10FF00C8FF003BFF00B1B663FF00A975828A28A0F1C28A28A0028A28A0028A28A00F7EFF008275FF00C9D8FC72FF00B257E1BFFD3A6915FB755F88BFF04EBFF93B1F8E5FF64AFC37FF00A74D22BF6EAAA5F67FC2BF53F807E95DFF00277F13FF00648F027FEB2795051451527F368514514005040208201046083C820F50477068A2803F98DFF829E7FC130FC51F09BC51E29FDB63F626F0B35F5BDF35C6B9FB477ECE3A1C0C" $FileBin &= "967E2BB34696EF54F88DF0E74BB58DC5AF89AD43DCEA1AE685A7DB3C97B235CEAFA3DADC5D5C6B3A36BBF98BF0FF00E207863E267862C3C59E13BF5BDD36F576491B854BDD36F5154DCE99A9DB06736B7F6A5D44B1166492368AE6DA59ED27B7B897FBAC20104100823041E4107A823B835FCC6FFC14F3FE0987E28F84DE28F14FEDB1FB137859AFADEF9AE35CFDA3BF671D0E064B3F15D9A34B77AA7C46F873A5DAC6E2D7C4D6A1EE750D7342D3ED9E4BD91AE757D1ED6E2EAE359D1B5DFC3B8EB8167839E2388387F0F29E1E729D7CDF28A10BCA126DCAAE6397528AD65BCF198382FDE7BD88C3C7DAFB4A757FD4DFA2AFD2AB0DC5186CA3C21F17F37A586C" $FileBin &= "EB0D4B0F957877E21E6B8850A58AA5051A380E0CE33C7D69251A514A186E1BE24C4CEF827ECB29CDAABCBDE131580FCF9A2B8BF87FF103C31F133C3161E2CF09DFADEE9B7ABB248DC2A5EE9B7A8AA6E74CD4ED8339B5BFB52EA2588B32491B45736D2CF693DBDC4BDA57E5B09C2AC23529CA3384E2A50945DE328BD534D6E99FDD78AC2E270389AF83C650AB86C561AACE8D7A15A0E15695583E594271959A69AF46ACD369A614514559CE1451450015C878EFC77E19F871E1AD43C57E2BD412C34AB04C71B5EEAFAE9D58DBE9DA75B9656BBBFBB652B040A40C079A678ADE29A68CF1DF8EFC33F0E3C35A878AFC57A82586956098E36BDD5F5D3AB1B7D3B4EB" $FileBin &= "72CAD777F76CA5608148180F34CF15BC534D1FE8BFFC1327FE0993E27F8FFE27F0B7EDA5FB68F85A4D3BC1BA74906BBFB397ECE7AEC0CD6D1DB3325CE99F123E24E99731AADD4F74A96F7DA16837D6EA6FCADBEA9AA5BC3A5C3A5E97375E5996E619E6614F29CAA9C6A62EA4554AD5A6A4F0D97E19C94658BC5C959A8A775468C5AAB89A8BD9D3D14E70F0B8D38D3843C2DE10C67883E20E36A61387F0756784CB32CC24E9ACF38C33C8D35568F0EF0F51AB753AD38B8D4CCB33A91960B24C149E2F16E53961B0D893FE0993FF0004C9F13FC7FF0013F85BF6D2FDB47C2D269DE0DD3A4835DFD9CBF673D76066B68ED9992E74CF891F1274CB98D56EA7BA54B7" $FileBin &= "BED0B41BEB7537E56DF54D52DE1D2E1D2F4B9BFA8F550A02A80AAA00000C0007000038000A154280AA02AA8000030001C0000E000296BFA5386F86F2FE18CBE382C12752AD46AAE371B5545E271D8971519D7AD2495969CB468C6D4A853B53A6924DBFF137C6CF1B38BFC73E2FA9C4FC4F529E130383A52CBF85F85F013A8B23E13C8E351CE8E5795D1A8DB94E4DAAD98E635B9B1B9B636553198CA929CA10A6514515F427E3C14514500145145007E0FF00FC151E786DBF69AFD9C67B89A38208FC2DA83C934D22C7146A3C41312CF239088A3D58815E19FF000937873FE83FA2FF00E0CECBFF008FFB8FCEBF727E347EC9FF0000FF00685D5B46D73E2F7815" $FileBin &= "FC59AA787F4F9B4AD26E97C53E31D07ECB613DC1BB96030F86BC41A3DBCE5AE0993CDB98A6997EEAC813E5AF18FF0087667EC4FF00F446E5FF00C38FF15BFF009B8AFE1BE3CFA3CF8A19DF887C6DC53C3F89E069E55C4F9AE1331C2D3CDF39CF7078FA11C3E4D96E5B3A75E8E0F86B30C3A6EA60AA4E2E9E2AA274E51BDA5789FDEBE1D7D24BC2AE1EF0DB81B84B88B09E2053CE385B2AC7E5B8CA993645C3B9865B88962B3FCDB37A7570D5F1BC5D95E25A54B318539C6AE0E9B5529CD479A3CB297E4EFF00C24DE1CFFA0FE8BFF833B2FF00E3FEE3F3A3FE126F0E7FD07F45FF00C19D97FF001FF71F9D7EB17FC3B33F627FFA2372FF00E1C7F8ADFF00CDC5" $FileBin &= "1FF0ECCFD89FFE88DCBFF871FE2B7FF3715F31FF0012D9E34FFCFCF0CFFF00124E26FF00E837FAB3F2BFD77FC4D2781FFF003E7C54FF00C45384FF00FA3FFEACFCAFF93BFF000937873FE83FA2FF00E0CECBFF008FFB8FCEB5A0B882EA14B8B69A2B88255DD1CD04892C522F4DC92216465C8EAA48AFB07F6B6FD823F651F861FB397C58F1F781FE1749A2F8B3C33E196D4344D50F8E7E236A42CAF3EDF650F9BF61D5BC5B7FA75CFEEE5917CBBBB39E2F9B779658291F9F3F07BFE49A7843FEC163FF0047CD5F96715F0BF16F0071561B8538B69F0FCB158DC81E7F86C470FE659863E82A0B1F2CBFD8D7FED0CA72AA90ABED29CE7EE53A90E5E5F7EEDA5FAD" $FileBin &= "F06F18F07F88DC2B8BE2BE0FA9C491C260388170FE2F0DC499565996E23EB12CBA398AAD87FECCCF73BA7528FB39C69BF69528CD4F9AD0714A52F4AA28A6BFDC6FF75BF91AF31BB26FB2B9EDA5769777631BFE126F0E7FD07F45FF00C19D97FF001FF71F9D1FF0937873FE83FA2FFE0CECBFF8FF00B8FCEBD57FE09ADFB207ECF1FB40FC10F1778C7E2DF801FC55E23D2FE2B6B5E19B1D417C59E36D0441A25A7847C11AA5BD97D93C37E23D1ECA4F2EFB58D466FB44D6CF74DF68113CCD0C30471FE86FFC3B33F627FF00A2372FFE1C7F8ADFFCDC57DE7047837E2BF1EF09E45C6394478030D9671060619860A8663C41C414B1B4E8CE73828E269E1B857154" $FileBin &= "2152F09371A588AD1B5AD36F43F37E3DF1C7C22F0F38C78878273A9788B8ACD386F31A996E3B119670CF0DD6C055AF4A309CA785A98AE36C1E22746D5172CAAE168CDB52BD35A5FF00277FE126F0E7FD07F45FFC19D97FF1FF0071F9D1FF000937873FE83FA2FF00E0CECBFF008FFB8FCEBF58BFE1D99FB13FFD11B97FF0E3FC56FF00E6E28FF87667EC4FFF00446E5FFC38FF0015BFF9B8AFAAFF00896CF1A7FE7E7867FF008927137FF41BFD59F95FE47FE2693C0FFF009F3E2A7FE229C27FFD1FFF00567E57FCA6FD99EFECB50FF828A7ECFF003585E5ADEC2BE19F1A46D2DA4F15C46B20F87FF1559A33244CE81C2B231527700CA48C30CFF4955F247C33" $FileBin &= "FD85FF0065BF83DE38D13E23FC3BF866FE1FF197870EA2746D61BC6BF10756166755D26FF43BF274FD73C55A969771E7E97A95EDB0FB5594C22F3BCF87CB9E38A58FEB7AFE93FA3EF869C4BE1870C711E57C5588C92BE639E71963F88E9AC87178EC660E8E17179464797C28CEB63F2ECB2B3AF1AD96579CA31C3CA9AA73A4D55949CA31FE5FFA46F8A5C2FE2BF15F0C66DC2586CFB0F96641C0F9770BD57C4583CBF038EAF8CC1E75C4199D4AF4F0F96E6B9C508E19D1CDE85383962D557529D54E9460A1399451457EF07F3E0514514005145140057CA9FB6BF8D1BC13FB367C47B882429A878934FB6F0569F1A921E793C57770E93A84519C361D7449B54B" $FileBin &= "818009F2485218861F55D7E63FFC1427C43FDA9AEFC0CF8590BF991DEF88B53F1FEB76FD96D7C396A2CF4A32FCBCC7742F75D887CC007800C17642BF89FD23389AA70AF82DC7D8FC3D5F658FC7E4EF86F2B9C5DAA4733E2AC450E1DC1D4A4B773C3D5CC962968D28D094E4B92326BAB054D54C4D24F58C65ED25FE1A6B9DFDF6B79DEDD4F93BC3BA5AE89A0E8FA4A803FB3F4DB3B572BD1A68A0459E4E3009926F32462382CC48E0D6CD1457F96B87A14F0B87A186A51E5A587A34A8D38ADA30A508D3825E918A47BEDDDB6FABBFDE1451456C20A28A2800A28A28033742F10FFC201F1C3E067C42F30C16D63E3687C2BACCF9C2268FE2F85F46BB9AE3B186CE" $FileBin &= "D2EAFEE3E6E03ED65064095FBC5D6BF9F1F89DA63EA9E08D7121DC2E6C604D5AD9D0B0923974B952F1DA32BF3090C114D1A95F9817F97E6C57EE37C1EF1A2FC45F857F0FBC6E245925F12F84743D4EF76E311EA735842355B7217E5DD6BA92DDDB385E03C4C06457F5CFD0D33FFAB679E25706549DA18B8E45C6F97536FE2A95A8CF8773B708F4F67FD99914E6E29DE58A4E567BF9D99C2F0A157B39D27F2B4E3FFA54BEEF43D228A28AFEF73C80AE7FC57E1CB1F18785FC47E12D4DE74D37C4FA16ADE1ED424B5758AE92CB58B0B8D3AE9EDE47491239D60B890C4ED1BAAC8158A381B4F41451B1AD1AD570F5A9622854952AD42AD3AD46AC1DA74EAD29A9D3" $FileBin &= "A917D2509C54A2FA348FE673C6FF000E7C6DFB22F8E6DFE11FC4CC5EF81F549AE5FE16FC4B86D8DB693ACE9E67321D335420B45A7EAD68F3A25F59CD2B49653CA92096EB49BAB1BF3D5F5E95FBCBF193E0DF80BE3BF80B58F877F113478F55D0B558F7C3326C8B53D1B53891C596B7A25E9491EC355B07919ADEE155E3911E6B4BB86E6C6E6EAD67FE7D7C7DE01F1EFEC9FE3D83E157C559E4D57C19AAC92FFC2AEF8A3E53C7A6EB7A6C6EAB1E95AB48CD22586AB60924305DD9CD33C96123C4CB2DCE9173617E6AC9ABADFAAFC3F1E9F73D6CE5FE9D783FE31607C63C0BC0E62F0F80F13B01879D6CCB2FA71851C371961A8439B119EE49463CB0A79BD38465" $FileBin &= "5F3CC968AB4D2A99A6590FABFD6B0B82E968A3AF4A2A4FD4428A28A0028A28A002B8DF1B78DB4CF04E989777692DEEA57B28B4D1344B4064D4358D4242A90DADAC28AF215323C6259446E230EAAAB24D2430CA78DBC6DA678274C4BBBB496F752BD945A689A25A0326A1AC6A1215486D6D6145790A991E312CA23711875555926921865FD12FD8A3F628D4F44D4EC7F686FDA1AC62BDF8A17B14777E08F045D46B269DF0CF4E914C96B71716B219233E2B31BEE8E36DE7412EF248F26BB24D358525D5EDFD7A5FF5F249B5E1F1871870DF86FC373E2DE2D9CA7879CAAE1F20C830F5634B33E2BCCE9453783C1B6A52C365B8694A9CB38CE254E547034651A546" $FileBin &= "35F1F5F0D86A9D67FC13FF00F660F1D7C2F5F147C6EF8B93369FF11BE29695A7D8C5E0C86358A1F07F85EDA54BCB2B3D4FEF3BEB97063B53716BBC9D2E1816DEE649B509EF56DBF4B28A293777FD7F5ABD5FE092D0FF002F38F78E33AF1178AB34E2DCFDE1E38FCCA54210C360A8AC3E072FC0E0F0F4F079765B82A29C9C30B80C150A386A2EA4EA57A91A7ED71156B57A952ACCA28A291F1C14514500145145001410082080411820F2083D411DC1A28A00FE637FE0A79FF04C3F147C26F1478A7F6D8FD89BC2CD7D6F7CD71AE7ED1DFB38E8703259F8AECD1A5BBD53E237C39D2ED63716BE26B50F73A86B9A169F6CF25EC8D73ABE8F6B717571ACE8DAEFE6" $FileBin &= "2FC3FF00881E18F899E18B0F16784EFD6F74DBD5D9246E152F74DBD455373A66A76C19CDADFDA97512C4599248DA2B9B6967B49EDEE25FEEB08041040208C1079041EA08EE0D7F31BFF053CFF8261F8A3E1378A3C53FB6C7EC4DE166BEB7BE6B8D73F68EFD9C7438192CFC57668D2DDEA9F11BE1CE976B1B8B5F135A87B9D435CD0B4FB6792F646B9D5F47B5B8BAB8D6746D77F0EE3AE059E0E788E20E1FC3CA7879CA75F37CA2842F2849B72AB98E5D4A2B596F3C660E0BF79EF6230F1F6BED29D5FF00537E8ABF4AAC371461B28F087C5FCDE961B3AC352C3E55E1DF8879AE2142962A941468E038338CF1F5A49469452861B86F893133BE09FB2CA736AAF2" $FileBin &= "F784C5603F3E68AE2FE1FF00C40F0C7C4CF0C5878B3C277EB7BA6DEAEC92370A97BA6DEA2A9B9D3353B60CE6D6FED4BA89622CC9246D15CDB4B3DA4F6F712F695F96C270AB08D4A728CE138A94251778CA2F54D35BA67F75E2B0B89C0E26BE0F1942AE1B1586AB3A35E85683855A5560F96509C65669A6BD1AB34DA6985721E3BF1DF867E1C786B50F15F8AF504B0D2AC131C6D7BABEBA75636FA769D6E595AEEFEED94AC10290301E699E2B78A69A33C77E3BF0CFC38F0D6A1E2BF15EA0961A5582638DAF757D74EAC6DF4ED3ADCB2B5DDFDDB295820520603CD33C56F14D347FA2FF00F04C9FF8264F89FE3FF89FC2DFB697EDA3E16934EF06E9D241AEFECE" $FileBin &= "5FB39EBB0335B476CCC973A67C48F893A65CC6AB753DD2A5BDF685A0DF5BA9BF2B6FAA6A96F0E970E97A5CDDD9665B986799853CA72AA71A98BA91552B569A93C365F867251962F172566A29DD51A316AAE26A2F674F4539C3E6B8D38D3843C2DE10C67883E20E36A61387F0756784CB32CC24E9ACF38C33C8D35568F0EF0F51AB753AD38B8D4CCB33A91960B24C149E2F16E53961B0D893FE0993FF0004C9F13FC7FF0013F85BF6D2FDB47C2D269DE0DD3A4835DFD9CBF673D76066B68ED9992E74CF891F1274CB98D56EA7BA54B7BED0B41BEB7537E56DF54D52DE1D2E1D2F4B9BFA8F550A02A80AAA00000C0007000038000A154280AA02AA8000030001C0" $FileBin &= "000E000296BFA5386F86F2FE18CBE382C12752AD46AAE371B5545E271D8971519D7AD2495969CB468C6D4A853B53A6924DBFF137C6CF1B38BFC73E2FA9C4FC4F529E130383A52CBF85F85F013A8B23E13C8E351CE8E5795D1A8DB94E4DAAD98E635B9B1B9B636553198CA929CA10A6514515F427E3C14514500145145001451450014514500145145007C89FB7A7FC9A0FC77FFB131FFF004E7A757E1C7C1EFF009269E10FFB058FFD1F357EE3FEDE9FF2683F1DFF00EC4C7FFD39E9D5F871F07BFE49A7843FEC163FF47CD5FE7CFD27BFE4F270F7FD9B79FF00EB4B893FD1BFA287FC998E25FF00B39B0FFD65B0C7A5535FEE37FBADFC8D3A9AFF0071BFDD6F" $FileBin &= "E46BF1496CFD1FE47EFD1DD7AAFCCFB4BFE08E3FF26D5E3EFF00B2E9E23FFD407E1AD7EB457E4BFF00C11C7FE4DABC7DFF0065D3C47FFA80FC35AFD68AFF00407E8D7FF2627C31FF00B2670FFF00A91893FCE0FA50FF00CA4178AFFF0065662FFF004CE1C28A28AFDC0FC1428A28A0028A28A0028A28A0028A28A002BF14FE3F7887FE139FDAC7E225FAC9E7E9FF000E7C3BA078034E7FE05B978CEAFAA841B4624B6D56F358B4909C92B824E19157F67356D4ECF45D2F52D6350945BD86936179A95F4E4644369636F25D5CCA47711C313B9F615FCFF7C3DBFBCF11DBF897C77A9A91A9FC41F18F893C5B765882E1B52D4E76319202E5127170D1F006D932A0" $FileBin &= "29515FC43F4CFCFAF83F0E382E9CFDECD33ECCB8AF1F4E2F5780E17C02C261A1556B6854CDF3EC0D7A7749CAA605F2B6A13B7AB96435AD55F48AA71F59BBBFFC962D7CF5DCF41A28A2BF8B4F4C28A28A0028A28A0028A28A008E6863B8865B79903C33C52432A1E8F1CAA51D0FB32B107D8D7DBDFF0004F0F13C97DF05757F025E4C5AFF00E1878EBC45E1B11487320D2EFEE06B965704F5F2A5BEBFD5A0833C04B4DA8046A95F12D7B17EC4FE21FF00845BF68BF88BE0B964F2AC7E23F82B4DF14D8A313B25D63C2F75F6492188118134B69A86B3792EDE592D8173858857E9BE05E7FF00EAC78DBC038D9CFD9E173F9671C118F95EC9D3CF704B1D96A9F46A" $FileBin &= "59EE4B95D085F69625B8EADA7862E1ED30B5975828D55FF6E4AD2FFC964FEE3F5BA8A28AFF0058CF9E0A28A2800AF2CF8C9F06FC05F1DFC05AC7C3BF889A3C7AAE85AAC7BE1993645A9E8DA9C48E2CB5BD12F4A48F61AAD83C8CD6F70AAF1C88F35A5DC3736373756B3FA9D14D369DD7F5FE69F55B33B72DCC71F93E3F079AE558CC4E5D9965D89A38CC0E3B075A787C56131587A91AB431187AD4DC6A52AB4AA463384E324D347F345E3EF00F8F7F64FF001EC1F0ABE2ACF26ABE0CD56497FE1577C51F29E3D375BD3637558F4AD5A466912C355B0492182EECE699E4B091E26596E748B9B0BF3D2F5E95FBCBF193E0DF80BE3BF80F57F877F117478F55D0B5" $FileBin &= "58F7C5326C8B53D1B52895C596B7A25EB248D61AAD8348CD6F70AAF1C88F2DA5DC3736373756B3FE6F47FF0004A4B5B78D2DECFF0069AF8B16F6B0A2C56D6E2D6C888208C04861056FD1088E35541B5114051B554600AB465AF328BEB7BEFA764FD7577E8F6727FE83705FD26B80F88F22C3D7F11330ABC2DC618671C3E6988C0E478CCC328E22B463C99D61A8E574E6F2AC7D6B496698074A3839E22D8BC04A9D3AF3C1E17E3BA2BEC7FF0087552FFD1D07C59FFC04B4FF00E58D1FF0EAA5FF00A3A0F8B3FF0080969FFCB1A3963FCF1FBA5E5E5E7F87ADBEB3FE23C781FF00F45F623FF111E24F2FFA84F37F7799F1C571BE36F1B699E09D312EEED25BDD4A" $FileBin &= "F65169A2689680C9A86B1A8485521B5B58515E42A6478C4B288DC461D555649A486197EF9FF87552FF00D1D07C59FF00C04B4FFE58D7B4FC03FF0082787C38F837E3E83E26F897C61E27F8BDE2ED220487C2973E358AD4D8F85E5DECEDA8D8D9235C79BAAA17616575713B269E5E49ED2DD2F4C77511CB15AF327DD2BDFA774AFBED75EAB5B72E37E90FE0A65783C566187E22CCF8971585A152AE1320C1E419B6575735C524961F095333CC2853C36030D52AB5F5BC53556B52C346ACB0F42B57F674E5E5FF00B147EC51A9E89A9D8FED0DFB4358C57BF142F628EEFC11E08BA8D64D3BE19E9D22992D6E2E2D6432467C56637DD1C6DBCE825DE491E4D7649A" $FileBin &= "6B0FD58A28A96EFE9D17F5D5DB5FB9592497F017885E217127899C4989E25E25C4C675E718E1B2FCBF0D1952CB325CB294A4F0B94E5385729470D82C3464ECAF2AD88AD2AB8AC555AF8BAF5AB5428A28A47C38514514005145140051451400514514005040208201046083C820F50477068A2803F98DFF00829E7FC130FC51F09BC51E29FDB63F626F0B35F5BDF35C6B9FB477ECE3A1C0C967E2BB34696EF54F88DF0E74BB58DC5AF89AD43DCEA1AE685A7DB3C97B235CEAFA3DADC5D5C6B3A36BBF92B17C7AF8652FC333F15FFB7E24F0C247B2589827F6BC5AB84DC7C38DA7090B9D7B7908B661CC6F115BF49CE98CB7A7FBDC20104100823041E4107A823B" $FileBin &= "835F933A87FC1187F62CD4BF6B94FDACE7F0A6A02E9B501E2CBEF8308FA68F835A97C4B49DA68FE21DDF85CE9E656D48CAEF7D73A2A5E27872F359C6AD71A5B4F2DF25EFE35C55E1AE2711982C7F0BCB09858E3EBFFC2960B132953C2E1AAD495EA669838D38B69B6DCF13818A842BD4B55A52A55255554FF4ABC03FA6CE4994708CF853C76A3C439ED6E11CAEFC15C4F9242962B3DCEF0581A4A184E05E23AD8AAB08FB38C5428647C5155E22BE55848CF038FA18DC2D3C0BC2FE6AFF00C1327FE0993E27F8FF00E27F0B7EDA5FB68F85A4D3BC1BA74906BBFB397ECE7AEC0CD6D1DB3325CE99F123E24E99731AADD4F74A96F7DA16837D6EA6FCADBEA9AA5B" $FileBin &= "C3A5C3A5E9737F51EAA1405501554000018000E00007000142A8501540555000006000380001C00052D7E89C37C3797F0C65F1C16093A956A35571B8DAAA2F138EC4B8A8CEBD6924ACB4E5A34636A5429DA9D34926DFF1B78D9E36717F8E7C5F5389F89EA53C2607074A597F0BF0BE02751647C2791C6A39D1CAF2BA351B729C9B55B31CC6B7363736C6CAA63319525394214CA28A2BE84FC7828A28A0028A28A0028A28A0028A28A0028A28A0028A28A00F913F6F4FF9341F8EFF00F6263FFE9CF4EAFC38F83DFF0024D3C21FF60B1FFA3E6AFE837F699F865AFF00C65F811F12BE18F85AEF48B1F1078C7C3EDA569775AF5C5E5AE910DC9BCB4B80F7F71616" $FileBin &= "1A9DE450EC81C6EB7B0B97DC5479641247E3DE83FF0004E4FDB6FC39A458687A678FFF0067C4B0D3A1F22D965D63C6B2C8B1862F8791BE1AEE73966E4F638EC2BF86FE921C19C6D9CF89B9167BC3DC1F9F711E594782259557C4E4D87C3D78D0C73CF3138BF615556C4E1DC5FB0719DD732B4E27F7A7D18B8E781722F0C788B21E25E33E1FE19CD2B71DC337C3E1B3AC462B0F2C4603FB030F8375E8BA184C4A925888CA9B5271778BEDAF014D7FB8DFEEB7F235EB1FF0EFFF00DBA7FE8A0FECF1FF00833F19FF00F3B5FF00393ED80FFC13FBF6E9208FF8583FB3C608C7FC84FC69F8FF00CD35FF000EA7DB1F893E06F139A6BFE21671D6A9FF00CCBF01FF00" $FileBin &= "CF33F7C5E2278549A7FF00115F80B46BFE66398FFF003A8F7AFF008238FF00C9B578FBFECBA788FF00F501F86B5FAD15F0E7EC09FB34F8F3F659F843E27F00FC42D53C29AB6B3AD7C48D57C616B73E0FBFD5B51D3534CBEF0C7847458A1B89B59D0F40BA4BE5BAD02F249228ECE5805BC96CEB72F23CB143F71D7F7B780F91E6DC37E0FF0087F9167B80AF95E7196641470D9865F8951588C262235ABCA54AAA84A715351945BE59496BB9FE797D20B3FC9F8A3C69F11B88387F30A19AE4B9B71262717976638573787C5E1A74A8C635A939C61370938C92E6845E9B0514515FAD9F8E051451400514514005145140051451401F2A7EDAFE346F04FECD9F11EE" $FileBin &= "2090A6A1E24D3EDBC15A7C6A4879E4F15DDC3A4EA114670D875D126D52E060027C9214862187E60F8774B5D1341D1F495007F67E9B676AE57A34D1408B3C9C601324DE648C47059891C1AFD6BFDA27E01E97FB43784347F096ABE26D67C2F1E8BE25B4F145ADEE8F1DB4EF25E59D86A5A7C51DC4172B87448F529A589E396278A7546CB2EE43F2AFFC3BB22FFA381F899FF7E6D3FF0092EBF827E90FE1578BDC71E29ACFF86B84A9679C3980E13CAB24CA6BC788724CBA50C43C7661986713A986CC71742BC675AAE2305479A3174E74B054E49DDCADEBE0ABE1A961F92757926EA4A524E137A5A318D9C53564AEFCB53E57A2BEA8FF008775C5FF004703F133" $FileBin &= "FEFCDA7FF25D1FF0EEB8BFE8E07E267FDF9B4FFE4BAFC63FE20178F3FF0046DE3FF897F0A797FD4C7CFF000F5B757D6F09FF00410BFF0005D5F2FEE79FE0FB1F2BD15F547FC3BAE2FF00A381F899FF007E6D3FF92E8FF8775C5FF4703F133FEFCDA7FF0025D1FF00100BC79FFA36F1FF00C4BF853CBFEA63E7F87AD8FADE13FE8217FE0BABE5FDCF3FC1F63E57A2BEA8FF008775C5FF004703F133FEFCDA7FF25D1FF0EEB8BFE8E07E267FDF9B4FFE4BA3FE20178F3FF46DE3FF00897F0A797FD4C7CFF0F5B1F5BC27FD042FFC1757CBFB9E7F83EC7CAF457D51FF000EEB8BFE8E07E267FDF9B4FF00E4BA3FE1DD717FD1C0FC4CFF00BF369FFC9747FC402F1E" $FileBin &= "7FE8DBC7FF0012FE14F2FF00A98F9FE1EB63EB784FFA085FF82EAF97F73CFF0007D8F95EB3742F10FF00C201F1C3E067C42F30C16D63E3687C2BACCF9C2268FE2F85F46BB9AE3B186CED2EAFEE3E6E03ED65064095F5D7FC3BAE2FFA381F899FF7E6D3FF0092EAB5DFFC137349D49238354F8E7F11750B449E1B836F35B58301242DB92489A5B899229D39314C63731390C15802A63FE2027D20A96232DC6E07C3CA587C7E539C64D9DE0311538BF85F928E3B26CD30799E1A73F67984AA287B5C2C633E48CA4E0E4945DDC43EB783B493AF7528CA2D2A756ED4A366BE15FCDDF74FB1FA63D68A6449E5471C7BDE4F2D1137C84191F6285DEE4000BB632C4000" $FileBin &= "B12401D29F5FEAF45C9C62E4B964E29CA29DD464D2BABF5B3BABF53E7828A28AA00A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A439C7CA403C724161D79E0153C8C81CF079E7182B450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450" $FileBin &= "01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014515CEF8ABC5DE16F02E857DE27F19F88F45F0A78774C8BCDD435BF106A567A4E97689D17CEBDBE9618119DB09147BFCC9642B1C6AEECAA6E9D3A95670A54A13A956A4A30A74E9C6539CE72694610845394A526D28C629B6DA49364CE70A70954A938D3A708B94E73928C2114AEE52949A518A5AB6DA496E745457E61F8DBFE0AAFF00" $FileBin &= "0074BBEBAD27E18F863E267C6ABFB590C4D7BE0EF0D49A7F86C48A42C8B26A9AECB65A96C049F2E7B7D06EAD2655F363B8684C723F9BC5FF00055BD563977EA1FB277C4886C32099EC7C51A7EA57DB31F3B0D34787ED7E71C6D8FED5F3F27729E2BEEB0FE1871E6268AAD0E1CC5D18CA2A718636BE0B2FC44A2ECD5B0B8EC561B13769A697B2BBE8B63E4AB71EF0950A8E94B39A15651972B961A8E2B17493EABDBE16856A3A757ED2CBAB3F6128AF813E147FC14A3F660F89DAA5BF87353F10EB3F097C5570E9145A0FC5AD293C2CB2CCC76EC8F5E8AEF51F0CC45E4DB1DB45A86B1617774CEAB0DAB49BE34FBE239239A3496191258A5459239636578E48DC" $FileBin &= "0647475255D1D486565255948209041AF98CDF22CE721AEB0D9CE598DCB6B49395386330F528AAB056BCE85492F675E9EA97B4A339C2FA731EF65D9BE599BD275F2CC7E171D4A2D29BC3D58D474E4F68D5827CF4A5FDDA918CBC87D14515E49E88514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514578D7C6FF008F7F0D7F676F0CE89E34F8B1AD1F0DF8475AF19787FC112788A5883E97A26A5E2692E20D32FB5E9BCC56B0D105D40B6F7DA988E5874E59D2" $FileBin &= "EEF441A7C377796D152A53A34E756ACE34E9538B94EA4E4A308456AE5293B28C52D5B6D24B56EC736331B84CBB0B5F1D8FC4D0C1E0F0D4DD5C4E2B13521470F42947E2AB5AACDC614E9C7794E72518ABB9349367B2D1505B5CDBDE5BC177693C3756B750C7716D736F224D6F7104C8248678668CB472C3246CAF1C88C51D1832B1041A9EAD34D5D3BA7AA6B66BB9D09A6934D34D269A774D3D534D68D35AA6B70A28A2818514514005145140051451400514514005145721E3EF1CF86BE19F82BC51F103C617E9A67867C21A35F6BBACDE361992CEC61695A2B788B29B8BCBA7096B636887CEBCBC9A0B5855A59914E94A955AF569D0A34E756B56A90A54A953" $FileBin &= "8B9D4A956A49429D384629CA539CDA8C62937293492BB22A54A7469D4AB5671A74A942552A549B51842108B94E7293B28C6314DB6F4493678B7ED45FB51780FF0065BF017FC255E2A12EB3E23D665974DF02F8174D942EB7E30D702A05B6B602399ACF4CB469A09357D59E0962B18A58A1861BCD4AEF4FD3EF3F05FC6FAA7C51FDA4FC491FC40FDA2B5C975148E66B9F0AFC2CD2E6B8B3F04F82ED65198E15D39276173A918CAC779757135CDEDCAA2C7A96A17D1AC56B689A978CFC55FB47FC4ED63F68AF88F149149A9B4961F0BFC2734A67B2F04F826DE59469B1DBAB2AA35FDD2492DCCF7AB143F6CBABABDD556345D42DE2B4EC6BFAC784384309C11848" $FileBin &= "5E14AB71456A69E65995A3525974A715CD966573D551F629BA78CC6D26AB622B7B4853A91C3463197F3B7127126278A71327CD528E454A7FEC381BCA0B1918BF771D8F8E8EABAB653C3E1AA2F67469F24A70759B71AD676567A7DB4567616B6D6369028482D6D208ADADA141FC31410A2471A8F44503DAACD1457D24A5293729372937772936DB6F76DBD5BF3678492492492495924AC92EC92D12307C41E17F0F78AAC9AC3C43A4596AB6C43041730833405860C96B72BB6E6D25C71E6DB4B1498E3760915D97C0CFDA53E2B7EC67A8D9DA5C5EEB7F147F66F79E28B56F095FDC7DB7C4FF000DECE4902BEA5E0EBBB8745FB05A86F39F469248747B90258E58" $FileBin &= "F49BB9E4D75F2E992471CB1BC52A24B14A8D1C91C8AAF1C91BA9574746055D1D495656055949041069626961331C154CAF36C2D3CCB2BAFA55C1D7BB5095ACABE12AAFDE60F174F7A788A1284D3F767CF4DCA12AA1531182C553C7E5D5E782C7D1D69E2695AF249A6E96221F06270F3B253A3554A2D6B1E595A4BFA25F01F8EFC27F137C21A078F3C0DADD9F887C29E26D3E2D4B47D5AC64DF0DC412164923910812DADE59CE9359DFD8DC24577617D05CD95DC30DCC12C69D757F3D9FB1B7C70B9FD95BE33D97C32D7EFA45F803F1AB5A8EDB48FB54A5AD3E1DFC47BC31C1672C72C8C52D346D71841A7EA1E6148922363A8C92C69A26A32DE7F4275FCB5C71" $FileBin &= "C235B84337FAAC6A4B15966369FD7328C74A294B1184949C5D3ACA294618CC2544E862E9AB255231AB08AA55A937FD01C29C474F88F2DF6F2846863F0B3586CCB0B16DAA388515255295DB94B0D888355B0F2777CB274E4FDA539A4514515F187D3851451400514514005145140051451400515C978B3C7FE05F01592EA5E3AF1A784FC17A73B2A25FF8B3C45A47876CD9DDD62555BAD62F2CE02CF23AC6A0392CECAA32CC0565783BE2DFC29F888CE9F0FF00E26FC3EF1CBC409917C1FE33F0E7899E31B04A4BAE8BA95EB20F2CAC84B003610FF74835B2C3D774DD5542B3A4B7AAA9CDD35BEF351E55B3EBD1F621D482972B9C14BF95C9737DD7BFE07A1514" $FileBin &= "5158961451450014515C078CBE2C7C2CF875E5FF00C2C0F895E00F02F9C3317FC263E31F0EF867CD1B1E5CC7FDB5A8D96F1E5A3C9F2E7E4477FBAAC45D3A752AC9429539D49BDA14E129C9FA4629B7BAE9D4529462AF2928AEF2692FBDD91DFD15C8F84BE20780FC7D68F7FE04F1B7847C69611B32C97BE13F1268DE23B4464731B2B5CE8F7B790AB2C80A3067055C1420302075D4A709D3938CE128496F19C5C64BD5349AFB81352574D34F669A6BEF414514548C28A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002BF1DFFE0B9512CDFB0BDF42F9D92FC5AF86913E0E0ED9" $FileBin &= "350BE46C7A1C138F435FB115F8F7FF0005C4FF00931DB9FF00B2BDF0C7FF004E57B5E1F136BC3D9D7FD8B719FF00A6667E61E3524FC25F1113D53E12CE535DD3C2544D7CD687C1FF00B07FEDE1E22FD8EFC45A07ECDFFB486BF79AE7ECE7AE5E47A57C20F8BFAAC8F3DC7C2CB89DF169E0BF1A5D9CEDF082E76585FBE13C3483CD8B6F8616E2DFC2BFD36DB5CDBDE5BC177693C3756B750C7716D736F224D6F7104C8248678668CB472C3246CAF1C88C51D1832B1041AFE3F3C49E1CD17C59A36A1E1FF10D841A9E93A942D05D5ACE090467292C4E08920B88240B2DBDC44E93413224B13ABA861F4B7EC1FF00B78788BF63BF11681FB37FED21AFDE6B9FB39E" $FileBin &= "B9791E95F083E2FEAB23CF71F0B2E277C5A782FC697673B7C20B9D9617EF84F0D20F362DBE185B8B7F0AFC470D7124B2C74B2DCCEA39E5D371860F1951B72C14A5651C36266F7C336D46856936E8E94EA3F67CB28FF3BF83DE3055E129E0B83B8C7193ABC315654B0BC3FC418AA929D4C82A4F929E1F28CDEBD46E53CA27292A797665564DE5EDC3098C9FD51D1AD87FE9D28A82DAE6DEF2DE0BBB49E1BAB5BA863B8B6B9B79126B7B8826412433C33465A39619236578E44628E8C1958820D4F5FA9A69ABA774F54D6CD773FB5934D269A69A4D34EE9A7AA69AD1A6B54D6E145145030A28A2800A28A2800A28A2800AFC67FF0082A2FC4FB9F157887E18FECA" $FileBin &= "BA15E3C767AF327C4BF8AC6DA4656FF845F48BA961F0D68B3C91B36D8F51D4ED2FEFE686455921BDB2F0DDDA9F2A424FECC74AFE63F5AF183FC5FF00DA13F684F8CB3486EACF57F1DDE782BC2533312A9E12F05AC3A3E9925B2F091C5A8D8D9E95793A479437AB70E4BCAD2C8FFADF83D944317C438ACEEBC14E8F0DE0BEB941495E2F35C554585CB5B56F8A8396231D4DF4A983833F38F12F32961F27C3E574A5CB533AC57B0AD6766B2FC347EB18D4ADADAADA8E165D1C311246E450C56F1450411A430411A430C31A848E28A25091C71A280AA888A15554055500000002A4A28AFDF9B6DB6DB6DBBB6F56DBDDB7D5B3F1D492492D12564BB2414514521851" $FileBin &= "451401C7F8F7C256DE36F0A6ADE1EB808B2DD5B9934FB861CDA6A76F996C2E4301B955270A936C219EDA49A2C8121AFDADFD817E3B5EFC78FD9D3C31A9F88EE1E6F1F7816E2E3E1CF8FC5C36EBC975FF000CC56F15BEA777B9B7BDCEB5A2CDA66A77B2ED589B549F528611B6D980FC82AF78FF00827678C1FC03FB577C50F85F2CA61D0FE31F81AD3C79A4C05898FF00E12BF095DC90DEC5021F9527BFD3EFFC43A85E3A6D674B1B35943AA4453E4FC40CA219D706665EEA9633209473BC0CADEF2A0A54F0F9B504FA539E1670C5CE3D678083D35BFD1F06E632CAF89F02EED61B374F2AC546FEEFB4929D6CBEB34B7943111961D37B47172F2B7EEC514515FC" $FileBin &= "A67F428514514005145140051451401E0FFB4B7ED2FF00057F643F833E31F8F9FB4078DB4EF01FC34F0459ADC6A7AB5E892E2F350BEB8630E97E1EF0F6956CB25FEBDE25D72ECA5968DA269B0CF797B70F90890453CF17F187FB4AFF00C15FFF00E0A15FB7D6A1A8DB7C02F11EB1FB047ECA5792C91F872FFC3EB0CDFB4CFC4AD0CB37D9B5CD53C5D04C927802DF538562BCB2B6F045DE873E99E7983FB7FC75A73477EF83FF00055BFDA5753FF8287FFC141FC6FF000B9EFE4BEFD923F60DF13DE7C3FD0BC28B2B3F87FE24FED156426B1F881E2ED76D14FD9B544F096A115FF8474C86E1AEEDA0D2B498A7B354B5F1B788ADAE3C800000000000000030001C" $FileBin &= "0000E000380074AFEBFF000E7C34C9F86F29CBF3ACF72EC366BC4F9961A86614B0F98D186270390613154E15F054E381AD1950C466D5684E9E26BD5C5D3A91C0FB4A74285186229D5AD2FCEF39CEB118DC456C3616B4E86068CE54652A32953AB8BA94E4E3564EAC5A9470F192708460D3ABCB29CA4E128C4F95A7FD8E7E0FEBFAADCF897E25CDE3EF8C7E30BF632EA7E31F89FF0010BC57AFF887529D8B34935F5EDB6A5A68BB67924965FF004A8E76592467DC5F0C22BCFD89FF0067792782FF0045F08EA9E10D66CE54B8B0D77C29E2FF0015E99AA69D731B9922B9B169757BBB482E2190EF8A61685E3214290AAA07D5F457EC6B38CD6294639862E108C5" $FileBin &= "4634A15A70A3182DA11A306A92A692B7B35050B69CB6D0F9D787A0DB6E8D36DBBB93845C9BEEE4D39397F79BBF99D17C04FDB8FF00E0A75FB08DDD95DFC26F8F5AD7ED77F06F4B312EA5FB3F7ED39AA5DF89F5E1A2C0C035AF80FE284D38F12E8D7F6D66658749B18750B2F0DD8911193C2BAFF936FA71FEB93FE09C5FF054AFD9CBFE0A4BE04D4F53F86771A8F813E30781E2820F8BDFB3EF8E9E2B2F88DF0E752322DACF71F66296E3C4DE1196FF0036DA6F8BB4BB78EDDE4786C75CB0F0F6BED3E876FF00C7CD78AF8A34FF008A9F083E26F84BF6BAFD9575E97C0DFB4C7C229C6ABA5DD5946CDA5FC4BF0F5BA6358F87FE34D2E296DE2D7F4CD774C5974B" $FileBin &= "6B5BA71F6EB593FB2A59E0274ED4348FCEB8BFC39E1DE37C3D5E5C260722E256A52C167783A14F0785C5E22DEE61B3CC261A10C3D5A55E5EE3CCA95286370D392AB5A58AA319517EC65D9C6332C9C6F52AE2B0574AAE1AA4E55274E1A5E7859CDB9C6514AEA8CA4E9CD5E3154E4D497FA4D57E71FF00C1457FE0A7DFB37FFC136FE1F69FE20F8B37DA878BBE2878D12E2DBE117C05F03F93A87C4BF89BAB238B68CD9587EF0685E17B6BD9218358F176A711B1B42FF62D2EDB5CF104D61A0DF7CDD63FF05BAFD9C2E3FE09633FFC14A2E228E192C74D3E09BFF82A35455F1227ED34B1258AFC0F8AE0DB35D97B9D6658B5A875CFECB79E3F8652FF00C27D71A4" $FileBin &= "A5A41716717F229A143F15BE3A7C57F16FED91FB576B1378C7F68FF8B3336A3E45E232E8DF093C233061A07C3BF04E912BCB1E8365A1695247A698A366B8B487CEB3927B9BFB9D7B56D77F14F0F3C23C466F98E658BE30A18BCB726C8331AB95E2B0317EC31D9B6718669D7CAF0F55A92A187C345C2A6618E829F253AB4296179AAE223568FD3671C410C3D1A14F2E9D3AD88C5D18D78556B9A950C34FE1AF38E9CD39DA51A349DAF28CA53B460D4BE91F8FDFB78FFC14F7F6F0BABFB9F895F1CF58FD8DBE0AEAAEFF00D95F00FF00669D4EE3C3FE2D6D1A563E5DBF8EFE2C43247E29D5351BAB3648757B1FB73786AFCF9A1BC17A17993D857C4F67FB147ECF" $FileBin &= "2B713EA3AE785357F196B7792B5C6A1AF78B7C61E2AD5355D46E647124B737CD0EAD676771733380659DACC48F9605B0EE1BEAFA2BFA8B2E951C970F1C1E4184C2641838A518E1B27A31C12928DACF1188A7FED78CABA272AF8CAF5EB4DDDCA6DB3E1AB736267ED71752A62EABD79F112756DE508BFDDD38F68D38422BA247CA91FEC6FF0006B44D52DBC47F0E7FE13AF843E2FB0712E99E30F867F107C57A0F8874C9D5408E6D3EF2E752D492CDD5951CB5B430B33A062DB8B337E8F7ECDBFF000573FF0082897EC077FA745F1A7C4FACFEDF9FB2B58CB1278923F1598E3FDA5FE1E684A42DCEB5A0F8DAE2696E7C74BA6C27ED9756BE36BBD7CEA4B6ED6EBA" $FileBin &= "8F81AC5A7D620F0CA38208201041041E460FF9FF001E2B2CD68E0788B0F2C171365F85CFF0938B838E614D54C5D14EFEFE0B324963F035A376E1530F5E0AFA4E1383941D61E7570735570556784A8ADAD17CB4E5669DAA51FE1558BB59A9C1BECD3B35FDD7FECC1FB50FC10FDB1BE0B7847E3F7ECF9E36B1F1D7C38F18DBC8D697F6CAF6BA9E8FAADA6C8F56F0CF89F479C2DFE81E27D0EE185B6ABA3DFC693C2C61B9B76B9D3EEECAF2E7E81AFE073FE097FF00B4A6A1FF0004E6FF008283F80FC2B0EA1269FF00B257EDD7E2AD33E17F8F3C26F3345E1CF877F1E3517FB27C38F1F68B6AE56CB481AE6AB730787B5AF29ED6CFFE11ED4759BBD43CDB7F0AF8" $FileBin &= "66DAC3FBE3AFE33F12B81DF03E7D0C2E1AB55C5E4B99E1D6639262EB28AAF2C2CAA4E8D5C262F912A7F5DC06229CF0F5DC14615A2A962A10A70C4429C7F48C9734FED4C2B9CE31A789A13F6389A71BF22A8A2A51A94EFAFB3AB0929C136DC5B9536E4E0DB28A28AFCF0F5C28A28A0028A28A0028A28A0028AF947E267EDD7FB17FC1AF18EA7F0F7E2BFED53F007E1DF8EF445B57D67C1FE30F8A9E0DD0BC49A40BEB58EF6C9753D1EFF5786FB4F92EACA782F208AEE08A596CEE2DEE510C1710C8FC1FFC3CF7FE09D3FF0047BFFB2EFF00E1EAF01FFF002EABD9A5C3BC415E953AD4322CE6B51AB08D4A55696578DA94AAD39A5284E9D4850709C249A71945B8" $FileBin &= "C934D369A3D7A59067B5E9C2B51C9337AD46AC23529D5A596E32A53A9092BC6709C28B8CE124D38CA2DA69DD368FBAA8AF857FE1E7BFF04E9FFA3DFF00D977FF000F5780FF00F97547FC3CF7FE09D3FF0047BFFB2EFF00E1EAF01FFF002EAB4FF55F897FE89DCF7FF0D38FFF00E67F35F797FEADF117FD0833AFFC35E3BFF941F75515F0AFFC3CF7FE09D3FF0047BFFB2EFF00E1EAF01FFF002EA8FF00879EFF00C13A7FE8F7FF0065DFFC3D5E03FF00E5D51FEABF12FF00D13B9EFF00E1A71FFF00CCFE6BEF0FF56F88BFE8419D7FE1AF1DFF00CA0FBAA8AF857FE1E7BFF04E9FFA3DFF00D977FF000F5780FF00F97547FC3CF7FE09D3FF0047BFFB2EFF00E1" $FileBin &= "EAF01FFF002EA8FF0055F897FE89DCF7FF000D38FF00FE67F35F787FAB7C45FF00420CEBFF000D78EFFE507DD5457C2BFF000F3DFF008274FF00D1EFFECBBFF87ABC07FF00CBAA3FE1E7BFF04E9FFA3DFF00D977FF000F5780FF00F97547FAAFC4BFF44EE7BFF869C7FF00F33F9AFBC3FD5BE22FFA10675FF86BC77FF283EEAA2BE15FF879EFFC13A7FE8F7FF65DFF00C3D5E03FFE5D57DABA16B9A2789F44D1FC4BE1AD5F4CF107877C43A5E9FAE681AF6897F6BAAE8DADE8BAB5A437FA5EAFA4EA9632CF65A8E99A958DC4179617F693CD6B776B345716F2C91488E7871B95669972A72CC32DC7E02355C95296370788C2AA8E29392A6EBD3A6A6E2A49C946" $FileBin &= "ED269BDD1C78CCAF33CBE30963F2EC7606355CA34E58CC26230D1A928A4E4A0EB53829B8A69C946ED269BDCD5AFCE5FDBDBF6FF7FD89357F82BA15A7C19D53E30EADF19DBE20269B65A578BADBC2D3E992780D3C1D24C98B9F0FEBA2FDB518FC59BD76B59FD9574E7CF9FF00685F27F46ABF9F2FF82D6FFC96FF00F827E7FD7FFED1BFFA6AF8495F23C4F8DC565F9262F1783ABEC7134EA60A14EAF253A9C8ABE3F0B426F92AC674E4DD3AB34B9A2D26EEB5499F8EF8D3C479D70A78739DE79C3D8D59766D87C670EE1B0D8CFABE1B17EC2399712E5196E264B0F8CA55F0D5252C2E2EBC23ED694D4652538A528C5AD3FF0087D9FC40FF00A310F1D7FE1DAD27" $FileBin &= "FF00983A3FE1F67F103FE8C43C75FF00876B49FF00E60EBE09A2BF3BFF0058788BFE87153FF08B2EF2FF00A84F2FC7D6FF00C8DFF116BC5CFF00A2FB11FF0088EF0AF97FD49BC9FDFE47DEDFF0FB3F881FF4621E3AFF00C3B5A4FF00F30747FC3ECFE207FD18878EBFF0ED693FFCC1D7C13451FEB0F117FD0E2A7FE1165DE5FF00509E5F8FADCFF88B5E2E7FD17D88FF00C477857CBFEA4DE4FEFF0023EF6FF87D9FC40FFA310F1D7FE1DAD27FF983AF8E3F6E7FF82827C49FDB37E069F82F6BFB24F8C7E1E493F8D7C27E276F11DDF8EF4EF1243147E1EBC96792D4E9B0F86746918DC2CF8130BC022D9931499C0E428AC3159BE798CC357C262335A9528626" $FileBin &= "94E8D682C265F172A7523CB38A9470AA71BC5B578C9357BA77577E5E77E20F897C45946639166FC6F89C56579B612B6071F878E45C3541D7C2E221ECEB5355A86534EB52738392E7A5384E37BC649A4C53C927D49AC3F11F87345F1668B7FE1FF105841A9693A94260BAB59D72083CA4B13A9124171038596DEE21649A09912589D5D430DBA2BCF718CA2E124A516B95C64934D5ACD34F469F53E5674E9D5A72A55611A94E71709C2715284E0D5A519C649A9464AE9A6ACD33DF3F60FF00DBC3C45FB1DF88B40FD9BFF690D7EF35CFD9CF5CBC8F4AF841F17F5591E7B8F859713BE2D3C17E34BB39DBE105CECB0BF7C27869079B16DF0C2DC5BF857FA6DB6B9B" $FileBin &= "7BCB782EED2786EAD6EA18EE2DAE6DE449ADEE20990490CF0CD1968E58648D95E39118A3A3065620835FC7DF88FC39A2F8B345BFF0FF00882C20D4B49D4A1305D5ACEB9041E52589D48920B881C2CB6F710B24D04C892C4EAEA187D2FF00B07FEDE1E22FD8EFC45A07ECDFFB486BF79AE7ECE7AE5E47A57C20F8BFAAC8F3DC7C2CB89DF169E0BF1A5D9CEDF082E76585FBE13C3483CD8B6F8616E2DFC2BF51C37C472CAE54B2CCCAACA79749C69E0F1951B94B0526D2861B1537BE19B6A342B49DE8E94EA3F67CB28FEEBE0FF8C15784AAE0F83B8C7173ABC315674F0BC3F9FE2AA4A75387E7371A787CA337AF51B94F289CA4A9E5D98D593797B70C262E7F54" $FileBin &= "F635B0FF00D3A51505B5CDBDE5BC177693C3756B750C7716D736F224D6F7104C8248678668CB472C3246CAF1C88C51D1832B1041A9EBF524D3574EE9EA9AD9AEE7F6AA69A4D34D349A69DD34F54D35A34D6A9ADC28A28A061451450014514500798FC6BF1749E00F839F15BC730CA619FC1DF0E7C6BE26B791402CB75A2786F52D4AD820390D234F6F1AC6A47CCECABDEBF9A7F823A60D2FE187856320896F2D6E355998FDE91F53BDB8BC8DD8F73F66960404F25117249AFDEDFDBCEFE6D3BF63EF8FF710332BC9E02BDB062A704C3AA5E5969970A7FD9682EE4561DD4915F87DE05856DBC13E0FB75C110F85B408C11DF669568A5BDCB10493D49249AFE8DF" $FileBin &= "07E8C69F0AE77884AD3C667F85C3CE5D650C065F3AB08F7B46598CDF6D5763F12F12AAB9F1065941FC386CA2BD68AE8A58BC646126BCDAC1C53F248EAA8A28AFD2CF840A28A2800A28A2800AA9E03D6DFC17FB587ECA5E33864F21A7F895FF00080DDCDF36D7B6F8836EBE1658A52A47C8A9AB5E91BBE4532348E36A1AB75E69F10AEA4D3357F83FAD42424FA1FC6DF875AA452104846B5D4E5752C1487651208D8AC64392A304004D6B4E8C7150C660E6B9A18ECB734C0D48DAFCD0C5E5F89A1256BABE9534EB7B5B5B113AB2C3CF0D898BB4F0B8DC062A0EF6B4B0F8CA1593BF9387F9E973FA9BA2907207D052D7F111FD56B549F70A28A2800A28A2800AE2" $FileBin &= "7E25F8BE3F87DF0E7C7FE3D96137117827C13E2AF17490282CD3A786F42BFD65E155054932AD9140032E4B6323A8EDAB96F1CF85ACBC73E0AF18782B52FF0090778C3C2FE20F0BDFF19FF43F1069377A4DD71DFF007176FC77E95AD1E455A93ABFC25569FB4FF073AE7FFC96E4CF9B925CBF172CB97FC5676FC6C7F9A4FEC5B15E5D7C06D1BC5FAC5D49A8F89BE23789BC6FE3CF15EAB398DAEB57D7F58F156A96B73A95DBC691ABDCDD5B69D68F310AA03E555555428FABEBE54FD8D62D4B45F82E9F0F75F84DB78A3E13F8E7E20FC37F14D931F9EC75DD0BC57A95D5D59B82A92036D1EA70423CD8A29195016404E4FD575FE8E66ED3CD31EE2E2E9BC55595" $FileBin &= "270B723A1293950F676D3D9FB170F67CBA72592D0FC6F0FF00C0A5BDFD9C79AFF1735973F37F7B9AFCDE770A28A2BCE360A28A2803E2F9BF664D79FE397F6D2789A55FD9FAE3C5B07C67BDF855FDABA8FF00634DF1BECF4CB8D12DFC467C35E51D1DA430DD4BA9B6AED29BC6F32E7446B71A6C88B5F68514575E2F1D88C6AA0ABCA2FEAF4A3461CB08C39946C9D4A9CA97B4AD34A2AA569DEA545182949F2AB674E9429F372A7EFC9C9DDDEDE4AFB456BCB1D95DDB70A28A2B90D028A28A00F953F6D2B09A6FD9EFC59ADD85CCD61ADF82F53F0A78CBC3DA9DB48D0DD699AC68FE26D2D63BEB49D0ABC17715A5D5E25BCC843C72C8ACBC8C57FA497C1AF1ACFF" $FileBin &= "00127E107C2AF8897300B6B9F1EFC37F03F8D2E2D86DC5BCFE28F0C697AE4D00DAA8B88A4BE68C6D455C2F0AA381FE6DBFB674F7D3FC07D6BC27A35BB5EF88FE237893C15E00F0C69E9B7CDD4B5BD73C4FA6CB169F00664067B9B3B1BC48BE6015F0EDF2A9AFF49FF85BE0A83E1B7C32F875F0EEDA77BAB7F017813C23E0BB7B990A992E20F0BE81A7E8914D2145442F2A58AC8C55114B312A8A0ED1F887D201D2FEC1E098CEDF58799F13CA8EDCEB0BF57E1F552FADFD9CABA5C9A72F3C6ADB54EFF4FC25CDF5BCC9ABF27B0C12976E7E7C538DBCD46F7F271BE9CA779451457F2F1F72145145001451450015F277EDC1FB57783BF628FD983E2B7ED15E3236" $FileBin &= "D731F823C3F32F85BC3F35C0B797C61E3BD59BFB33C17E13B521BCF2758D7AE2CE3D427B68E7934CD1A3D53589216B5D3AE197EB1AFE387FE0B01FB4A7FC362FEDADA1FECBFE14D47EDFF00BF630BF4F11FC506B59449A578CFF00687BF8A5B6B5D0AE31BE1BC87E1DD87DA34631B2A183569BE20E957C8E1F4F907DEF871C26B8BB89B0D83C4C66B27C045E679E558B71E5CB70D3873E1E335F0D7C7D69D1C061EDEF2A988552CE34E6D7DC787BC2CB8AF88F0F84C429ACAB03079967356375CB97E1A70E6A119AF86B63AB4A960A875552BA9DB969C9AFCD0F87FF000A22F1DDA6BDF167F685D0343F887F1A3E3278A35AF8A1E3FD6BC5DA1E9DAB5EDAEB3E" $FileBin &= "2EBA6D4DF49B64BFB79FFB3ADECA399449A75BEC82CAEA49ECE055B4B6B58E3EFF00FE144FC14FFA249F0DFF00F08BF0EFFF002BEBD5A8AFEC9A9996325393A55EB61A92B46961F0F56A52A187A504A14A851A5094614E952A71853A718A49462B43FAF6A6618B94DBA75AAE1E9E91A542855A94A850A504A34A8D1A71928C2952A718D384524A318A4794FF00C289F829FF004493E1BFFE117E1DFF00E57D1FF0A27E0A7FD124F86FFF00845F877FF95F5EAD454FF6863FFE83B19FF8535BFF0093F25F711F5EC6FF00D0662BFF000A2AFF00F26794FF00C289F829FF004493E1BFFE117E1DFF00E57D1FF0A27E0A7FD124F86FFF00845F877FF95F5EAD451F" $FileBin &= "DA18FF00FA0EC67FE14D6FFE4FC97DC1F5EC6FFD0662BFF0A2AFFF0026794FFC289F829FF4493E1BFF00E117E1DFFE57D1FF000A27E0A7FD124F86FF00F845F877FF0095F5EAD451FDA18FFF00A0EC67FE14D6FF00E4FC97DC1F5EC6FF00D0662BFF000A2AFF00F26794FF00C289F829FF004493E1BFFE117E1DFF00E57D1FF0A27E0A7FD124F86FFF00845F877FF95F5EAD5CBF8DBC5FA3F80BC27AFF008C75E9BC9D2BC3DA6DC6A375B4A8966312E20B3B70C42BDDDF5CB436769192049733C4848DD9154F1B99559C29D3C663653A928C2118E22BB72949A8C62929EADBB24BD0A862F30A93853862B1729CE5184231AF59B94A4D28C5253BB6DB49247927" $FileBin &= "837F63EF077ED6DFB55FC14FD8DBE16FC3FF0009786E6F146A517C40F8DDE37F0CF85B43B1D57C01F05FC317114DAF5D41A8DB586ED3F53D6F747A4E92D26D57D6B50F0ED8DCA358EB6E4FFA0C7843C27E1CF00F84BC2FE06F0869367E1FF097833C3DA2F853C2FA158218EC345F0F78774DB6D2345D26CA36662969A769B676D696E8598AC30A024919AFC36FF820C7EC7FAC7C29F809E22FDAEBE2D695F67F8E9FB61CF63E33586EE27179E0DF82D6DE649F0D7C2D68274F3ACE2D6AC661E2DBA58A45377A55DF846D352885F680367EF657F2F78D1C613CFF003FA59161B173C5655C2CAB60A155D69D5863336A8E1FDAD8D8CA52929538D6A50C0E1A49B8" $FileBin &= "BC3E123560D7B795FF009A3C60E2D9E7B9ED3C970F8A9E232CE1A55B071ABED655618BCD2A4A3FDA98B8C9CA4A508D5A70C161E49B8CA861635616F6F2B95FCF97FC16B7FE4B7FFC13F3FEBFFF0068DFFD357C24AFE836BF9F2FF82D6FFC96FF00F827E7FD7FFED1BFFA6AF8495FCE5C67FF0024E63BFEBF659FFAB5C09FC69F48AFF9349C41FF00634E0DFF00D6D7878F8728A28AFCBCFE250A28A2800A28A2800A28A2800AC4F11F87345F1668B7FE1FF105841A9693A94260BAB59D72083CA4B13A9124171038596DEE21649A09912589D5D430DBA424282CC42AA8259890000064924F0001C92780294A319C5C6494A324D4A3249A69EE9A7A34C8A94E9D" $FileBin &= "5A73A75611A94EA45C2709A5284E125694671926A5192BA69AB34CF7DFD83FF6F0F117EC77E22D03F66FFDA435FBCD73F673D72F23D2BE107C5FD56479EE3E165C4EF8B4F05F8D2ECE76F84173B2C2FDF09E1A41E6C5B7C30B716FE15FE9B6DAE6DEF2DE0BBB49E1BAB5BA863B8B6B9B79126B7B8826412433C33465A39619236578E44628E8C1958820D7F1E3F06BE0278FBFE0A1FF00116EBE147C3A69341F807E11D52C9BE33FC677B28AEAD5DADA68EEE2F08F819AE637B5D47C4577E5A4904D1EF86D90A6AB7ACBA4A5A5BF88BFAD8F85DF0DBC2BF07BE1DF833E17781ED6EACBC23E03F0F69BE19F0F5B5F6A179AA5E43A66976E96D6CB73A85FCB3DDD" $FileBin &= "D4C554B3C92C8465B6C4B1C21234FBEE07C4665570B5E95652AB955071865D8AACDFB6934DAAB87A6DA6EBE1685B969D7935CAEF460EAC617A7FD63F46BCE38BF30C8B31C1E610A98CE0ACB274B0DC259DE3AA4FEBB55D394E9E372AC239A94F32C9B2D708D3C2665567074AA73E5F4678CA58753C377B451457DD9FD3414514500145145007C8FF00B79D84DA97EC7DF1FEDE056778FC037B7EC14648874ABBB2D4EE58FF00B296F692BB9EC8AD5F87BE05985CF827C1F70BD26F0B787E4FA17D26D188C76209208EC4115FD177C68F08BF8FFE0FFC54F02C51F9D3F8C7E1CF8D7C316F18C066B8D73C39A8E996FB18E76C8B3DCC6D1BF5570AC395AFE693E0" $FileBin &= "86A6354F861E1672C4CB656D73A54CAC72D1BE9B7B73691AB67904DB47048A0F212450403C57F46F83F5A3538573BC3A7EFE133FC262271B6D0C7E5F529424DF44E597CD2DF55D2FAFE25E255274F8832BAEFE1C4E515E945F472C263213946FDD4719176EC7ABD14515FA59F08145145001451450015E6BF106D64D5358F83BA1C203CFAEFC6EF873A54719C8121BAD4E58D412BF3AAF9A625250871B863A9AF4AAABE01D11BC6BFB597ECA5E0C8504E60F88EDE3EBB8893B12DBE1FDA8F1524B22A839529A45E850E36398CC4D9121AD69D78E1618CC64DB8D3C0E5B9A63AA495FDD86132EC4D772BADADC8ACFBDADAD9112A52C44F0D8682BCF158EC06160" $FileBin &= "B5BB96231B42924ADD7DF6FB77D2E7F4B23803E82968A2BF888FEAB5A24BB0514514005145140051451401FC0BFF00C146BE05DC7EC5FF00F055FF008DDE1B368DA7FC24FDB86D9FF695F8537A62F2B4E4F8937535CC7F193C311DC0D96CDABDCF8AC6B7E269ED9023DAE8FAB7846DBCA692F639AE3CDEBFAB6FF82D17FC13CEF3F6FF00FD932E6C7E1BAC1A77ED37F017567F8BDFB3778843416D75278C347B759358F00497F3EC4834CF88BA5DA47A5AADC4F069D6FE2AB0F08EB5AA3BD8E8B34527F1D3F04FE2A47F157C206FEFF4EB8F0E78DFC377F75E15F88FE0CD46DEE2C357F0878DB4691ACF5BD2350D36F563BDB2C5DC32C96F15D46B3C685AD2E4" $FileBin &= "25F5A5E410FF00707877C4F4F8BF83B2FC53A8A79BE41430B91E7B479AF55C70D4950CA33369EAE963B054A142AD47BE3F0989E6FE253E6FCC338C13CBF31AB4D47970F8B954C4E16566A379C94B11413DB9A9559B9462B6A552165EEBB7B0514515F6079C14514500145145001451450014515E43F1B7E2B5A7C23F045C6BA9653EB9E28D5AEADFC3BE03F09D8C33DDEA9E2CF196AADF67D1745B0B2B4492F2E8C970CB2DD25AC725C7D9A3923B68E5BC96D6DE6D6851A988AD4E8528F354AB35082BA4AEFACA4ECA318ABCA526D46314E526926C9949422E527651577FF016EDBD925AB7A2D4FA53F603F81973FB69FF00C1563F67EF87A96B2DF7C29FD8DA" $FileBin &= "483F6A5F8C97B1A97B05F186813DA49F087C2D732306B67D427F1749E1ED464D3A4DCF7FE1B9BC51B6371A75D793FDFD57E387FC1137FE09E3A9FEC17FB2A35EFC54862BBFDA9BF68DD5ADFE2EFED17ACBF9525EE9BAE6A104F37863E19ADD425A37B2F873A66A57769751DBCB3D89F17EAFE2FBCD2E77D2AF2C122FD8FAFE3FF17F8B70FC51C54E8E5B5957C9387B0CB26CB2B41FEEF192A556A56CC332877863B1D56B4A84F7960A9E1399269A3F44E1ECBE781C073568F2E27173FACD68BDE9A94631A545F674A9462A6BA54752DA0514515F951EF05145140051451D3AD007E78FFC1507F6D5B1FD853F646F1E7C59B1682EFE287884C7F0E3E077879E31" $FileBin &= "732EBBF15FC596D770787DD6C086FB759786ADADF50F176AD6A446B7BA768371A6C72C779A85A07FE3DBE08FC3DBDF879E0782DF5FBD9F58F1CF89AFEFBC63F10FC417B70F7BA8EB9E34F10CA6FB59BBBDBF959E6BE9219641662EE572F77F676BC93F7F75316FA93FE0A15FB49FFC379FEDF5ACCBA15F8D4FF66FFD8AEF355F879F0E1A091A5D1FC6BF19A79ADFFE16078DA16567B6BD874AD42C2DB4AD1EEE0925B6934FF0FF008735AD3E4F2B5CBC593CEABFB2BC3EE18FF54784F0D87AF4F9338CF961F38CE2EAD3C3D095372CA32C9758BC3E1AACB198883B38E2B192A5357C346DFD79C05C39FEAAF0BE1E856A7C99BE79EC335CDB995AA51A32A6E595" $FileBin &= "65D2BA4E2F0F87AB2C55783B3589C5CA9CD37878D8A28A2BEB8FAC0A28A2800A28A2800A28A2800A83F677FD9D6E3FE0A03FB6E7C37FD989A09EE7E097C25934FF008D3FB4FDFC2B27D8EEB41D1EE6DE5F0C7C359E753120BAF19EA17165A75D5AA4E2ED74AD5350D72C55A7F0B5CA0F3FF8B5F1174DF853E00F1178DB51093369769B34BB16621B54D6EEDBECDA4E9B184FDE37DAAF64884ED106782D12E6E88D90391FD42FFC117FF626D47F645FD942CBC4DF122C1D3F68AFDA4AFADFE31FC6DBCBE87CAD5B4BBBD6A196EBC23E01B9565592D8782F44D41C6A3A71DD1D978B759F152DBBB5A3DB2A7CDF1AF132E0FE16C666D4A6A19B660EAE519024ED52" $FileBin &= "18BAB497D773282DED95E12A73D39D9A8E3B1182BE9CD6F9DE32E235C25C338BCD295450CD71CEA65591C535CF0C555A5FED998453D7972DC2CF9E9CD26A38DAF83BE9CD6FD73B5B5B7B2B6B7B2B3821B4B3B4822B5B5B5B68921B7B7B782358A1820863558E18618D1638A28D5523450AA028004F4515FC56DB6DB6EEDEADBDDBEECFE396DB6DB776F56DEEDF7615FCF97FC16B7FE4B7FF00C13F3FEBFF00F68DFF00D357C24AFE836BF153FE0AD9FB337ED2FF001DFC69FB2778C3F676F854BF14A4F84B37C66B8F155949E33F03F83E3B16F16DBFC35B6D091E6F18F88F417BA17CBA26B4E1B4C8EFBECC6C76DE0B7FB4DB79DF37C5D46B62387F1B4B0F46" $FileBin &= "B622ABA9809468E1E94EB569AA799612A4F929538CA73E5A7094DA8C5DA316DE899F8E78FB97E6199F8599FE132BCBF1F9AE3658FE16AF4F039660B139863AB53C2716E478BC4CA860F094AB626B7B1C350AD5EA2A54E6E34E9CE6D72C5B5F9754574DFF000CA1FF00053AFF00A330D3FF00F0FBFC17FF00E6EE8FF8650FF829D7FD19869FFF0087DFE0BFFF003775F987D5730FFA14673FF869CC3FF99CFE27FEC6E28FFA2238FF00FF00105E2BFF00E747F567E57E668AE9BFE1943FE0A75FF4661A7FFE1F7F82FF00FCDDD1FF000CA1FF00053AFF00A330D3FF00F0FBFC17FF00E6EE8FAAE61FF428CE7FF0D3987FF3387F637147FD111C7FFF00882F15FF" $FileBin &= "00F3A3FAB3F2BF334574DFF0CA1FF053AFFA330D3FFF000FBFC17FFE6EEBC8FE35F82BF6DEFD9CBC18BF11BE367ECBFA77823C0E35BD27C3F36BC7E2D7C3BF11F95A96B53343616E34DF0A788F5CD598CEF1C804AB626DE3DBFBF9A20C09CEAD2C650A73AD5B2CCDA8D2A5173A956AE578EA74E9C22AF29CE73A0A308C56AE526925AB673633059E65D84C463F30E12E36C0607094A75F158CC6706713E1B0985A14D7354AD88C456CAA146851A71BCAA55AB38C2114E52924AE76D45078247A5212141662155412CC4800003249278000E493C014B733BE97E9B812141662155412CC4800003249278000E493C01589F043E087C49FF82807C49BDF85DF0BAF" $FileBin &= "6F7C2BF01FC2B7B0C1F1AFE35C10E609A03B6497C13E099645F2353D6F5383284A192D92DA43A8EA27FB1BECD6DE233E087C10F893FF000500F8937BF0BBE175EDEF857E03F856F6183E35FC6B821CC134076C92F827C132C8BE46A7ADEA7065094325B25B48751D44FF00637D9ADBC47FD5C7C16F82DF0DFF0067CF86FE1AF851F0A3C3567E17F05F85ECD6DAC6C6D977DC5DDC3FCF7BABEAF7AF9B8D5359D52E0BDDEA7A9DDBCB7579752BC923E36AAFB390E43533DA8ABD652A793D393539A6E33CC67176950A12569470D09271AF5E2D3A8D3A345FC738FE93E16F85B8BF137171CCF338D7C1F0060EBCA15EBC253A388E2CC4519F2D4CBB2EA91E5A94B2" $FileBin &= "6A55232A7996654DA96264A781C0CD3588C4503E0B7C16F86FFB3E7C37F0D7C28F851E1AB3F0BF82FC2F66B6D63636CBBEE2EEE1FE7BDD5F57BD7CDC6A9ACEA9705EEF53D4EEDE5BABCBA95E491F1B557D528A2BF5CA54A9D1A70A54610A54A9C630A74E9C5461084528C6318C52518C6292492B24AC7F7B60F0785CBF0B86C0E070D430782C1D0A586C2E170D4A1470F87C3D182A74A8D1A54D4614E9538463084211518C52495828A28AB3A428A28A0028A28A003AD7F325AFF83DFE107ED13FB427C1B96236D65A6F8E6EFC75E11858611FC27E3558758B08ED9BEECB0E99677BA5D8CCE9F28BDFB5215495248D7FA6DAFC6CFF0082A37C2EB9F0CEB7F0CB" $FileBin &= "F6ABD0ACE492DBC34F17C37F8AAB6D1B3B3784B59BC9A4F0EEB33246A032697AB5EDFD8CB248CD24F7BA9787EDC6228095FD6BC1ECDE184E22C4E495E6A14789305F52A0E4ED159AE1AA471596DDBD39ABCA35F034D75A98C8AD15D9F9CF89796CB139350CD2945CAA64B8AFACD5514DC9E02BC7D86376FB3493A58A974E5C337E4FE42A2A282686E6186E2DE549A0B88A39A09A260F1CB0CA8248A58DD495749119591812194820E0D4B5FBFB4D369A69A7669E8D35BA6BA347E3A9A6AE9DD3D535B35DC28A28A401451450015EF5FF0004E9F07BF8F7F6AAF8A7F14E584CDA1FC20F0459FC3FD1E720AC5FF094F8AAF24B8D42481C9DB24FA7D8E9FAF69F78" $FileBin &= "A8498E3D42CDA52A248437CA7E3FF16DBF827C27AB6BF31569E084C1A65B93F35E6AB720C5616CAA3E670D31124C10164B68A7970421AFDB4FD82FE045E7C03FD9D3C2DA2F8860687C79E349EE7E227C4033A05BB8FC47E268EDE58F4CBB2543ADCE87A341A5E9179197922FED2B4BF9E1212E2BE4BC41CDE392F0666369F2E333F94724C0C6FEF3C3F3D2C4E6D5D2BA6E9D3C3429E0E52D94F1F0B5DA76FA4E0DCBA59A71360BDDBE1B288BCD3152B5E2AAA53A397D26FA4E75E53C4455AFCB8493EC7D9D451457F2A1FD0814514500145145001451450015FC8AFF00C171BFE099DE2DF845E3EF127FC1503F640F094DABC1716A6EBF6D7F821E1EB6DBFF00" $FileBin &= "096F87ECC34971F1DBC33A6DBA103C43A241E65CFC40FB242D2C91C6DE3796168E5F1F5D6A5FD75535D12456475574756474750CAE8C086565208656048652082090462BEB782F8C332E09CF28E7197F2D6A6E2F0D9965F564D61734CBAACA2F1182C45AEE2A7C91A946B453A986C4D3A588A5EFD349F06659750CCF0D2C3D6BC5A7CF46B47E3A15A29F254877B5DA9C5FBB3839425A33FCE8BC07E3BF0BFC4AF0AE91E33F076A70EABA16B36EB3DBCF19026825000B8B0BE80333D9EA3652EEB7BDB497124132329CAED66EBEBEF6FF0082A9FF00C11FBC7BFB1DF8C7C6BFB6E7FC13FBC1977E2BF813E21BABBF147ED2BFB25787A077B8F049C9B9D5BE28FC" $FileBin &= "14D2EDD5D8E8312FDA2F35EF07D85BBCDE128C493E916B79E0726C3C05F99BF0DFE25F837E2C7856C7C61E07D5E1D5B48BC1E5C8A3115F6997A888F71A66AD6658CB61A8DB6F4F36DE5CABA3C5736D24F693DBDC4BFDAD9466F94712E55473EE1FC43C4E5B59C69D7A351C7EBD94E2E51E69E5F99D28B7ECABC1F37B1AC97B0C6D24ABE1E524E7087E6588C3E23055E584C5C392B415E328DFD957A7B2AD424FE283D14A2FDFA72F76693B37DE514515DA661451450014515C47C43F88DE0FF859E16BFF001878DF588347D1AC1768693E7BABFBB7476834DD32D14F9D7FA8DD146105AC0A58AAC934AD15B4334D1DD3A752B54852A50954AB524A10A708B94E" $FileBin &= "7293B28C62AEDB6FA214A4A29CA4D46295DB6EC925D5B65CF1BF8DBC33F0EFC2FABF8C7C5FAA41A4683A2DB35CDE5D4CC373B7DD86D2D21C87BABFBC98A5BD959C21A6B9B89238A352CD5FAB9FF043EFF826978B3E3BFC45F0BFFC14F3F6BBF085CE89E1CD193EDBFB11FC10F125B066D2B4F95D66B5FDA03C55A55CC655757BD11C379F0E8DC46259A610F8DEDA35B0D3BE1FEA2FE63FF04B2FF824378F3F6DFF00167833F6D2FDBDBC177FE0FF00D9B7C3F796DE26FD9CBF652F125ACB05F7C502ACD3695F143E32E977023913C23709E4DDE81E16BDB70DE35B5749EE2183C0331FF8589FDA5451450451C30C690C30C691451448A91C5146A1238E345015" $FileBin &= "111405445015540000000AFC4FC56F1330F94E1719C1FC338A857CD3154E785E22CE70B514E8E030F35CB5F24CB6BC1B8D5C4D657A59AE3694BD9D3A6E780C3CA72962671FA6C8724962274B31C6D371A14DAA983C3548B52AB35670C4D68BF86106B9A85392BB76AB34AD04DF451457F2C1F76145145001451450015F90DFF059FF00DB6B52FD90FF00651BCF0DFC36BF923FDA2BF690BF9FE0EFC11B4B198C7AB69779ACC30DB78BBC7D6C54892D8782B44D410E9DA82EE4B3F16EB3E156B88DED1EE4A7EB95D5D5B58DB5C5EDE5C436B696904B737575732A416F6D6D046D2CF3CF34ACB1C50C31A3492CB232A468ACCCC14135FC23FED11FB455CFFC1407" $FileBin &= "F6DCF891FB4D89E5B9F825F08A4D47E0AFECC1632337D8AF342D22E6E22F137C4A82122346B9F196A13DEEA36B76D08B94D2B54D3F43BD66B8F0BC0EBFAA784BC274F88B88FF00B4330A2AAE47C390A79966109ABD3C5E2BDA5B2CCB1DF492C66260E788875C0E1B16F4695FF4EF0AF85A9F107107D7B1F47DA64BC3F1A79863A325FBBC56279DACB72D77D24B1789873D7875C161F14F4695FCFF00E12FC3AD3BE157C3FF000EF8274E2933697681F54BF5521B55D6EED8DCEADA948CE3CC6FB55EC92981652CF05A2DB5B03B20403D1E8A2BFAA2B55A95EAD4AF564E756ACE552A49EF29CDB949FDEF45B25A2D0FE9EAB5675AAD4AD564E552ACE552727BCA" $FileBin &= "536E527F36F65A2D9681451456666145145001451450014515E41F1BBE215EFC3CF03CF71A0594FAC78E7C4D7F65E0EF879E1FB2B76BDD435BF1A78865FB0E8D6B656118696FA486590DE1B48919EEFECEB671FEFAE61075A146788AD4A853B73D59C6116DDA2AEF594E4F48C20AF29C9E918A726D24CD68519E22B53A34EDCF526A09B69455DEB2949E918455E5393B28C539369267D4BFF04F5FD9B7FE1BCFF6FAD1A1D72C06A7FB37FEC5779A57C44F88EB3C465D1BC69F19A69AE3FE15FF0082675757B6BD874AD42C2E755D5ECE78E5B7974FD03C49A2EA11F93AE59B3FF6E5D3A57E797FC12FBF62BB1FD857F646F01FC27BE482EBE287888C9F11FE38" $FileBin &= "F8823916EA5D77E2C78B2DAD27F10A1BE46617B63E1AB7B7D3FC23A4DD2944BDD3B41B7D4A4892EEFEE8BFE86D7F2578A3C5B0E2AE25A8B0351CF23C969BCAB265B46B50A5393C4E62E3B7B4CCB14EA62799A53587786A32FE0A3F953C4BE2A8713F1154FA9D473C9B28A6F2CCA3A46B51A536F118F6B45CF98E25D4C45DA52541E1E8CAFEC50514515F9B9F9E851451400514514005145140057E3DFF00C1713FE4C76E7FECAF7C31FF00D395ED7EC257E3D7FC171982FEC3974588007C5DF862493C0006A37A4927B000124D787C4DFF0024F675FF0062DC5FFE9999F98F8D3FF269BC43F2E13CE5BF4584A977F23F251C85DCCC42AAEE2CC4800019249278" $FileBin &= "000E493C01587F043E087C49FF0082807C49BDF85DF0BAF6F7C2BF01FC2B7B0C1F1AFE35C10E609A03B6497C13E099645F2353D6F5383284A192D92DA43A8EA27FB1BECD6DE235F823F047E24FFC1407E255F7C2EF85B7B7BE15F80FE16BD8A0F8D7F1AE087304D0315925F04F8265917C8D4F5BD4E0CA12864B64B690EA3A89FEC6FB35B788FF00AB7F82DF05BE1BFECF9F0DFC35F0A3E14786ACFC2FE0BF0BD9ADB58D8DB2EFB8BBB87F9EF757D5EF5F371AA6B3AA5C17BBD4F53BB796EAF2EA579247C6D55FCF320C86A67B38D6ACA54F27A52B4E69B8CF319C5DA5428497BD1C34649AAF5E2FF78D3A345DB9EA47F937C2BF0B717E26E26199E671AF83E0" $FileBin &= "0C1D670AF5E129D1C47166228CB96A65D97548F2D4A593529C654F32CCA9C94B13253C0E0669AC462281F05BE0B7C37FD9F3E1BF86BE147C28F0D59F85FC17E17B35B6B1B1B65DF717770FF3DEEAFABDEBE6E354D6754B82F77A9EA776F2DD5E5D4AF248F8DAABEA94515FAE52A54E8D3852A30852A54E31853A74E2A308422946318C62928C63149249592563FBDF0783C2E5F85C36070386A183C160E852C36170B86A50A387C3E1E8C153A5468D2A6A30A74A9C231842108A8C62924AC14514559D214514500145145001451450015C9F8EFC13E1BF891E0DF13780BC5FA7C7AAF867C5BA35FE85AD58C87699ACB5081A091A19305ADEEA02C2E2CEEE2DB3" $FileBin &= "5A5DC50DCC0C93448EBD6515A52AB52855A75E8D49D2AD46A42AD2AB4E4E1529D4A7253A752128B4E33849294649A69A4D3BA22A53A75A9CE955846A52AB0953A94E694A1384D38CA128BD1C6516D34F469B47F303AC781FC53FB357C50D5BF677F8892CB34366F26A3F0A3C5F3C7E4D9F8D3C177134A74F48E427CB8F54B30B25A5C58877FB35EDBDE69B133C36DA7CD7FD757EE07ED39FB31F807F6A2F00B7847C5CB2E95AE6952C9A97823C71A6C6BFDBDE0CD7B6A6CBEB17DF0B5D585CB430C7ABE9124D141A8C1144E92DA6A369A6EA363F825E3DD13E2B7ECCBE228FC0BFB446873DBD84B3B5AF853E2DE8F6D757DE0BF17DB207F24CD7D1C01ACF5511" $FileBin &= "47BAEECEE62835184113DFD8436E5351BBFEB0E10E30C271B6129C5D4A5438A28D24B31CB5B8D3799CA9C57366595C5B4AB4AB24EA633054FF007D42AFB4A94A9CB0F25287F3B71270D62785B133B42A55C86A49BC1639734D60A32768E071D2B374D536F930F899BF67569F242738D64D4BADA2AA58EA163A9DAC57BA6DEDA6A1673AEE86EECAE22BAB6957D639E0778DC73FC2C6ADD7D2CA328C9C65171945B4E324D4935BA69D9A6BAA67849A92528B4D3574D34D34F669AD1A7DD053259638239269A44861851E596595D638E28E352F249248E42A22282CEEC42AA82490013581E23F167873C2566D7DE22D5ECB4B802B346B3CA0DCDC95EA96967187BA" $FileBin &= "BB93FD8B786460324800123BEF815FB307C56FDB22FEC752D5ECB5CF855FB36ACF1DC5FF00882F61165E2DF8996D1481CD8F856D278E411697701446DACCF1CDA3C1979636D6EEE07D2ED9626B60F2DC154CD737C553CB72BA3F1E2EBEF564B5587C151FE2637175126A9E1E8464EFEF5474E946738DE1E96271B8A86032EC3CF1B8FAB6E4C3D3DA116D275B1352CE187C3C2F79D5AAE31FB31E69B8C5F4DFB17FC0DBAFDA97E32597C58F11E9F2FF00C284F831ACACFE1C8AF2165B4F88BF11ACDA39ED99619502DD68BA03F93A85EF99BA3629A7E9AF148BAAEB105A7F41D5CAF81FC11E14F86FE12D03C0BE08D12CBC3BE14F0CE9F0E97A2E8F60856DED6D" $FileBin &= "610492EEE5E6B9BAB895A4BABEBEBA926BCBFBD9A7BDBD9E7BAB89A57EAABF9678E38B6B717E70F171A52C2E5983A7F53CA30329293C360E327273ACE3EE4F178AA92962317523A3A9254E0FD952A497EFFC29C394F8732DFABCA71AF8FC4CD62331C5A56F6D88715154E9DD73470D87825470F076B422E725ED2A4DB28A28AF8D3E9C28A28A0028A28A0028A28A0028A28A002BF972FF00829DFF00C109756D5BC5DE28FDB0FF00E09A31687F0FBE396A0F73ADFC57FD9A677B5D17E12FC7D9448F77797DE1B8649EC746F027C43BD692EA49236934EF0CF88751B8FB7ADF784B5AB8D6756F10FF0051B457D3F0A717E79C1999C734C8F14A94E5154B1984AD" $FileBin &= "1F6D80CCB0BCCA53C2661856D4311424D5D3BC2B519DAB61AAD1AF18548F0E3F2FC2E6541D0C4C2E93E6A7522F96AD19F4A94A766E125D778C97BB38CA2DA7FE6D1F0E3E32D8F8C75AF107C3EF1778735FF853F1AFC0F7B73A47C40F839E3EB0BAD07C69E17D62C1BCBBF80E9BA9DBD8DE5E5AC120CB4A2D21BAB78DE17D42CACBCF804BECF5FD6D7FC147BFE0911FB327FC14634683C41E29B7BEF847FB46F862CD53E1CFED2FF0E2086C3E20F876E2D159B4CD3FC4F1C52D943E3DF095BCFB77687AC5D5BEA5A7DB49789E14F10F85EEAFAEAF64FE3D7F68AF851FB5C7FC1373C636BE00FDB9BC10FAB7C37D4F523A57C3BFDAEFE1C69D7DABFC29F19A12C6" $FileBin &= "C6DBC602D6CE39FC15E2B9A0476B9D1B54B2D3B517920BB9EC74CD5345B493C4F75FD7FC1DC75C3DC794E34F2D9472BE2051BE2386B17594AAD59249CEA6478A9F2ACCE86F2FAABE4CCA8C5494A857A707899FE7998E558CCA9B9574EBE12FEE6369C1A8C55D24B154D5FD84EEEDED15E849DAD2837C8BB0A2B093C53E197F0FFF00C25A9E21D15BC2C6C4EA63C46354B23A17F6705DC6F8EABE7FD845A0504B5C19FCA1820B039C637ECF7F0DBF6B0FF828DF8D6EFE1BFEC23E0631781F4AD48693F11BF6B4F887617BA47C20F00A808D796FE1E9EE6C6697C5FE298E096292CF45D2EC754D4DFCEB7BA93458743B8FF8492D3EB6AC69E1B0D89C763EBD0CB7" $FileBin &= "2FC12E6C6E619854586C26115ED6AB566AEEAC9FBB4B0F4E33C4569DA9D2A539B48E08F34E70A54A13AD5AABB53A34A3CF52A79C62BECA5ACA6DA8456B2925A9C87C4AF8CDA5F81F55D07C0FE1DD0B5DF89BF18BC6D7B69A3FC3EF83FE04B1B9D77C6FE2CD675297ECDA65ADBE97A6DBDEDEDBDBDDDCE228E7FB24F71705655D3ACEFE6864857F7D7FE0995FF0424D75FC5BE17FDB03FE0A7169A2F8D7E2DE9CF6DAE7C23FD95A092DB58F859F039CB25D5A6A5E388E2B8BDD1BC79E3EB775B771A5F9BAA786344BCB75BCBEBFF15EA71E90DE17FD3DFF00826EFF00C11FFF00669FF827569B71E2CD156FBE33FED33E28B329F10FF697F88F6D0DE78DF569AE" $FileBin &= "A255D4B4BF065A4D35FC3F0FFC277126F53A56977979ACEA76C2DA0F147893C442C74F369FAC75FCE3C7DE33BC551C4E43C0F2C460F2FAD09E1F1FC45562F0F9A6694A4B96A50C0534F9F29CBAAABA9BE6FED0C5D36A35E786A53A9847F6394F0DAA72862B3351A95A2D4E960E2F9A85092B38CAB3DB115A2D5D69EC69BD62A724AA20000600C01C003A01E9451457F3D1F5E145145001451450014515CE78C3C5BE1BF00784FC4FE3AF18EB167E1EF08F837C3FAC78ABC51AF6A32793A7E8BE1FD034FB8D5759D56F65C1F2ED2C34FB4B8BBB870AC56389C804F155084EA4E14E9C653A9394610841394E7393518C63149B94A52694524DB6D24AE54213A938" $FileBin &= "53A7194E7394610845394A7393518C631576E526D2496ADB491F871FF05E6FDB0B5AF84DF017C3BFB23FC24D585B7C75FDB0E6D43C1665B490FDAFC1DF05E0090FC4BF155D1898CB651EB36139F0A5A492223DCE9777E2DBED2E61A8787C18FF00023C13E10D1FC03E13D03C1DA0C3E4E95E1ED36DF4EB5C8512CE625CDC5E5C15015EEEFAE5A6BDBB900024B99E57C0DD8AC9D6FE32F897F6D7FDA6BE30FEDC3E3482F6D74DF1ADF4FE02F807E1BD487EFBC19F04BC2B7D7367A2429096923B6BFD6E559F53D5FECCC237D7AFBC4D796CED67ACAA8EFEBFB6F85786E1C1DC3780C81C62B306FF00B4B3FA91B373CDF134E29E15C97C54F2AC3AA78182BB8FD6" $FileBin &= "238CAD0B2AECFECCE17E1E8F0970EE07226A3F5F95B30CF2A46CDCF36C4538A9619C95F9A9E59414305049B8FB68E2AAC7F8CC28A28AF6CF6828A28A0028A28A0028A28A002BE99FF823FF00ECD67F6C5FDB5B5CFDA83C57A77F687C01FD8C2FDBC3BF0BD6E62F3349F19FED117F1477373AEDB655E1BD8BE1DD8791AC8903A1B7D5A7F87DAAD83C8AFA8463F3F7E33EB7E319ECFC29F09FE14D85C6B5F19FE3AF8A74CF85DF0C346B16D97926B5E24BBB7D327D5564C7FA2C1A5477D117D41CAC3A75CDD59DEDD14B482E248FFB70FD883F651F077EC51FB307C29FD9D7C1A2DAE63F03F87E26F14F8821B716F2F8BFC79AB31D4BC67E2CBA0419C9D635EB8B" $FileBin &= "C92C20B9926934CD1A3D33468E56B5D3ADD53E1BC4CE27FF0055B852AD0C354E4CE78A215F2DC172BB54C2E511B4337C72B6B09622328E5787969CCAB63A507CF8776F89F123893FD5AE17A9430F539337E258D7CBF07CAED530D9546D0CD71A9AD612C44651CB684B4728D6C64A0F9A81F58D14515FC807F2685145140051451400514514005145140057C5DFB76FECA775FB657C17D2BE0AA78961F08E9379F123C19E22F146B9E4B5CEA16FE17F0FCF7973AB43A15B18A4B79B5CBD4923B3D38DF14B1B592737B722E63B636575F68D1586270D471987AD85C443DA50C453952AD4DB694E9CD38CE2DA69A528B69B4D3D7469EA7979DE4D9771165198E459" $FileBin &= "BD0FAD6579AE16AE071F86E79D3588C2578F256A329D3946A463560DC24E128CB964F9651766BCAFE0B7C16F86FF00B3E7C37F0D7C28F851E1AB3F0BF82FC2F66B6D63636CBBEE2EEE1FE7BDD5F57BD7CDC6A9ACEA9705EEF53D4EEDE5BABCBA95E491F1B557D528A2B4A54A9D1A70A54610A54A9C630A74E9C5461084528C6318C52518C6292492B24AC75E0F0785CBF0B86C0E070D430782C1D0A586C2E170D4A1470F87C3D182A74A8D1A54D4614E9538463084211518C52495828A28AB3A428A28A0028A28A0028A28A0028A28A0028A28A002B0BC49E18F0DF8CB45BFF0E78B740D1FC4DE1FD4E136FA8E89AF69B67AB6957D0920F9775617D14F6D3A86" $FileBin &= "0197CC8895701970C01ADDA2AA139D39C2A539CA9D484A3384E12719C27169C650945A946516938C934D349A7726708548CA152319C271719C271528CA2D59C651926A516B469A69AD19F99BE39FF82567ECEBAE5FDCEB1F0EF59F88FF0005B53B96795A0F01F8AA59342799F967974BD7E0D56E922DE72B69A76ABA75A46A4C514291ED55F3587FE09425E609A97ED51F166E34DDC99B7B0D334ED36FCC58FDEA1D48EA57819DCFDC76B32B18CAB472E735FAF9457DD61FC4EE3CC2D15461C498DAB18C54633C5C30B8EAF14AD6E5C4E370F88C426AD64D55BA5A267C9D6E03E12AF55D5964986A7293E69470F531184A5277BB6E861AB51A2EFD7DCB3EA7C2" $FileBin &= "1F097FE09C5FB2E7C29D4E1F10CBE13D4BE26F8AADDE39A2F11FC57D4D7C5D711CF1E184F1E8C2D2C3C31E7A4AAB35BDD49A1CB7B6D22AB5BDCC6CB93F76A22C6A91A2AA2228554450AAAAA005545180AAA38000C018029D457CC66D9E6719EE2162B39CCF1B99D78A71854C6622A57F65076F728C67270A34F45FBBA518415B489EF65D94E5B94517432CC0E170349BBCA386A30A7CF2FE6A924B9EA4BFBD52529798514515E51E805145140051451400514514005145140051451400514514005727E3AF01F823E27F8475FF0087FF00123C23E1BF1EF81BC57A74DA4789BC1FE30D134EF11F86B5FD32E00F3AC357D1756B6BBD3AFED5CAAB795756F22891" $FileBin &= "12450244561D6515509CE94E1529CE54EA5394674EA424E1384E0D4A1384A2D4A328C929465169C5A4D34D09A524E3249C5A69A6934D35669A7A34D68D3D1A3F9CC9FF00E0D8CFF827ACDF1CCF8F9356F8D96FF0224D4D7C5137EC89078FF504F8392F8B96527ED2BA9F3E3A87C34D013BBC3E9E215D492E0F970789E1D1153415FE80BE1FFC3CF01FC27F06787BE1D7C31F06F863E1F780BC27A745A4F867C1DE0DD134EF0E786B41D360C98ECF4AD1B49B7B4B0B280333C8CB0409E64AF24D216964776EC68AFA1CF78BF8A389A9E0E8F1067D99E6F4B014D53C253C6E2AA56852D395D4E56F96A622714A35715554F135528AA9566A2ADC785CBB03829549" $FileBin &= "61309430F2AAEF3952A718B96B7E5BAD6304FE1A71B423AF2C55C28A28AF9C3B428A28A0028A28A0028A28A002BE4EFDB7FF0065A8FF006D0FD99BE23FECDD71F127C4DF0A2C7E23C3A1DAEA3E2EF0A5A5A6A1A8C7A7E91E22D2B5DBAD26E2C2F26B54BDD275B8F4C3A66AB6897B64F7165732C4F3B40F35BCFF0058D15D581C6E272DC6E1331C155F638CC0E2686330B5B92153D96230D5235A8D450AB19D39B8548464A3384A0ED6945ABA3AB058CC4E5D8CC2E3F0753D8E2F0588A38BC2D6E584DD2C461EA46AD1A8A15233A7270A908C94670945DAD28B5747F30FA5FF00C1B8BABE8BA6D868FA47FC143BE32E9DA5E97696D61A7585A7C31F0D436D6565" $FileBin &= "6912416D6D0449E2E0B1C30C31A2222F01540E4E6AFF00FC43B1E27FFA48DFC6EFFC36DE1DFF00E6BBDBF9FA9AFE9A68AFD15F8C9E244A4E52E228CA4DF34A4F26C85B6DB4DB6DE5776DB576FAB6CFBF7E2EF884DB6F3F4DB6DB6F29C95B6DEADB6F2EBB6DEADBDCFE65BFE21D8F13FF00D246FE377FE1B6F0EFFF0035DEDFCFD4D1FF0010EC789FFE9237F1BBFF000DB7877FF9AEF6FE7EA6BFA69A297FC463F11BFE8A1874FF00993641D2DFF52BFEEAFC45FF001173C41FFA1F47FF000D3927FF003B4FE65BFE21D8F13FFD246FE377FE1B6F0EFF00F35DEDFCFD4D1FF10EC789FF00E9237F1BBFF0DB7877FF009AEF6FE7EA6BFA69A28FF88C7E237FD143" $FileBin &= "0E9FF326C83A5BFEA57FDD5F887FC45CF107FE87D1FF00C34E49FF00CED3F996FF0088763C4FFF00491BF8DDFF0086DBC3BFFCD77B7F3F5347FC43B1E27FFA48DFC6EFFC36DE1DFF00E6BBDBF9FA9AFE9A68A3FE231F88DFF450C3A7FCC9B20E96FF00A95FF757E21FF1173C41FF00A1F47FF0D3927FF3B4FE65BFE21D8F13FF00D246FE377FE1B6F0EFFF0035DEDFCFD4D1FF0010EC789FFE9237F1BBFF000DB7877FF9AEF6FE7EA6BFA69A28FF0088C7E237FD1430E9FF00326C83A5BFEA57FDD5F887FC45CF107FE87D1FFC34E49FFCED3F117F621FF82297817F64BFDA1B4EFDA57C77F1FBC79FB48F8FBC23E16D5FC39F0D62F1BF86F47D074BF01DD788" $FileBin &= "924B3D73C49630D9EA3ABCF79AE4FA2CF7DA1D8CDE7D9DBD9D86B1ABB4D05F5D4BA74FA67EDD51457C667FC479DF1463A398E7D8FA9986321429E169D49D3A14614B0F49CA54E8D1A186A5470F469A94EA4DC695282954A93A92BCE7293F90CF788738E25C6ACC33BC74F1D8B8D1A786854953A34634E8527270A54A8E1E9D2A14A0A539CDC69D38A9549CEA4AF39CA4CA28A2BC43C60A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28" $FileBin &= "A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2803FFFD9" Return Binary($FileBin) EndFunc CVimgproc_c.au3 OpenCV contour_example.au3 OpenCVFcns.au3 CVTag.au3 CVConstants.au3 CVcore_c.au31 point
-
Skin UDF
mihelson83 reacted to Yashied for a topic
LAST VERSION - 0.2 03-Jan-15 Skin UDF allows you to create buttons from the predefined images (files, resources, etc.). I rewrote this library by using GDI+ (first version used GDI). This allowed add the many additional features and get rid of the problems related to the transparency. Nevertheless, the library has a beta status, so there is no detailed description of the functions. But I am sure that the example below gives complete information about the features of this library. I hope that many users will find it useful. If you will have any questions, please ask them in this thread. Available functions Skin Library v1.0 Skin.zip Example #Include <GUIConstantsEx.au3> #Include <Skin.au3> Global $Button[3] $hForm = GUICreate('MyGUI', 278, 106) GUICtrlCreatePic('background.bmp', 0, 0, 278, 106) GUICtrlSetState(-1, $GUI_DISABLE) ; Create buttons from PNG images (images should be located in the same folder as the script) $Button[0] = _Skin_AddButton(20 , 20, 66, 66, 'red_normal.png', 'red_hover.png', 'red_click.png', 'disable.png', 'alpha.png', 1) $Button[1] = _Skin_AddButton(106, 20, 66, 66, 'yellow_normal.png', 'yellow_hover.png', 'yellow_click.png', 'disable.png', 'alpha.png', 1) $Button[2] = _Skin_AddButton(192, 20, 66, 66, 'green_normal.png', 'green_hover.png', 'green_click.png', 'disable.png', 'alpha.png', 1) #cs ; Create buttons from GDI+ HBITMAP handles $Button[0] = _Skin_AddButtonEx(20 , 20, 64, 64, _GDIPlus_BitmapCreateFromFile('red_normal.png'), ..., 1, 1) $Button[1] = _Skin_AddButtonEx(104, 20, 64, 64, _GDIPlus_BitmapCreateFromFile('yellow_normal.png'), ..., 1, 1) $Button[2] = _Skin_AddButtonEx(188, 20, 64, 64, _GDIPlus_BitmapCreateFromFile('green_normal.png'), ..., 1, 1) #ce ; Disable "Yellow" button (Optional) _Skin_DisableButton($Button[1], 1) ; Enable keyboard input (Optional) _Skin_EnableKBInput(1) ; Set margins for dotted focus rectangle (Optional) For $i = 0 To 2 _Skin_SetFocusRect($Button[$i], 5, 5, 56, 56) Next ; Enable dotted focus rectangle (Optional) _Skin_EnableFocus(1) GUISetState() ; _Skin_Helper() must be called continuously in the main loop While 1 _Skin_Helper($hForm) $ID = GUIGetMsg() Switch $ID Case 0 ContinueLoop Case $GUI_EVENT_CLOSE ExitLoop Case $Button[0] ConsoleWrite('Red' & @CR) Case $Button[1] ConsoleWrite('Yellow' & @CR) Case $Button[2] ConsoleWrite('Green' & @CR) Case Else EndSwitch WEnd ; You must delete all created buttons before destroying the appropriate window ;~For $i = 0 To 2 ;~ _Skin_DeleteButton($Button[$i]) ;~Next1 point -
I needed this library to continue working on one or two of my projects. Hopefully it will be of use to someone else too. These functions attempt to perform accurate calculations for the largest Int-64 values, testing for integer overflow and resorting to floats when results go out of range. This library is primarily intended to be used with Int-32 or Int-64 values and it offers no advantage whatsoever to pass floats as parameters. It only makes sense if you intend to perform accurate calculations on large Int-64 values. I know this can be done using strings too, but I prefer not to speculate as to the difference in time penalties. ; #INDEX# ====================================================================================================================== ; Title .........: operator64 ; AutoIt Version : 3.3.14.0 ; Language ......: English ; Description ...: Helper functions for basic maths operations to be used with Int-32 and Int-64 numeric data types. ; Notes .........: Tests for integer overflow and attempts to correct for small inaccuracies affecting certain calculations. ; Return values are cast as Int-32 or Int-64 when possible, otherwise the result will be returned as a double. ; If it is not possible to return an Int-64 data type, the @extended flag is always set to non zero. ; Extended return values indicate that 100% accuracy cannot be guaranteed or that the result is ambiguous. ; The following values are valid for all functions in this library ; |@error = 1 The input or first operand is not an integer. ; |@error = 2 The second operand is not an integer. ; |@error = 3 Internal function error (ignore). ; |@extended = 1 The result is limited to double precision. ; |@extended = 2 The result is not an integer. ; |@extended = 3 The result is out of range for Int-64. ; |@extended = 4 The result is infinity. ; |@extended = 5 The result is an imaginary number. ; When an error occurs, the @extended flag is always set to non zero and a value returned regardless. ; Author(s) .....: czardas ; ============================================================================================================================== ; #CURRENT# ==================================================================================================================== ; _Abs64 ; _Add64 ; _Divide64 ; _Multiply64 ; _Power64 ; _Root64 ; _Subtract64 ; ============================================================================================================================== ; #INTERNAL_USE_ONLY#=========================================================================================================== ; __DoubleTo64 ; __Integer64 ; __OverflowDetect ; __Product64 ; __WholeNumberDivision ; ============================================================================================================================== ; #FUNCTION# =================================================================================================================== ; Name...........: _Abs64 ; Description ...: Returns the absolute value of an integer. ; Syntax.........: _Abs64($iInteger) ; Parameters.....; $iInteger - The integer to operate on. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The input parameter is not an integer. ; |@extended = 2 The result is not an integer. ; |@extended = 3 The absolute value (2^63) is out of range for Int-64. ; Author.........: czardas ; ============================================================================================================================== Func _Abs64($iInteger) $iInteger = __Integer64($iInteger) If @error Then Return SetError(1, 2, Abs($iInteger)) If $iInteger = 0x8000000000000000 Then Return SetExtended(3, Abs($iInteger)) Return $iInteger < 0 ? $iInteger *-1 : $iInteger EndFunc ;==> _Abs64 ; #FUNCTION# =================================================================================================================== ; Name...........: _Add64 ; Description ...: Adds two integers together. ; Syntax.........: _Add64($iOperand_1, $iOperand_2) ; Parameters.....; $iOperand_1 - The first operand. ; $iOperand_2 - The second operand. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The first parameter is not an integer. ; |@error = 2 The second parameter is not an integer. ; |@extended = 1 The result is limited to double precision. ; |@extended = 3 The result is out of range for Int-64. ; Author.........: czardas ; ============================================================================================================================== Func _Add64($iOperand_1, $iOperand_2) $iOperand_1 = __Integer64($iOperand_1) If @error Then Return SetError(1, 1, __DoubleTo64($iOperand_1 + $iOperand_2)) ; may still return an integer $iOperand_2 = __Integer64($iOperand_2) If @error Then Return SetError(2, 1, __DoubleTo64($iOperand_1 + $iOperand_2)) ; ditto Local $bOverflow, $nResult $bOverflow = __OverflowDetect('+', $iOperand_1, $iOperand_2, $nResult) Return SetExtended($bOverflow *3, $nResult) EndFunc ;==> _Add64 ; #FUNCTION# =================================================================================================================== ; Name...........: _Divide64 ; Description ...: Divides two integers. ; Syntax.........: _Divide64($iOperand_1, $iOperand_2) ; Parameters.....; $iOperand_1 - The first operand. ; $iOperand_2 - The second operand. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The first parameter is not an integer. ; |@error = 2 The second parameter is not an integer. ; |@extended = 1 The result is limited to double precision. ; |@extended = 2 The result is not an integer. ; |@extended = 4 The result is infinity. ; Author.........: czardas ; Comments ......; Due to internal rounding, errors may return an integer with the extended flag set to 2. This is not a bug! ; ============================================================================================================================== Func _Divide64($iOperand_1, $iOperand_2) $iOperand_1 = __Integer64($iOperand_1) If @error Then Return SetError(1, 1, __DoubleTo64($iOperand_1 / $iOperand_2)) ; may still return an integer $iOperand_2 = __Integer64($iOperand_2) If @error Then Return SetError(2, 1, __DoubleTo64($iOperand_1 / $iOperand_2)) ; as above If $iOperand_1 = 0x8000000000000000 Then ; this is not dealt with by the internal function If $iOperand_2 = 0x8000000000000000 Then Return 1 ; $iOperand_1 is divided by itself ; divide both values by 2 to remain within the specified range of the function __WholeNumberDivision() $iOperand_1 = 0xC000000000000000 ; -4611686018427387904 $iOperand_2 = __WholeNumberDivision($iOperand_2, 2) If @extended Then Return SetExtended(@extended, $iOperand_1 / $iOperand_2) EndIf Local $nResult = __WholeNumberDivision($iOperand_1, $iOperand_2) Return SetExtended(@extended, $nResult) EndFunc ;==> _Divide64 ; #FUNCTION# =================================================================================================================== ; Name...........: _Multiply64 ; Description ...: Multiplies two integers together. ; Syntax.........: _Multiply64($iOperand_1, $iOperand_2) ; Parameters.....; $iOperand_1 - The first operand. ; $iOperand_2 - The second operand. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The first parameter is not an integer. ; |@error = 2 The second parameter is not an integer. ; |@extended = 2 The result is not an integer. ; |@extended = 3 The result is out of range for Int-64. ; Author.........: czardas ; Comments ......; Due to internal rounding, errors may return an integer with the extended flag set to 2. This is not a bug! ; ============================================================================================================================== Func _Multiply64($iOperand_1, $iOperand_2) $iOperand_1 = __Integer64($iOperand_1) If @error Then Return SetError(1, 2, $iOperand_1 * $iOperand_2) $iOperand_2 = __Integer64($iOperand_2) If @error Then Return SetError(2, 2, $iOperand_1 * $iOperand_2) Local $iProduct = __Product64($iOperand_1, $iOperand_2) Return SetExtended(@extended, $iProduct) EndFunc ;==> _Multiply64 ; #FUNCTION# =================================================================================================================== ; Name...........: _Power64 ; Description ...: Raises an integer to the power of a second integer. ; Syntax.........: _Power64($iInteger, $iPower) ; Parameters.....; $iInteger - The integer to operate on. ; $iPower - The power to raise the integer to. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The first parameter is not an integer. ; |@error = 2 The second parameter is not an integer. ; |@extended = 1 The result is limited to double precision. ; |@extended = 3 The result is out of range for Int-64. ; Author.........: czardas ; ============================================================================================================================== Func _Power64($iInteger, $iPower) $iInteger = __Integer64($iInteger) If @error Then Return SetError(1, 1, $iInteger ^ $iPower) $iPower = __Integer64($iPower) If @error Then Return SetError(2, 1, $iInteger ^ $iPower) If $iInteger = 1 Or $iPower = 0 Then Return 1 If $iPower < 0 Or $iPower > 63 Then Return SetExtended(1, $iInteger ^ $iPower) Local $iTriggers = 0, $iCount = 0, $iPow = $iPower While $iPow > 1 If Mod($iPow, 2) Then $iPow -= 1 Else ; to reduce calls to __Product64() ; triggers indicate the product should be squared (see next loop) $iTriggers += 2 ^ $iCount ; set trigger $iPow /= 2 EndIf $iCount += 1 WEnd Local $iOperand, $iResult = $iInteger For $i = $iCount -1 To 0 Step -1 ; multiply the product either by itself or the original value $iOperand = BitAND($iTriggers, 2^$i) ? $iResult : $iInteger $iResult = __Product64($iResult, $iOperand) If @extended Then Return SetExtended(3, $iInteger ^ $iPower) Next Return $iResult EndFunc ;==> _Power64 ; #FUNCTION# =================================================================================================================== ; Name...........: _Root64 ; Description ...: Calculates the nth root of an integer. ; Syntax.........: _Root64($iInteger, $iRoot) ; Parameters.....; $iInteger - The integer to operate on. ; $iRoot - The root of the integer to calculate. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The first parameter is not an integer. ; |@error = 2 The second parameter is not an integer. ; |@extended = 1 The result is limited to double precision. ; |@extended = 2 The result is not an integer. ; |@extended = 5 The result is an imaginary number. ; Author.........: czardas ; Comments ......; _Root64() has limited application beyond forcing an integer return value whenever possible. ; Roots of negative integers return a defined value if one exists, otherwise the result is always undefined. ; ============================================================================================================================== Func _Root64($iInteger, $iRoot) $iInteger = __Integer64($iInteger) If @error Then Return SetError(1, 1, $iInteger ^ (1 / $iRoot)) $iRoot = __Integer64($iRoot) If @error Then Return SetError(2, 1, $iInteger ^ (1 / $iRoot)) If $iRoot > 63 Or $iRoot < 1 Then Return SetExtended(1, $iInteger ^ (1 / $iRoot)) ; out of range If $iRoot = 1 Then Return $iInteger Local $iSign = $iInteger < 0 ? -1 : 1 If $iSign = -1 And Not Mod($iRoot, 2) Then Return SetExtended(5, $iInteger ^ (1 / $iRoot)) ; undefined If $iInteger = 0x8000000000000000 Then ; here the absolute value cannot be represented by Int-64 ; a small set of defined return values are simply hard coded Local $aMaxRoot = [[3,-2097152],[7,-512],[9,-128],[21,-8],[63,-2]] ; there are only five cases For $i = 0 To 4 If $iRoot = $aMaxRoot[$i][0] Then Return $aMaxRoot[$i][1] Next Return SetExtended(2, $iInteger ^ (1 / $iRoot)) ; the return value is not an integer EndIf ; positive values are used to calculate the odd roots of negative integers Local $iOperand = $iSign = 1 ? $iInteger : $iInteger *-1 ; here the margin of error with Int() is probably too small to necessitate further processing Local $iReturn = Int($iOperand ^ (1 / $iRoot)) ; check the result Local $iCompare = $iReturn For $i = 2 To $iRoot $iCompare *= $iReturn Next ; the chances that this comparison will fail seem negligible - see comments above If $iCompare <> $iOperand Then Return SetExtended(2, $iInteger ^ (1 / $iRoot)) ; the return value is not an integer Return $iReturn * $iSign EndFunc ;==> _Root64 ; #FUNCTION# =================================================================================================================== ; Name...........: _Subtract64 ; Description ...: Subtracts one integer from another. ; Syntax.........: _Subtract64($iOperand_1, $iOperand_2) ; Parameters.....; $iOperand_1 - The first operand. ; $iOperand_2 - The second operand. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@error = 1 The first parameter is not an integer. ; |@error = 2 The second parameter is not an integer. ; |@extended = 1 The result is limited to double precision. ; |@extended = 3 The result is out of range for Int-64. ; Author.........: czardas ; ============================================================================================================================== Func _Subtract64($iOperand_1, $iOperand_2) $iOperand_1 = __Integer64($iOperand_1) If @error Then Return SetError(1, 1, __DoubleTo64($iOperand_1 - $iOperand_2)) ; may still return an integer $iOperand_2 = __Integer64($iOperand_2) If @error Then Return SetError(2, 1, __DoubleTo64($iOperand_1 - $iOperand_2)) ; ditto Local $bOverflow, $nResult $bOverflow = __OverflowDetect('-', $iOperand_1, $iOperand_2, $nResult) Return SetExtended($bOverflow *3, $nResult) EndFunc ;==> _Subtract64 #Region - Internal Functions ; #INTERNAL_USE_ONLY# ========================================================================================================== ; Name...........: __DoubleTo64 ; Description ...: Helper function - converts an integer value double to Int-32 or Int-64. ; Syntax.........: __DoubleTo64($nValue) ; Parameters.....; $nValue - The double to convert ; Return values .: Success returns Int-32 or Int-64 when the interpreter evaluates the converted double equal to the input. ; Failure returns the input parameter without any modification and sets the following flags: ; |@error = 3 Internal error (x2) ==> see comments in the code. ; |@extended = 2 Conversion failed ==> the return value is not an integer. ; Author ........: czardas ; Comments ......; Doubles representing integer values greater than 15 digits cannot be relied on for accuracy. ; ============================================================================================================================== Func __DoubleTo64($nValue) If Not IsNumber($nValue) Then Return SetError(3, 2, $nValue) ; the input is not a number. If $nValue > -1.0e+015 And $nValue < 1.0e+015 Then Local $iVal64 = Number($nValue, 2) ; convert to Int-64 If $iVal64 = $nValue Then ; check to see if conversion was a success [expected range +/- 5.62949953421311e+014] Return ($iVal64 > 2147483647 Or $iVal64 < -2147483648) ? $iVal64 : Number($iVal64, 1) ; Int-64 or Int-32 ElseIf $iVal64 -1 = $nValue Then ; attempt to adjust for inaccuracies [subject to possible change] Return $iVal64 -1 ElseIf $iVal64 +1 = $nValue Then ; as above Return $iVal64 +1 EndIf EndIf Return SetError(3, 2, $nValue) ; conversion failed EndFunc ;==> __DoubleTo64 ; #INTERNAL_USE_ONLY# ========================================================================================================== ; Name...........: __Integer64 ; Description ...: Checks if a number is an integer and converts doubles to Int-32 or Int-64 if the result appears unambiguous. ; Syntax.........: __Integer64($nParam) ; Parameters.....; $nParam - The number to test ; Return values .: Success returns Int-32 or Int-64 when the interpreter evaluates the returned integer equal to the input. ; Failure returns the input parameter without any modification and sets the following flags: ; |@error = 1 The input is not an integer. ; |@extended = 2 The return value is not an integer. ; Author ........: czardas ; Comments ......; Doubles representing integer values greater than 15 digits cannot be relied on for accuracy. ; ============================================================================================================================== Func __Integer64($nParam) If Not StringInStr(VarGetType($nParam), 'Int') Then Local $iInt64 = __DoubleTo64($nParam) ; attempt conversion If @error Then Return SetError(1, 2, $nParam) ; $fParam <> $iInt64 $nParam = $iInt64 ; float was compared as being equal to an integer EndIf Return $nParam EndFunc ;==> __Integer64 ; #INTERNAL_USE_ONLY# ========================================================================================================== ; Name...........: __OverflowDetect ; Description ...: Checks for integer overflow on execution of the expression. ; Syntax.........: __OverflowDetect($sOperator, $iOperand_1, $iOperand_2, $nResult) ; Parameters.....; $sOperator - May be +, - or *. ; $iOperand_1 - The first operand. ; $iOperand_2 - The second operand. ; $nResult - [ByRef] Result of executed expression. ; Return values .: Returns True if integer overflow occurs - otherwise returns False. Returns $nResult ByRef. ; Author ........: czardas ; Comments ......; Int-32 or Int-64 only. No error checks! ; ============================================================================================================================== Func __OverflowDetect($sOperator, $iOperand_1, $iOperand_2, ByRef $nResult) Local $iExecute, $fCompare Switch $sOperator Case '+' ; execute the expression $iExecute = $iOperand_1 + $iOperand_2 ; execute the expression with the operands converted to doubles $fCompare = Number($iOperand_1, 3) + Number($iOperand_2, 3) Case '-' ; as above $iExecute = $iOperand_1 - $iOperand_2 $fCompare = Number($iOperand_1, 3) - Number($iOperand_2, 3) Case '*' ; as above $iExecute = $iOperand_1 * $iOperand_2 $fCompare = Number($iOperand_1, 3) * Number($iOperand_2, 3) EndSwitch ; the results should be approximately equal Local $bReturn = StringFormat('%.14e', $iExecute) <> StringFormat('%.14e', $fCompare) ; %.15e is too sensitive $nResult = $bReturn ? $fCompare : $iExecute Return $bReturn EndFunc ;==> __OverflowDetect ; #INTERNAL_USE_ONLY# ========================================================================================================== ; Name...........: __Product64($iOperand_1, $iOperand_2) ; Description ...: Helper function - multiplies two Int-32 or Int-64 values together. ; Syntax.........: __Product64($iOperand_1, $iOperand_2) ; Parameters.....; $iOperand_1 - The first integer. ; $iOperand_2 - The second integer. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@extended = 3 The result is out of range for Int-64. ; Author.........: czardas ; Comments ......; Int-32 or Int-64 only. No error checks! ; ============================================================================================================================== Func __Product64($iOperand_1, $iOperand_2) Local $bOverflow, $nResult $bOverflow = __OverflowDetect('*', $iOperand_1, $iOperand_2, $nResult) Return SetExtended($bOverflow *3, $nResult) EndFunc ;==> __Product64 ; #INTERNAL_USE_ONLY# ========================================================================================================== ; Name...........: __WholeNumberDivision ; Description ...: Divides two integers. ; Syntax.........: __WholeNumberDivision($iDividend, $iDivisor) ; Parameters.....; $iDividend - The first operand. ; $iDivisor - The second operand. ; Return values .: Returns an Int-32, or Int-64, value. ; Failure returns the executed expression and sets the following flags: ; |@extended = 1 The result is limited to double precision. ; |@extended = 2 The result is not an integer. ; |@extended = 4 The result is infinity. ; Author ........: czardas ; Comments ......; Input is limited to +/- 9223372036854775807 for both consitency and compatibility with future libraries. ; May return an integer with the extended flag set to 2 due to internal rounding. This is not a bug! ; ============================================================================================================================== Func __WholeNumberDivision($iDividend, $iDivisor) ; Input ranges -9223372036854775807 To 9223372036854775807 If $iDivisor = 0 Then Return SetExtended(4, $iDividend / $iDivisor) ; division by zero Local $aDiv = [$iDividend, $iDivisor], _ $iSign = 1 For $i = 0 To 1 If $aDiv[$i] > 0x7FFFFFFFFFFFFFFF Or $aDiv[$i] < 0x8000000000000001 Then Return SetExtended(1, $iDividend / $iDivisor) ; input range exceeded If $aDiv[$i] < 0 Then ; force positive integers $aDiv[$i] *= -1 $iSign *= -1 ; to add back later EndIf Next If Mod($aDiv[0], $aDiv[1]) Then Return SetExtended(2, $iDividend / $iDivisor) ; not divisible If $aDiv[0] = 0 Then Return 0 If $aDiv[1] = 1 Then Return $aDiv[0] * $iSign Local $iDivision = Floor($aDiv[0] / $aDiv[1]), $iDifference, $iIntegral While $iDivision * $aDiv[1] > $aDiv[0] ; division is overstated $iDifference = ($aDiv[1] * $iDivision) - $aDiv[0] $iIntegral = Floor($iDifference / $aDiv[1]) ; avoid shooting beyond the target If $iIntegral = 0 Then $iIntegral = 1 ; prevents hanging in an infinite loop $iDivision -= $iIntegral WEnd While $iDivision * $aDiv[1] < $aDiv[0] ; division is understated $iDifference = $aDiv[0] - ($aDiv[1] * $iDivision) $iIntegral = Floor($iDifference / $aDiv[1]) ; as above If $iIntegral = 0 Then $iIntegral = 1 ; prevents hanging $iDivision += $iIntegral WEnd Return $iDivision * $iSign EndFunc ;==> __WholeNumberDivision #EndRegion The following tests need updating because values for @error and @extended have changed. #include 'operator64.au3' ConsoleWrite("Testing _Abs64()" & @LF) ; ==> Err Ext Result $test = _Abs64(0xC000000000000000) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 4611686018427387904 $test = _Abs64(0x8000000000000000) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 2 1 9.22337203685478e+018 $test = _Abs64(0x8000000000000001) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 9223372036854775807 $test = _Abs64(-0.123) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 1 1 0.123 ;=========================================================== ConsoleWrite(@LF & "Testing _Add64()" & @LF) $test = _Add64(0x7FFFFFFFFFFFFFFF, 1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 1 9.22337203685478e+018 $test = _Add64(0x7FFFFFFFFFFFFFFF, 0) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 9223372036854775807 $test = _Add64(0x7FFFFFFFFFFFFFFF, -1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 9223372036854775806 $test = _Add64(33, 15) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 48 ;=========================================================== ConsoleWrite(@LF & "Testing _Divide64()" & @LF) $test = _Divide64(0x7FFFFFFFFFFFFFFF, -1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 -9223372036854775807 $test = _Divide64(0x8000000000000000, -2) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 4611686018427387904 $test = _Divide64(10.0, 2) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 5 $test = _Divide64(9223372036854775552, -2) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 -4611686018427387776 $test = _Divide64(9223372036854775552, 0) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 2 1 1.#INF $test = _Divide64(675432.0097, -987) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 1 1 -684.328277304965 $test = _Divide64(6922337, 15) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 4 1 461489.133333333 ;=========================================================== ConsoleWrite(@LF & "Testing _Multiply64()" & @LF) $test = _Multiply64(9223372036854775552, -2) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 1 -1.84467440737096e+019 $test = _Multiply64(223372036854775552, 9) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 2010348331692979968 $test = _Multiply64(1.01, -1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 1 1 -1.01 ;=========================================================== ConsoleWrite(@LF & "Testing _Power64()" & @LF) $test = _Power64(-2.0, 63) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 -9223372036854775808 $test = _Power64(37, 12.0) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 6582952005840035281 $test = _Power64(17, 19) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 1 2.39072435685151e+023 ;=========================================================== ConsoleWrite(@LF & "Testing _Subtract64()" & @LF) $test = _Subtract64(1.0, 1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 0 $test = _Subtract64(0x8000000000000000, -1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 -9223372036854775807 $test = _Subtract64(0x8000000000000000, 0) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 0 -9223372036854775808 $test = _Subtract64(0x8000000000000000, 1) ConsoleWrite(@Error & @TAB & @Extended & @TAB & $test & @LF) ; ==> 0 1 -9.22337203685478e+018It's nice to try and figure out something like this for yourself, but it would be quite impossible without the hints and advice I receive from others when I take a wrong turn sometimes. So thanks to those people.1 point
-
Android UDF
DiscGolferPro reacted to Moriba for a topic
Hello, I created this UDF last year for my Orient Myanmar Language System. This UDF can control any Android devices. So used it wisely. ; #CURRENT# ===================================================================================================================== ; _Android_Call ; _Android_CommandExists ; _Android_Connect ; _Android_Dial ; _Android_FileExists ; _Android_Flash ; _Android_ForceStopPackage ; _Android_GetBatteryHealth ; _Android_GetBatteryLevel ; _Android_GetBatteryPlugType ; _Android_GetBatteryStatus ; _Android_GetBatteryTechnology ; _Android_GetBatteryTemperature ; _Android_GetBatteryVoltage ; _Android_GetDeviceID ; _Android_GetExternalStorageDirectory ; _Android_GetLegacyExternalStorageDirectory ; _Android_GetNetworkClass ; _Android_GetNetworkCountryISO ; _Android_GetNetworkOperator ; _Android_GetNetworkOperatorName ; _Android_GetNetworkType ; _Android_GetNetworkTypeName ; _Android_GetPackageInfo ; _Android_GetPhoneType ; _Android_GetProperty ; _Android_GetSerialNumber ; _Android_GetSIMCountryISO ; _Android_GetSIMOperator ; _Android_GetSIMOperatorName ; _Android_GetSIMState ; _Android_GetState ; _Android_HasBusyBox ; _Android_HasRootAccess ; _Android_Install ; _Android_IsAirplaneModeOn ; _Android_IsBatteryCharged ; _Android_IsBatteryLow ; _Android_IsBatteryPresent ; _Android_IsBootloader ; _Android_IsNetworkRoaming ; _Android_IsOffline ; _Android_IsOnline ; _Android_IsScreenOn ; _Android_Pull ; _Android_Push ; _Android_Reboot ; _Android_Remount ; _Android_Send ; _Android_SendSMS ; _Android_Shell ; _Android_StartActivity ; _Android_TakeSnapshot ; _Android_Uninstall ; _Android_WaitForDevice ; _Android_Wake ; _Android_WipeDataCache ; =============================================================================================================================== Download Android UDF (11.22.2014) Download ADB, Fastboot & AAPT Here I will accept whatever your suggestion. Can improve my UDF. I love AutoIt. It's so easy and powerful.1 point -
Func _IETagNameGetCollection(ByRef $oObject, $sTagName, $iIndex = -1) If Not IsObj($oObject) Then __IEConsoleWriteError("Error", "_IETagNameGetCollection", "$_IESTATUS_InvalidDataType") Return SetError($_IESTATUS_InvalidDataType, 1, 0) EndIf ; If Not __IEIsObjType($oObject, "browserdom") Then __IEConsoleWriteError("Error", "_IETagNameGetCollection", "$_IESTATUS_InvalidObjectType") Return SetError($_IESTATUS_InvalidObjectType, 1, 0) EndIf Local $oTemp If __IEIsObjType($oObject, "documentcontainer") Then $oTemp = _IEDocGetObj($oObject) Else $oTemp = $oObject EndIf $iIndex = Number($iIndex) Select Case $iIndex = -1 Return SetError($_IESTATUS_Success, $oTemp.GetElementsByTagName($sTagName).length, _ $oTemp.GetElementsByTagName($sTagName)) Case $iIndex > -1 And $iIndex < $oTemp.GetElementsByTagName($sTagName).length Return SetError($_IESTATUS_Success, $oTemp.GetElementsByTagName($sTagName).length, _ $oTemp.GetElementsByTagName($sTagName).item($iIndex)) Case $iIndex < -1 __IEConsoleWriteError("Error", "_IETagNameGetCollection", "$_IESTATUS_InvalidValue", "$iIndex < -1") Return SetError($_IESTATUS_InvalidValue, 3, 0) Case Else __IEConsoleWriteError("Error", "_IETagNameGetCollection", "$_IESTATUS_NoMatch") Return SetError($_IESTATUS_NoMatch, 0, 0) ; Could be caused by parameter 2, 3 or both EndSelect EndFunc ;==>_IETagNameGetCollectionYou would have to use objects with Internet Explorer then you maybe could create them. How to do this can often be really hard search around maybe someone got a IE UDF with the Functions you are seeking for ;3 Thats what i found in IE.au3 Include~ Func _IEFrameGetCollection(ByRef $oObject, $iIndex = -1) If Not IsObj($oObject) Then __IEConsoleWriteError("Error", "_IEFrameGetCollection", "$_IESTATUS_InvalidDataType") Return SetError($_IESTATUS_InvalidDataType, 1, 0) EndIf ; $iIndex = Number($iIndex) Select Case $iIndex = -1 Return SetError($_IESTATUS_Success, $oObject.document.parentwindow.frames.length, _ $oObject.document.parentwindow.frames) Case $iIndex > -1 And $iIndex < $oObject.document.parentwindow.frames.length Return SetError($_IESTATUS_Success, $oObject.document.parentwindow.frames.length, _ $oObject.document.parentwindow.frames.item($iIndex)) Case $iIndex < -1 __IEConsoleWriteError("Error", "_IEFrameGetCollection", "$_IESTATUS_InvalidValue", "$iIndex < -1") Return SetError($_IESTATUS_InvalidValue, 2, 0) Case Else __IEConsoleWriteError("Warning", "_IEFrameGetCollection", "$_IESTATUS_NoMatch") Return SetError($_IESTATUS_NoMatch, 2, 0) EndSelect EndFunc ;==>_IEFrameGetCollection I hope that was helpfull ;31 point
-
I believe FileRead is reading a set number of characters from the entire file. You can read one line at a time with FileReadLine and then use string methods to parse the characters one at a time for each line. @‌Danyfirex has the solution1 point
-
1 point
-
Wonderful idea! Is it you please open the browser by default, and not systematically IE... Kind regards M.C.1 point
-
Still I need to hear what you are talking about, else i can't sit watching you doing something with your GUI1 point
-
kcvinu, I posted this - as a joke - because I can't imagine how to use _ArrayAdd in a shorter way, except as said Melba by using the default delimiter1 point
-
Loop through files and open up to 4 instances of notepad.
Darkflame808 reacted to jguinch for a topic
Glad to help1 point -
Loop through files and open up to 4 instances of notepad.
Darkflame808 reacted to jguinch for a topic
I'm not sure of what you need, but try this (look at the console in Scite) #Include <File.au3> Local $iMaxNotepad = 4 Local $aPids[$iMaxNotepad], $iFileIndex = 0 Local $aFiles = _FileListToArray("c:\received", "*txt", 1, True) _ArrayDisplay($aFiles) While $iFileIndex < $aFiles[0] For $i = 0 To $iMaxNotepad - 1 If $aPids[$i] <> "" AND Not ProcessExists($aPids[$i]) Then $aPids[$i] = "" ConsoleWrite("PID=" & $aPids[$i] & " closed." & @CRLF) EndIf If $aPids[$i] = "" Then $iFileIndex += 1 $aPids[$i] = Run("notepad " & $aFiles[$iFileIndex]) ConsoleWrite("Opening " & $aFiles[$iFileIndex] & " (PID=" & $aPids[$i] & ")" & @CRLF) EndIf Next WEnd1 point -
Project to search for binary data in three different ways using assembly language Three ways - Search for a binary - Search for a binary using the callback function - Search for a binary using the data structure Find very fast .. Greetings Project Files ASM_BinarySearch.zip ASM_BinarySearch.au3 #include <WinAPI.au3> Global $MsvcrtDll = _WinAPI_LoadLibrary( "msvcrt.dll" ) Global $Mmove = _WinAPI_GetProcAddress($MsvcrtDll,"memmove") Global $Malloc = _WinAPI_GetProcAddress($MsvcrtDll,"malloc") Global $FreeMemy = _WinAPI_GetProcAddress($MsvcrtDll,"free") Global $DwordSize=DllStructGetSize(DllStructCreate("DWORD")) Global $PointerSize=DllStructGetSize(DllStructCreate("PTR")) Global $AddressBinarySearch = LoadBinarySearch() Global $AddressBinarySearchPtr = DllStructGetPtr($AddressBinarySearch) Global $AddressCallbackBinarySearch = LoadCallbackBinarySearch() Global $AddressCallbackBinarySearchPtr = DllStructGetPtr($AddressCallbackBinarySearch) Global $AddressXBinarySearch = LoadXBinarySearch() Global $AddressXBinarySearchPtr = DllStructGetPtr($AddressXBinarySearch) Func BinarySearch($DataPtr,$SubDataPtr,$DataPtrSize,$SubDataPtrSize,$Step = 1) ; $Step Loop Step if ($SubDataPtrSize < 1) Or ($DataPtrSize < 1) Or ($SubDataPtrSize > $DataPtrSize) Then Return SetError(1,0,0) Local $MaxPosition = ($DataPtrSize - $SubDataPtrSize) $Return = DllCallAddress("DWORD",$AddressBinarySearchPtr,"DWORD",$MaxPosition, _ "DWORD",$DataPtrSize,"DWORD",$SubDataPtrSize,"PTR",$DataPtr,"PTR",$SubDataPtr,"DWORD",$Step) if @error Then Return SetError(2,0,0) Return $Return[0] ; Return FindPosition // OffSetPosition = FindPosition - 1 EndFunc Func CallbackBinarySearch($DataPtr,$SubDataPtr,$CbFuncName,$DataPtrSize,$SubDataPtrSize,$Step = 1) ; $Step Loop Step ;$CbFuncName ;Func CallbackFunc($FindPosition,$OffSetPosition,$DataPtr,$SubDataPtr,$DataPtrSize,$SubDataPtrSize) ;MsgBox(0,"OffSetPosition = " & $OffSetPosition ,"FindPosition = " & $FindPosition) ;Return 1 ;return ;0 ; Stop ;Other Ways : Continue ;EndFunc if ($SubDataPtrSize < 1) Or ($DataPtrSize < 1) Or ($SubDataPtrSize > $DataPtrSize) Then Return SetError(1,0,False) Local $RegCallbackFunc = DllCallbackRegister($CbFuncName,"DWORD","DWORD;DWORD;PTR;PTR;DWORD;DWORD") if @error Then Return SetError(2,0,False) Local $CkFuncPtr = DllCallbackGetPtr($RegCallbackFunc) Local $MaxPosition = ($DataPtrSize - $SubDataPtrSize) Local $StepTest = $Step >= $SubDataPtrSize $Return = DllCallAddress("DWORD",$AddressCallbackBinarySearchPtr,"DWORD",$MaxPosition,"DWORD", _ $DataPtrSize,"DWORD",$SubDataPtrSize,"PTR",$DataPtr,"PTR",$SubDataPtr,"PTR",$CkFuncPtr,"DWORD",$Step,"DWORD",$StepTest) if @error Then DllCallbackFree($RegCallbackFunc) Return SetError(3,0,False) EndIf DllCallbackFree($RegCallbackFunc) Return True ; Return BOOL EndFunc Func XBinarySearch($DataPtr,$SubDataPtr,$DataPtrSize,$SubDataPtrSize,$Step = 1) ; $Step Loop Step if ($SubDataPtrSize < 1) Or ($DataPtrSize < 1) Or ($SubDataPtrSize > $DataPtrSize) Then Return SetError(1,0,False) Local $tagReturnStruct = "DWORD ArrayCount;PTR PositionArray" Local $ReturnStruct = DllStructCreate($tagReturnStruct) Local $RtStructPtr = DllStructGetPtr($ReturnStruct) Local $MaxPosition = ($DataPtrSize - $SubDataPtrSize) Local $StepTest = $Step >= $SubDataPtrSize Local $Return = DllCallAddress("DWORD",$AddressXBinarySearchPtr,"DWORD",$MaxPosition,"DWORD",$DataPtrSize, _ "DWORD",$SubDataPtrSize,"PTR",$DataPtr,"PTR",$SubDataPtr,"PTR",$RtStructPtr,"DWORD",$Step,"DWORD",$StepTest) if @error Then Return SetError(2,0,0) Local $ArrayCount = DllStructGetData($ReturnStruct,1) Local $PosonArray = DllStructGetData($ReturnStruct,2) if ($ArrayCount = 0) Then Return SetError(3,0,0) Local $tagReturnStruct = "DWORD ArrayCount;DWORD PositionArray[" & $ArrayCount & "]" Local $ReturnStruct = DllStructCreate($tagReturnStruct) Local $NewPosonArray = DllStructGetPtr($ReturnStruct,2) DllStructSetData($ReturnStruct,1,$ArrayCount) DllCallAddress("ptr:cdecl",$Mmove,"ptr",$NewPosonArray,"ptr",$PosonArray,"int",($ArrayCount * $DwordSize)) DllCallAddress("none:cdecl",$FreeMemy,"ptr",$PosonArray) Return $ReturnStruct ; Return Struct of FindPosition // tagStruct = "DWORD ArrayCount;DWORD PositionArray[" & ArrayCount & "]" EndFunc Func LoadBinarySearch() Local $TA,$TB,$TC,$Start,$JGEnd,$JZTC,$TBJNZ,$JMPTA,$JMPStart,$End Local $OffSetMaxPosition = $PointerSize Local $OffSetDataPtrSize = ($OffSetMaxPosition + $DwordSize) Local $OffSetSubDataPtrSize = ($OffSetDataPtrSize + $DwordSize) Local $OffSetDataPtr = ($OffSetSubDataPtrSize + $DwordSize) Local $OffSetSubDataPtr = ($OffSetDataPtr + $PointerSize) Local $OffSetStep = ($OffSetSubDataPtr + $PointerSize) For $i = 1 To 2 $_ASMCode = "0x" $_ASMCode &= "BF" & HexBinary(0) ;mov edi,0 $_ASMCode &= "8B7424" & Hex($OffSetSubDataPtrSize,2) ;mov esi,[esp + $OffSetSubDataPtrSize] $_ASMCode &= "8B5C24" & Hex($OffSetDataPtr,2) ;mov ebx,[esp + $OffSetDataPtr] $_ASMCode &= "8B4424" & Hex($OffSetSubDataPtr,2) ;mov eax,[esp + $OffSetSubDataPtr] ; $Start: // $Start = BinaryLen($_ASMCode) $_ASMCode &= "BA" & HexBinary(0) ;mov edx,0 ; TA: // $TA = BinaryLen($_ASMCode) $_ASMCode &= "3BF2";CMP esi,edx $_ASMCode &= "74" & Hex(($TC - $JZTC),2) ;JZ $TC; $JZTC = BinaryLen($_ASMCode) $_ASMCode &= "8A2C10" ;mov CH,[eax + edx]; $_ASMCode &= "3A2C13" ;CMP CH,[ebx + edx] $_ASMCode &= "75" & Hex(($TB - $TBJNZ),2) ;JNZ TB $TBJNZ = BinaryLen($_ASMCode) $_ASMCode &= "83C2" & Hex(1,2) ;add edx,1 $JMPTA = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPTA - $TA) + 5)) ;JMP TA ; TB: // $TB = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetStep,2) ;add edi,[esp + $OffSetStep] $_ASMCode &= "3B7C24" & Hex($OffSetMaxPosition,2) ;CMP edi,[esp + $OffSetMaxPosition] $_ASMCode &= "7F" & Hex(($End - $JGEnd),2) ;JG End $JGEnd = BinaryLen($_ASMCode) $_ASMCode &= "035C24" & Hex($OffSetStep,2) ;add ebx,[esp + $OffSetStep] $JMPStart = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStart - $Start) + 5)) ;JMP Start ; TC: // $TC = BinaryLen($_ASMCode) $_ASMCode &= "83C7" & Hex(1,2) ;add edi,1 $_ASMCode &= "8BC7" ;mov eax,edi $_ASMCode &= "C2" & Hex((($PointerSize * 2) + ($DwordSize * 4)),2) & Hex(0,2) ;ret (($PointerSize * 2) + ($DwordSize * 3)) & "00" // Args Size ; End: // $End = BinaryLen($_ASMCode) $_ASMCode &= "B8" & HexBinary(0) ;mov eax,0 $_ASMCode &= "C2" & Hex((($PointerSize * 2) + ($DwordSize * 4)),2) & Hex(0,2) ;ret (($PointerSize * 2) + ($DwordSize * 3)) & "00" // Args Size Next $Address = DllStructCreate("byte[" & BinaryLen($_ASMCode) & "]") DllStructSetData($Address,1,$_ASMCode) Return $Address EndFunc Func LoadCallbackBinarySearch() Local $TA,$TB,$TC,$Start,$JGEnd,$JZTC,$TBJNZ,$JMPTA,$JMPStartA,$JMPStartB,$End,$JZEnd,$JGEnd2,$JZTD,$TD,$JGEnd3,$JMPStartC Local $OffSetMaxPosition = $PointerSize Local $OffSetDataPtrSize = ($OffSetMaxPosition + $DwordSize) Local $OffSetSubDataPtrSize = ($OffSetDataPtrSize + $DwordSize) Local $OffSetDataPtr = ($OffSetSubDataPtrSize + $DwordSize) Local $OffSetSubDataPtr = ($OffSetDataPtr + $PointerSize) Local $OffSetCkFuncPtr = ($OffSetSubDataPtr + $PointerSize) Local $OffSetStep = ($OffSetCkFuncPtr + $PointerSize) Local $OffSetStepTest = ($OffSetStep + $DwordSize) For $i = 1 To 2 $_ASMCode = "0x" $_ASMCode &= "BF" & HexBinary(0) ;mov edi,0 $_ASMCode &= "8B7424" & Hex($OffSetMaxPosition,2) ;mov esi,[esp + $OffSetMaxPosition] $_ASMCode &= "8B5C24" & Hex($OffSetDataPtr,2) ;mov ebx,[esp + $OffSetDataPtr] $_ASMCode &= "8B4C24" & Hex($OffSetSubDataPtr,2) ;mov ecx,[esp + $OffSetSubDataPtr] ; $Start: // $Start = BinaryLen($_ASMCode) $_ASMCode &= "BA" & HexBinary(0) ;mov edx,0 ; TA: // $TA = BinaryLen($_ASMCode) $_ASMCode &= "3B5424" & Hex($OffSetSubDataPtrSize,2) ;CMP edx,[esp + $OffSetSubDataPtrSize] $_ASMCode &= "74" & Hex(($TC - $JZTC),2) ;JZ $TC; $JZTC = BinaryLen($_ASMCode) $_ASMCode &= "8A2413" ;mov AH,[ebx + edx] $_ASMCode &= "3A2411" ;CMP AH,[ecx + edx] $_ASMCode &= "75" & Hex(($TB - $TBJNZ),2) ;JNZ TB $TBJNZ = BinaryLen($_ASMCode) $_ASMCode &= "83C2" & Hex(1,2) ;add edx,1 $JMPTA = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPTA - $TA) + 5)) ;JMP TA ; TB: // $TB = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetStep,2) ;add edi,[esp + $OffSetStep] $_ASMCode &= "3BFE" ;CMP edi,esi $_ASMCode &= "7F" & Hex(($End - $JGEnd),2) ;JG End $JGEnd = BinaryLen($_ASMCode) $_ASMCode &= "035C24" & Hex($OffSetStep,2) ;add ebx,[esp + $OffSetStep] $JMPStartA = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartA - $Start) + 5)) ;JMP Start ; TC: // $TC = BinaryLen($_ASMCode) $_ASMCode &= "8B4424" & Hex($OffSetCkFuncPtr,2) ;mov eax,[esp + $OffSetCkFuncPtr] $_ASMCode &= "FF7424" & Hex($OffSetSubDataPtrSize,2) ;push [esp + $OffSetSubDataPtrSize] $_ASMCode &= "FF7424" & Hex($OffSetDataPtrSize,2) ;push [esp + $OffSetDataPtrSize] $_ASMCode &= "FF7424" & Hex($OffSetSubDataPtr,2) ;push [esp + $OffSetSubDataPtr] $_ASMCode &= "FF7424" & Hex($OffSetDataPtr,2) ;push [esp + $OffSetDataPtr] $_ASMCode &= "57" ;push edi; $_ASMCode &= "83C7" & Hex(1,2) ;add edi,1 $_ASMCode &= "57" ;push edi; $_ASMCode &= "83EF" & Hex(1,2) ;sub edi,1 $_ASMCode &= "FFD0" ;call eax $_ASMCode &= "83F8" & Hex(0,2);CMP eax,0 $_ASMCode &= "74" & Hex(($End - $JZEnd),2) ;JZ $End; $JZEnd = BinaryLen($_ASMCode) $_ASMCode &= "8B4424" & Hex($OffSetStepTest,2) ;mov eax,[esp + $OffSetStepTest] $_ASMCode &= "83F8" & Hex(1,2);CMP eax,1 $_ASMCode &= "74" & Hex(($TD - $JZTD),2) ;JZ $TD; $JZTD = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetSubDataPtrSize,2) ;add edi,[esp + $OffSetSubDataPtrSize] $_ASMCode &= "3BFE" ;CMP edi,esi $_ASMCode &= "7F" & Hex(($End - $JGEnd3),2) ;JG End $JGEnd3 = BinaryLen($_ASMCode) $_ASMCode &= "035C24" & Hex($OffSetSubDataPtrSize,2) ;add ebx,[esp + $OffSetSubDataPtrSize] $_ASMCode &= "8B4C24" & Hex($OffSetSubDataPtr,2) ;mov ecx,[esp + $OffSetSubDataPtr] $JMPStartC = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartC - $Start) + 5)) ;JMP Start ; TD: // $TD = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetStep,2) ;add edi,[esp + $OffSetStep] $_ASMCode &= "3BFE" ;CMP edi,esi $_ASMCode &= "7F" & Hex(($End - $JGEnd2),2) ;JG End $JGEnd2 = BinaryLen($_ASMCode) $_ASMCode &= "035C24" & Hex($OffSetStep,2) ;add ebx,[esp + $OffSetStep] $_ASMCode &= "8B4C24" & Hex($OffSetSubDataPtr,2) ;mov ecx,[esp + $OffSetSubDataPtr] $JMPStartB = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartB - $Start) + 5)) ;JMP Start ; End: // $End = BinaryLen($_ASMCode) $_ASMCode &= "B8" & HexBinary(0) ;mov eax,0 $_ASMCode &= "C2" & Hex((($PointerSize * 3) + ($DwordSize * 5)),2) & Hex(0,2) ;ret (($PointerSize * 3) + ($DwordSize * 5)) & "00" // Args Size Next $Address = DllStructCreate("byte[" & BinaryLen($_ASMCode) & "]") DllStructSetData($Address,1,$_ASMCode) Return $Address EndFunc Func LoadXBinarySearch() Local $TA,$TB,$TC,$TD,$Start,$JGEnd,$JZTC,$TBJNZ,$JMPTA,$JMPStartA,$JMPStartB Local $JMPStartC ,$End,$JZEnd,$JZTD,$TE,$JZTE,$JMPStartD,$TF,$JZTF,$JMPStartE Local $OffSetMaxPosition = $PointerSize Local $OffSetDataPtrSize = ($OffSetMaxPosition + $DwordSize) Local $OffSetSubDataPtrSize = ($OffSetDataPtrSize + $DwordSize) Local $OffSetDataPtr = ($OffSetSubDataPtrSize + $DwordSize) Local $OffSetSubDataPtr = ($OffSetDataPtr + $PointerSize) Local $OffSetRtStPtr = ($OffSetSubDataPtr + $PointerSize) Local $OffSetStep = ($OffSetRtStPtr + $PointerSize) Local $OffSetStepTest = ($OffSetStep + $DwordSize) For $i = 1 To 2 $_ASMCode = "0x" $_ASMCode &= "BF" & HexBinary(0) ;mov edi,0 ;$Start: // $Start = BinaryLen($_ASMCode) $_ASMCode &= "8B4424" & Hex($OffSetMaxPosition,2) ;mov eax,[esp + $OffSetMaxPosition] $_ASMCode &= "3BF8" ;CMP edi,eax $_ASMCode &= "0F8F" & HexBinary(($End - $JGEnd)) ;JG End $JGEnd = BinaryLen($_ASMCode) $_ASMCode &= "BE" & HexBinary(0) ;mov esi,0 ; TA: // $TA = BinaryLen($_ASMCode) $_ASMCode &= "8B4424" & Hex($OffSetSubDataPtrSize,2) ;mov eax,[esp + $OffSetSubDataPtrSize] $_ASMCode &= "3BF0" ;CMP esi,eax $_ASMCode &= "74" & Hex(($TC - $JZTC),2) ;JZ $TC; $JZTC = BinaryLen($_ASMCode) $_ASMCode &= "8B5C24" & Hex($OffSetDataPtr,2) ;mov ebx,[esp + $OffSetDataPtr] $_ASMCode &= "03DF" ;add ebx,edi $_ASMCode &= "03DE" ;add ebx,esi $_ASMCode &= "8A0B" ;mov CL,[ebx]; $_ASMCode &= "8B5C24" & Hex($OffSetSubDataPtr,2) ;mov ebx,[esp + $OffSetSubDataPtr] $_ASMCode &= "03DE" ;add ebx,esi $_ASMCode &= "8A2B" ;mov CH,[ebx]; $_ASMCode &= "3ACD" ;CMP CL,CH $_ASMCode &= "75" & Hex(($TB - $TBJNZ),2) ;JNZ TE $TBJNZ = BinaryLen($_ASMCode) $_ASMCode &= "83C6" & Hex(1,2) ;add esi,1 $JMPTA = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPTA - $TA) + 5)) ;JMP TA ; TB: // $TB = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetStep,2) ;add edi,[esp + $OffSetStep] $JMPStartA = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartA - $Start) + 5)) ;JMP Start ; TC: // $TC = BinaryLen($_ASMCode) $_ASMCode &= "8B4424" & Hex($OffSetRtStPtr,2) ;mov eax,[esp + $OffSetRtStPtr] $_ASMCode &= "8B00" ;mov eax,[eax] $_ASMCode &= "83F8" & Hex(0,2);CMP eax,0 $_ASMCode &= "74" & Hex(($TD - $JZTD),2) ;JZ $TD $JZTG = BinaryLen($_ASMCode) $_ASMCode &= "83C7" & Hex(1,2) ;add edi,1 $_ASMCode &= "8B4424" & Hex($OffSetRtStPtr,2) ;mov eax,[esp + $OffSetRtStPtr] $_ASMCode &= "8B00" ;mov eax,[eax] $_ASMCode &= "83C0" & Hex(1,2) ;add eax,1 $_ASMCode &= "B9" & HexBinary($DwordSize) ;mov ecx,$DwordSize $_ASMCode &= "F7E1" ;MUL ecx; $_ASMCode &= "50" ;push eax $_ASMCode &= "B8" & HexBinary($Malloc) ;mov eax,$Malloc $_ASMCode &= "FFD0" ;call eax $_ASMCode &= "83C4" & Hex($DwordSize,2) ;add esp,$DwordSize $_ASMCode &= "8BD8" ;mov ebx,eax $_ASMCode &= "8B4424" & Hex($OffSetRtStPtr,2) ;mov eax,[esp + $OffSetRtStPtr] $_ASMCode &= "8B00" ;mov eax,[eax] $_ASMCode &= "B9" & HexBinary($DwordSize) ;mov ecx,$DwordSize $_ASMCode &= "F7E1" ;MUL ecx; $_ASMCode &= "50" ;push eax $_ASMCode &= "8B4424" & Hex(($OffSetRtStPtr + $DwordSize),2) ;mov eax,[esp + ($OffSetRtStPtr + $DwordSize)] $_ASMCode &= "83C0" & Hex($DwordSize,2) ;add eax,$DwordSize $_ASMCode &= "8B00" ;mov eax,[eax] $_ASMCode &= "50" ;push eax $_ASMCode &= "53" ;push ebx $_ASMCode &= "B8" & HexBinary($Mmove) ;mov eax,$Mmove $_ASMCode &= "FFD0" ;call eax $_ASMCode &= "83C4" & Hex((($PointerSize * 2) + $DwordSize),2) ;add esp,(($PointerSize * 2) + $DwordSize) $_ASMCode &= "8B4424" & Hex($OffSetRtStPtr,2) ;mov eax,[esp + $OffSetRtStPtr] $_ASMCode &= "83C0" & Hex($DwordSize,2) ;add eax,$DwordSize $_ASMCode &= "8B00" ;mov eax,[eax] $_ASMCode &= "50" ;push eax $_ASMCode &= "B8" & HexBinary($FreeMemy) ;mov eax,$FreeMemy $_ASMCode &= "FFD0" ;call eax $_ASMCode &= "83C4" & Hex($PointerSize,2) ;add esp,$PointerSize $_ASMCode &= "8B4424" & Hex($OffSetRtStPtr,2) ;mov eax,[esp + $OffSetRtStPtr] $_ASMCode &= "8B00" ;mov eax,[eax] $_ASMCode &= "B9" & HexBinary($DwordSize) ;mov ecx,$DwordSize $_ASMCode &= "F7E1" ;MUL ecx; $_ASMCode &= "893C03" ;mov [ebx + eax],edi $_ASMCode &= "8B4424" & Hex($OffSetRtStPtr,2) ;mov eax,[esp + $OffSetRtStPtr] $_ASMCode &= "8000" & Hex(1,2) ;add [eax],1 $_ASMCode &= "83C0" & Hex($DwordSize,2) ;add eax,$DwordSize $_ASMCode &= "8918" ;mov [eax],ebx $_ASMCode &= "83EF" & Hex(1,2) ;sub edi,1 $_ASMCode &= "8B4424" & Hex($OffSetStepTest,2) ;mov eax,[esp + $OffSetStepTest] $_ASMCode &= "83F8" & Hex(1,2);CMP eax,1 $_ASMCode &= "74" & Hex(($TF - $JZTF),2) ;JZ $TF; $JZTF = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetSubDataPtrSize,2) ;add edi,[esp + $OffSetSubDataPtrSize] $JMPStartE = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartE - $Start) + 5)) ;JMP Start ; TF: // $TF = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetStep,2) ;add edi,[esp + $OffSetStep] $JMPStartB = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartB - $Start) + 5)) ;JMP Start ; $TD: // $TD = BinaryLen($_ASMCode) $_ASMCode &= "83C7" & Hex(1,2) ;add edi,1 $_ASMCode &= "BB" & HexBinary($DwordSize) ;mov ebx,$DwordSize $_ASMCode &= "53" ;push ebx $_ASMCode &= "B8" & HexBinary($Malloc) ;mov eax,$Malloc $_ASMCode &= "FFD0" ;call eax $_ASMCode &= "83C4" & Hex($DwordSize,2) ;add esp,$DwordSize $_ASMCode &= "8938" ;mov [eax],edi $_ASMCode &= "8B5C24" & Hex($OffSetRtStPtr,2) ;mov ebx,[esp + $OffSetRtStPtr] $_ASMCode &= "C603" & Hex(1,2) ;mov [ebx],1 $_ASMCode &= "83C3" & Hex($DwordSize,2) ;add ebx,$DwordSize $_ASMCode &= "8903" ;mov [ebx],eax $_ASMCode &= "83EF" & Hex(1,2) ;sub edi,1 $_ASMCode &= "8B4424" & Hex($OffSetStepTest,2) ;mov eax,[esp + $OffSetStepTest] $_ASMCode &= "83F8" & Hex(1,2);CMP eax,1 $_ASMCode &= "74" & Hex(($TE - $JZTE),2) ;JZ $TE; $JZTE = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetSubDataPtrSize,2) ;add edi,[esp + $OffSetSubDataPtrSize] $JMPStartD = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartD - $Start) + 5)) ;JMP Start ; $TE: // $TE = BinaryLen($_ASMCode) $_ASMCode &= "037C24" & Hex($OffSetStep,2) ;add edi,[esp + $OffSetStep] $JMPStartC = BinaryLen($_ASMCode) $_ASMCode &= "E9" & HexBinary(-(($JMPStartC - $Start) + 5)) ;JMP Start ; End: // $End = BinaryLen($_ASMCode) $_ASMCode &= "B8" & HexBinary(0) ;mov eax,0 $_ASMCode &= "C2" & Hex((($PointerSize * 3) + ($DwordSize * 5)),2) & Hex(0,2) ;ret (($PointerSize * 3) + ($DwordSize * 3)) & "00" // Args Size Next $Address = DllStructCreate("byte[" & BinaryLen($_ASMCode) & "]") DllStructSetData($Address,1,$_ASMCode) Return $Address EndFunc Func HexBinary($Value) Return Hex(Binary($Value)) EndFunc ColorSearch.au3 #include <WinAPI.au3> #include <Memory.au3> #include <Color.au3> #include <ScreenCapture.au3> #include "ASM_BinarySearch.au3" Global $itagRGBQUAD = "BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved" Global $RgbSize = DllStructGetSize(DllStructCreate($itagRGBQUAD)) $hGUI = GUICreate("Color Gui",20,20,@DesktopWidth - 20,@DesktopHeight - 100) GUISetBkColor(0xFF80FF, $hGUI) GUISetState(@SW_SHOW, $hGUI) MsgBox(0,"PixelSearch","PixelSearch") $hTimer = TimerInit() $Pos1 = PixelSearch(0 , 0, @DesktopWidth, @DesktopHeight,0xFF80FF) ;0xFFFFFF $iDiff1 = TimerDiff($hTimer) MsgBox(0,"nPixelSearch","nPixelSearch") $hTimer = TimerInit() $Pos2 = nPixelSearch(0, 0, @DesktopWidth, @DesktopHeight,0xFF80FF) ;0xFFFFFF $iDiff2 = TimerDiff($hTimer) if IsArray($Pos1) And IsArray($Pos2) Then $Text1 = String($Pos1[0] & " " & $Pos1[1] & " PixelSearch Time ==> " & $iDiff1) $Text2 = String($Pos2[0] & " " & $Pos2[1] & " nPixelSearch Time ==> " & $iDiff2) MsgBox(0,"PixelSearch",$Text1 & @CRLF & $Text2) EndIf MsgBox(0,"nPixelSearch","nPixelSearch") $hTimer = TimerInit() $Pos2 = nPixelSearch(0, 0, @DesktopWidth, @DesktopHeight,0xFF80FF) ;0xFFFFFF $iDiff2 = TimerDiff($hTimer) MsgBox(0,"PixelSearch","PixelSearch") $hTimer = TimerInit() $Pos1 = PixelSearch(0 , 0, @DesktopWidth, @DesktopHeight,0xFF80FF) ;0xFFFFFF $iDiff1 = TimerDiff($hTimer) if IsArray($Pos1) And IsArray($Pos2) Then $Text1 = String($Pos1[0] & " " & $Pos1[1] & " PixelSearch Time ==> " & $iDiff1) $Text2 = String($Pos2[0] & " " & $Pos2[1] & " nPixelSearch Time ==> " & $iDiff2) MsgBox(0,"PixelSearch",$Text1 & @CRLF & $Text2) EndIf Func nPixelSearch($left = 0,$top = 0,$right = -1,$bottom = -1,$Color = 0,$bCursor = False) Local $hBmp = _ScreenCapture_Capture("",$left,$top,$right,$bottom,$bCursor) if Not($hBmp) Then Return SetError(1,0,0) Local $aCoord = BmpSearchColor($hBmp,$Color) _WinAPI_DeleteObject($hBmp) if Not IsArray($aCoord) Then Return SetError(2,0,0) Return $aCoord EndFunc Func BmpSearchColor($hBmp,$Color) Local $BitsStruct = GetBitsStruct($hBmp) if @error Then Return SetError(1,0,0) Local $BitsStringPtr = DllStructGetPtr($BitsStruct,"RGBQUAD") Local $BitsSize = DllStructGetData($BitsStruct,"SIZE") Local $biWidth = DllStructGetData($BitsStruct,"WIDTH") Local $biHeight = DllStructGetData($BitsStruct,"HEIGHT") Local $iColor = DllStructCreate("BYTE RGB[3]") DllStructSetData($iColor,1,$Color) $iColorPtr = DllStructGetPtr($iColor) $FindPosition = BinarySearch($BitsStringPtr,$iColorPtr,$BitsSize,3,4) ;$SubDataPtrSize = 3 // $Step = $RgbSize = 4 // ; $Step Is Loop Step if @error Then Return SetError(2,0,0) Local $OffSetPosition = $FindPosition - 1 $OffSetPosition /= $RgbSize ; $RgbSize = 4 /// 4byte = 1pixel $X = Mod($OffSetPosition,$biWidth) ; Get left $Y = (($OffSetPosition - $X) / $biWidth) ; Get top Local $aCoord[2] $aCoord[0] = $X $aCoord[1] = $Y Return $aCoord EndFunc Func GetBitsStruct( $hBmp , $L = -1 , $T = -1 , $W = -1 , $H = -1 ) Local $SizeArray = GetImageSize($hBmp) if @error Then Return SetError(1,0,0) Local $biWidth = $SizeArray[0] Local $biHeight = $SizeArray[1] if ($L < 0) Then $L = 0 if ($T < 0) Then $T = 0 if ($W < 0) Then $W = ($biWidth - $L) if ($H < 0) Then $H = ($biHeight - $T) if ($L >= $biWidth Or (($L + $W) > $biWidth)) Then $L = 0 if ($T >= $biHeight Or (($T + $H) > $biHeight)) Then $T = 0 Local $vRgbSize = ($RgbSize * ($biWidth * $biHeight)) Local $vStBits = DllStructCreate("INT WIDTH;INT HEIGHT;INT SIZE;BYTE RGBQUAD[" & ($vRgbSize) & "]") DllStructSetData($vStBits ,"WIDTH",$biWidth) DllStructSetData($vStBits,"HEIGHT",$biHeight) DllStructSetData($vStBits,"SIZE",$vRgbSize) GetBitmapBits($hBmp,DllStructGetPtr($vStBits,"RGBQUAD"),$vRgbSize) if @error Then Return SetError(2,0,0) if ($L = 0 And $T = 0 And $W = $biWidth And $H = $biHeight) Then Return $vStBits Local $nRgbSize = ($RgbSize * ($W * $H)) , $ColusCount = $W Local $nStBits = DllStructCreate("INT WIDTH;INT HEIGHT;INT SIZE;BYTE RGBQUAD[" & ($nRgbSize) & "]") DllStructSetData($nStBits ,"WIDTH",$W) DllStructSetData($nStBits,"HEIGHT",$H) DllStructSetData($nStBits,"SIZE",$nRgbSize) For $RowIndex = 0 To ($H - 1) Local $nStBPtr = GetPointerAtRowPos($nStBits,$RowIndex) ; Move Ptr To First BYTE Of Row => $RowIndex Local $vStBPtr = GetPointerAtRowPos($vStBits,($RowIndex + $T)) + ($L * $RgbSize) ; Move Ptr To First BYTE Of Row => ($RowIndex + $T) ; + ($L * $RgbSize) Move PointerAtRowPos From left to right + ($L * $RgbSize) _MemMoveMemory($vStBPtr,$nStBPtr,($RgbSize * ($ColusCount - 1))) ;Size Of One Row In $nStBPtr Next Return $nStBits EndFunc Func GetBitmapBits($hbmp,$lpvBits,$cbBuffer) $BytesNu = DllCall("Gdi32.dll","LONG","GetBitmapBits","ptr" _ ,$hbmp,"LONG",$cbBuffer,"ptr",$lpvBits) if @error Or Not($BytesNu[0]) Then SetError(1,0,0) Return SetError(0,0,$BytesNu[0]) EndFunc Func GetPointerAtRowPos($StBits,$RowIndex) if Not IsDllStruct($StBits) Then Return SetError(1,0,0) Local $ColusCount = DllStructGetData($StBits,"WIDTH") Local $RowsCount = DllStructGetData($StBits,"HEIGHT") If ($RowIndex < 0 Or $RowIndex > ($RowsCount -1)) Then Return SetError(2,0,0) Local $StBitsPtr = DllStructGetPtr($StBits,"RGBQUAD") Local $PointerAtRowPos = ($StBitsPtr + (($RowIndex * $ColusCount) * $RgbSize)) Return $PointerAtRowPos EndFunc Func GetImageSize($hBmp) Local $ntagBITMAPINFO = "DWORD biSize;LONG biWidth;LONG biHeight;USHORT biPlanes;" & _ "USHORT biBitCount;DWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;" & _ "LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;BYTE RGBQUAD[4]" Local $vBITMAPINFO = DllStructCreate($ntagBITMAPINFO) DllStructSetData($vBITMAPINFO,"biSize",(DllStructGetSize($vBITMAPINFO) - $RgbSize)) Local $hDC = _WinAPI_CreateCompatibleDC(0) if Not($hDC) Then _WinAPI_DeleteDC($hDC) Return SetError(1,0,0) EndIf $Return = _WinAPI_GetDIBits($hDC,$hBmp,0,0,0,DllStructGetPtr($vBITMAPINFO),0) if Not($Return) Then _WinAPI_DeleteDC($hDC) Return SetError(2,0,0) EndIf _WinAPI_DeleteDC($hDC) Local $biWidth = DllStructGetData($vBITMAPINFO,"biWidth") Local $biHeight = DllStructGetData($vBITMAPINFO,"biHeight") Local $SizeArray[2] $SizeArray[0] = $biWidth $SizeArray[1] = $biHeight Return $SizeArray EndFunc CallbackBinarySearch.au3 #include <WinAPI.au3> #include <Memory.au3> #include <Color.au3> #include <ScreenCapture.au3> #include "ASM_BinarySearch.au3" $Text = "" $SubText = "Autoit" For $i = 1 To 10000 $Text &= "1" Next $Text &= "Autoit" & "Autoit" & "Autoit" $Len1 = StringLen($Text) $Len2 = StringLen($SubText) $St1 = DllStructCreate("CHAR[" & $Len1 & "]") DllStructSetData($St1,1,$Text) $Ptr1 = DllStructGetPtr($St1) $St2 = DllStructCreate("CHAR[" & $Len2 & "]") DllStructSetData($St2,1,$SubText) $Ptr2 = DllStructGetPtr($St2) $Return = CallbackBinarySearch($Ptr1,$Ptr2,"CallbackFunc",$Len1,$Len2) MsgBox(0,"Return",$Return) Func CallbackFunc($FindPosition,$OffSetPosition,$DataPtr,$SubDataPtr,$DataPtrSize,$SubDataPtrSize) MsgBox(0,"OffSetPosition = " & $OffSetPosition ,"FindPosition = " & $FindPosition) Return 1 ;return ;0 ; Stop ;Other Ways : Continue EndFunc XBinarySearch.au3 #include <WinAPI.au3> #include <Memory.au3> #include <Color.au3> #include <ScreenCapture.au3> #include "ASM_BinarySearch.au3" $Text = "" $SubText = "Autoit" For $i = 1 To 10000 $Text &= "1" Next $Text &= "Autoit" & "Autoit" & "Autoit" $Len1 = StringLen($Text) $Len2 = StringLen($SubText) $St1 = DllStructCreate("CHAR[" & $Len1 & "]") DllStructSetData($St1,1,$Text) $Ptr1 = DllStructGetPtr($St1) $St2 = DllStructCreate("CHAR[" & $Len2 & "]") DllStructSetData($St2,1,$SubText) $Ptr2 = DllStructGetPtr($St2) $ReturnStruct = XBinarySearch($Ptr1,$Ptr2,$Len1,$Len2) For $i = 1 To DllStructGetData($ReturnStruct,"ArrayCount") $FindPosition = DllStructGetData($ReturnStruct,"PositionArray",$i) MsgBox(0,"Msg","FindPosition = " & $FindPosition) Next1 point
-
I have hardly any time to write any code recently. Even so, one of the most frustrating problems I, and others like myself, encounter is corruption from floating point innacuracies and integer overflow. I haven't had much time to test this, but the given example works. The method to fix division with whole numbers does not appear to be as complicated as I first anticipated. Divisible integers only! Func _WholeNumberDivision($iDividend, $iDivisor) ; Input ranges -9223372036854775807 To 9223372036854775807 If Not (IsInt($iDividend) And IsInt($iDivisor)) Then Return SetError(1, 0, $iDividend / $iDivisor) ; integers only If $iDivisor = 0 Then Return SetError(2, 0, $iDividend / $iDivisor) ; division by zero Local $aDiv = [$iDividend, $iDivisor], _ $iSign = 1 For $i = 0 To 1 If $aDiv[$i] > 0x7FFFFFFFFFFFFFFF Or $aDiv[$i] < 0x8000000000000001 Then Return SetError(3, 0, $iDividend / $iDivisor) ; input range exceeded If VarGetType($aDiv[$i]) = "Double" Then $aDiv[$i] = Number($aDiv[$i], 2) ; convert to Int-64 If $aDiv[$i] < 0 Then ; force positive integers $aDiv[$i] *= -1 $iSign *= -1 ; to add back later EndIf Next If Mod($aDiv[0], $aDiv[1]) Then Return SetError(4, 0, $iDividend / $iDivisor) ; not divisible If $aDiv[0] = 0 Then Return 0 If $aDiv[1] = 1 Then Return $aDiv[0] * $iSign Local $iDivision = Floor($aDiv[0] / $aDiv[1]), $iDifference, $iIntegral While $iDivision * $aDiv[1] > $aDiv[0] ; division is overstated $iDifference = ($aDiv[1] * $iDivision) - $aDiv[0] $iIntegral = Floor($iDifference / $aDiv[1]) ; avoid shooting beyond the target If $iIntegral = 0 Then $iIntegral = 1 ; prevents hanging in an infinite loop $iDivision -= $iIntegral WEnd While $iDivision * $aDiv[1] < $aDiv[0] ; division is understated $iDifference = $aDiv[0] - ($aDiv[1] * $iDivision) $iIntegral = Floor($iDifference / $aDiv[1]) If $iIntegral = 0 Then $iIntegral = 1 ; prevents hanging $iDivision += $iIntegral WEnd Return $iDivision * $iSign EndFuncThis function currently works with all int-64 values with one exception - the lowest value 0x8000000000000000, and that's only divisible by powers of 2 anyway.1 point
-
Serial Port /COM Port UDF
willindows reacted to rainer560 for a topic
Hi Martin, I am using this UDF for years and have written several complex scripts to control various hardware. Now, with Windows 10 my scripts are not working anymore! The available comports are listed as usual but when I try to open the port it says "port does not exist". With Hyperterminal I am able to communicate to this port without problems, so it really seems to be a problem of the UDF or more liekely the dll. can you help?1 point -
Uploaded v3.3.14.1 Removed au3record.exe as it's often mistakenly flagged as malware causing the entire AutoIt zip/installer to be flagged. We'll host it separately.Reworked AutoIt3Help.exe and applied a digital signature to help with malware false positives - as above.No other changes to the AutoIt exes so no real need to update if you are not having issues.1 point
-
@junkew You are right, is a good idea an ADB client implemented in pure AutoIT. There are some examples in other languages: https://github.com/vidstige/jadb (Java)https://github.com/CyberAgent/adbkit (JavaScript)https://github.com/google/python-adb (Python)I did something similar in the past but for the Android Monkey Tool. Another approach in order to make AutoIt a "scripting language for mobile automation", is develop an Appium driver on Autoit that implements the Mobile JSON Wire Protocol or try develop an ImperiusGeorge AutoIt driver like this Ruby gem or also a wrapper of Android uiautomator-server testing framework like this Python module. Best regards. Henry1 point
-
and an example to start the shell and just get an ls directory overview. #include <MsgBoxConstants.au3> ; Assign Local variables the loopback IP Address and the Port. Local $sIPAddress = "127.0.0.1" ;"localhost" ; "127.0.0.1" ; This IP Address only works for testing on your own computer. Local $iPort = 5037 ; Port used for the connection. Example() Func Example() TCPStartup() ; Start the TCP service. ; Register OnAutoItExit to be called when the script is closed. OnAutoItExitRegister("OnAutoItExit") ; Assign a Local variable the socket and connect to a Listening socket with the IP Address and Port specified. Local $iSocket = TCPConnect($sIPAddress, $iPort) ; If an error occurred display the error code and return False. If @error Then ; The server is probably offline/port is not opened on the server. Local $iError = @error MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Could not connect, Error code: " & $iError) Return False Else Consolewrite("Connection successful" & @CRLF) EndIf ;Connect over usb TCPSend($iSocket, adbData("host:transport-usb")) $data=TCPRecv($iSocket,4096,0) consolewrite($data & @CRLF) ;Connect to the shell TCPSend($iSocket, adbData("shell:")) $data=TCPRecv($iSocket,4096,0) consolewrite($data & @CRLF) ;See the shell line $data=TCPRecv($iSocket,4096,0) consolewrite($data & @CRLF) ;Give the LS Command (do not forget CR) TCPSend($iSocket, "ls" & @CR) sleep(2000) $data=TCPRecv($iSocket,4096,0) consolewrite($data & @CRLF) ; Close the socket. TCPCloseSocket($iSocket) EndFunc ;==>Example Func OnAutoItExit() TCPShutdown() ; Close the TCP service. EndFunc ;==>OnAutoItExit ;Put hexLengthIn front of the data Func adbData($s) return hex(stringlen($s),4) & $s EndFunc1 point
-
Good coding practices in AutoIt
guinness reacted to jaberwacky for a topic
Model - View - Controller Let's talk about something which I have only recently just begun to grasp. I grasp it well enough to describe it's basics. I hope. I will endeavor to provide a basic explanation and describe some methods to implement MVC into AutoIt scripts. At least one of you might say that this does not pertain to AutoIt. But it does I think. The MVC pattern is many and varied. There does not seem to be one agreed upon method. There are other modern flavors too such as Model View Presenter and Model View ViewModel none of which I have begun to look into. So let's begin with the model. Model The model knows how to perform your program's calculations. It has your algorithms. The model also has a database if your program has one. The model maintains your program's state. It's the brains of the operation. View This module manages your GUI essentially. This module doesn't perform its own program calculations. The view just takes the data that is feed to it and presents it on the screen. Controller This module coordinates the user's actions with the model and the view. If the user clicks on a button or enters information into an input field it then takes that information and does one or many things with it. The controller may take the information and give it to the model to store in a database. If a user clicks a button the controller may then ask the model for the result of a calculation. Then the controller may take this information from the model and give it to the view. For example it may take a list of customer names from the model and then give it to the view which may then update a listview control with that list. The common method of MVC seems to be the following picture: (http://www.songho.ca/opengl/files/gl_mvc01.png) The way that I use MVC in AutoIt is to leave out the arrow connecting the View and the Model. The controller can call functions in the View and can call functions in the Model. The model can not call functions in the Controller or the View. Conversely, the View may not call methods in the Model or the Controller. Here is an oversimplified example: Model.au3 #include-once Func _model_get_username() Return @UserName EndFunc View.au3 #include-once GUICreate("My Program", 100, 100) Global Const $h_label = GUICtrlCreateLabel('', 10, 10, 80, 80) Func _view_display_username(Const $username) GUICtrlSetData($h_label, $username) EndFunc Controller.au3 $include "View.au3" $include "Model.au3" Global Const $account_username = _model_get_username() _view_display_username($account_username) Do Switch GUIGetMsg() Case $gui_close_event Exit EndSwitch Until False I'm sure I will amend this document throughout the next day or two so check back. Fell free to offer enhancements etc.1 point -
DRY and KISS, fail fast, SoC and single responsibility... Most of those are common sense and apply not just to programming. This on the other hand is a bit like the bible. You aren't expected to always follow it literally, stoning is generally frowned upon by modern society. Single entry and exit (SESE). Usually overlooked with good reason but can be important, a GUI loop that looks like this is not good: While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd This would be better: While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd Usually there are multiple places in the loop that should end the GUI (a cancel button, an action completing etc). If you were to add resources that need freeing, the second design means that code can go after the loop and be guaranteed to execute. Same applies for functions. Bad: Func Foo($i) If $i < 12 Then Return "Foo" Return "Bar" EndFunc Better: Func Foo($i) Local $ret = "Bar" If $i < 12 Then $ret = "Foo" Return $ret EndFunc You can now add code that will always be executed immediately before returning from the function (like freeing resources). I'm not saying go for it and rewrite all your scripts like this. Trying to can result in larger and more unreadable code. But bear it in mind when you write your code.1 point
-
#include <GUIConstants.au3> #include <GuiRichEdit.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> $Form1 = GUICreate("Form1", 448, 269, 192, 124, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX)) $Edit1 = _GUICtrlRichEdit_Create($Form1,"", 10, 10, 428, 249) GUIRegisterMsg($WM_SIZE, "WM_SIZE") GUISetState(@SW_SHOW) _GUICtrlRichEdit_AppendTextColor($Edit1, "Hello ", "0x00FF00") _GUICtrlRichEdit_AppendTextColor($Edit1, "Autoit ", "0xFF0000") _GUICtrlRichEdit_AppendTextColor($Edit1, "World", "0x000000") _GUICtrlRichEdit_AppendText($Edit1, @CRLF & @CRLF) _GUICtrlRichEdit_AppendTextColor($Edit1, "Hello" & @CRLF, "0x00FF00") _GUICtrlRichEdit_AppendTextColor($Edit1, "Autoit" & @CRLF, "0xFF0000") _GUICtrlRichEdit_AppendTextColor($Edit1, "World" & @CRLF, "0x000000") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _GUICtrlRichEdit_Destroy($Edit1) Exit EndSwitch WEnd Func _GUICtrlRichEdit_AppendTextColor($hWnd, $sText, $iColor) Local $iLength = _GUICtrlRichEdit_GetTextLength($hWnd, True, True) Local $iCp = _GUICtrlRichEdit_GetCharPosOfNextWord($hWnd, $iLength) _GUICtrlRichEdit_AppendText($hWnd, $sText) _GUICtrlRichEdit_SetSel($hWnd, $iCp-1, $iLength + StringLen($sText)) _GUICtrlRichEdit_SetCharColor($hWnd, $iColor) _GuiCtrlRichEdit_Deselect($hWnd) EndFunc Func WM_SIZE($hWnd, $Msg, $wParam, $lParam) $NewW = _WinAPI_LoWord($lParam) $NewH = _WinAPI_HiWord($lParam) _WinAPI_SetWindowPos($Edit1, 0, 10, 10, $NewW - 20, $NewH - 20, BitOR($SWP_NOACTIVATE, $SWP_NOZORDER)) Return $GUI_RUNDEFMSG EndFunc1 point
-
Freeze father GUI completely when a child GUI active
kmaclamore reacted to Melba23 for a topic
lhw, I would do it like this - try actioning the main GUI or the "Test" button while the child is visible: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $hGUI = GUICreate("Test", 500, 500) $hButton_1 = GUICtrlCreateButton("Test", 10, 10, 80, 30) $hButton_2 = GUICtrlCreateButton("Child", 10, 100, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton_1 MsgBox(0, "Button", "Pressed") Case $hButton_2 ; Disable parent GUI GUISetState(@SW_DISABLE, $hGUI) ; Create child = adjust the coordinates to get it into the middle of the parent $hGUI_Child = GUICreate("Child", 200, 200, 150, 150, $GUI_SS_DEFAULT_GUI, $WS_EX_MDICHILD, $hGUI) GUISetState() ; Intercept attempts to move the child GUIRegisterMsg($WM_SYSCOMMAND, "On_WM_SYSCOMMAND") ; Wait for the child to close While 1 If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop WEnd ; Stop move message interception GUIRegisterMsg($WM_SYSCOMMAND, "") ; Re-enable main GUI GUISetState(@SW_ENABLE, $hGUI) ; Delete child GUIDelete($hGUI_Child) EndSwitch WEnd Func On_WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam) ; Is it the child sending the message? If $hWnd = $hGUI_Child Then ; Is it a move message? If BitAND($wParam, 0xFFF0) = 0xF010 Then Return False ; $SC_MOVE EndIf Return $GUI_RUNDEFMSG EndFuncIf you are not too familiar with GUIRegisterMsg, then I recommend the GUIRegisterMsg tutorial in the Wiki. Please ask if you have any questions. M231 point