Leaderboard
Popular Content
Showing content with the highest reputation on 09/03/2021 in all areas
-
New version: #include "wd_helper.au3" #include "wd_capabilities.au3" _Example() Exit Func _Example() If $IDYES = MsgBox($MB_YESNO + $MB_TOPMOST + $MB_ICONQUESTION + $MB_DEFBUTTON1, "Question", _ "Do you want to test with running browsers ?") Then Local $b_Headless = ($IDYES = MsgBox($MB_YESNO + $MB_TOPMOST + $MB_ICONQUESTION + $MB_DEFBUTTON1, "Question", "Do you want to test with headless mode ?")) _Example_Chrome(True, $b_Headless) _Example_FireFox(True, $b_Headless) Else ; only show $s_Desired_Capabilities in console _Example_Chrome(False) _Example_FireFox(False) EndIf EndFunc ;==>_Example Func _Example_Chrome($b_Run_Browser, $b_Headless = False) _WD_Capabilities_Startup() _WD_Capabilities_AddOption('w3c', True) ;~ _WD_Capabilities_AddOption('browserName', 'chrome') If $b_Headless Then _ _WD_Capabilities_AddArgument('--headless') _WD_Capabilities_AddArgument('start-maximized') _WD_Capabilities_AddArgument('disable-infobars') _WD_Capabilities_AddArgument('user-data-dir', 'C:\Users\' & @UserName & '\AppData\Local\Google\Chrome\User Data\Default') _WD_Capabilities_AddPreference('download.default_directory', @ScriptDir) Local $s_Desired_Capabilities = _WD_Capabilities_Build_JSON('chrome') If Not $b_Run_Browser Then ConsoleWrite($s_Desired_Capabilities & @CRLF) ConsoleWrite('=============' & @CRLF) Return EndIf ;~ $s_Desired_Capabilities = StringStripCR($s_Desired_Capabilities) ;~ $s_Desired_Capabilities = StringReplace($s_Desired_Capabilities, @TAB, '') ;~ ConsoleWrite($s_Desired_Capabilities & @CRLF) ;~ ConsoleWrite('=============' & @CRLF) _WD_Option('Driver', 'chromedriver.exe') _WD_Option('Port', 9515) _WD_Startup() Local $WD_SESSION = _WD_CreateSession($s_Desired_Capabilities) MsgBox($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION, "Information #" & @ScriptLineNumber, "Waiting before _WD_Shutdown()") _WD_DeleteSession($WD_SESSION) _WD_Shutdown() EndFunc ;==>_Example_Chrome Func _Example_FireFox($b_Run_Browser, $b_Headless = False) _WD_Capabilities_Startup() ;~ _WD_Capabilities_AddOption('browserName', 'firefox') If $b_Headless Then _ _WD_Capabilities_AddArgument('--headless') Local $s_My_Profile_Dir = 'c:\Users\' & @UserName & '\AppData\Local\Mozilla\Firefox\Profiles\TESTING.default' _WD_Capabilities_AddArgument('-profile') _WD_Capabilities_AddArgument($s_My_Profile_Dir) _WD_Capabilities_AddPreference('dom.ipc.processCount', 8) _WD_Capabilities_AddPreference('javascript.options.showInConsole', 'false') _WD_Capabilities_AddPreference('browser.toolbars.bookmarks.visibility', 'always') ; check about:config _WD_Capabilities_AddPreference('app.update.download.attempts', 0) ; check about:config _WD_Capabilities_AddPreference('browser.safebrowsing.downloads.enabled', 'false') ; check about:config _WD_Capabilities_AddLog('level', 'trace') _WD_Capabilities_AddEnv('MOZ_LOG', 'nsHttp:5') _WD_Capabilities_AddEnv('MOZ_LOG_FILE', $s_My_Profile_Dir & '\log') Local $s_Desired_Capabilities = _WD_Capabilities_Build_JSON('firefox') If Not $b_Run_Browser Then ConsoleWrite($s_Desired_Capabilities & @CRLF) ConsoleWrite('=============' & @CRLF) Return EndIf ;~ $s_Desired_Capabilities = StringStripCR($s_Desired_Capabilities) ;~ $s_Desired_Capabilities = StringReplace($s_Desired_Capabilities, @TAB, '') ;~ ConsoleWrite($s_Desired_Capabilities & @CRLF) ;~ ConsoleWrite('=============' & @CRLF) _WD_Option('Driver', 'geckodriver.exe') _WD_Option('Port', 4444) _WD_Startup() Local $WD_SESSION = _WD_CreateSession($s_Desired_Capabilities) MsgBox($MB_OK + $MB_TOPMOST + $MB_ICONINFORMATION, "Information #" & @ScriptLineNumber, "Waiting before _WD_Shutdown()") _WD_DeleteSession($WD_SESSION) _WD_Shutdown() EndFunc ;==>_Example_FireFox wd_capabilities.zip2 points
-
Recently someone ask about saving images into a text file. I found it interesting enough to spend some times on it. And felt it may be worth publishing it as an example script. This provide an alternative way to save/retrieve image from the well-known Base64 encoding. With this example you can save/retrieve image into/from file, but also into/from the inside of a script. I provided a simple tool to copy/paste the AutoIt code of an image into a script. Let me know if you want to add / change functionalities from it. #include <Constants.au3> #include <GDIPlus.au3> #include <ScreenCapture.au3> #include <File.au3> Opt("MustDeclareVars", 1) Const $SIZE = 600 Global $tImage ; This buffer must be declare for each image that you create _GDIPlus_Startup() Local $hBitMap = _ScreenCapture_Capture("", 50, 50, 50 + $SIZE - 1, 50 + $SIZE - 1, False) _WriteImageToText("Test.txt", $hBitMap, $SIZE, $SIZE, False) Local $hImage = _ReadImageFromText($tImage, "Test.txt", $SIZE, $SIZE, True) _GDIPlus_ImageSaveToFile($hImage, "Test.jpg") _GDIPlus_ImageDispose($hImage) $tImage = 0 ; recommended when GDI+ handle is not required anymore and you want to reuse the same buffer $hImage = _GDIPlus_ImageLoadFromFile("Capture.jpg") Local $aDim = _GDIPlus_ImageGetDimension($hImage) ConsoleWrite("Note this information to use into _ConvertStringToImage : Width = " & $aDim[0] & " / Height = " & $aDim[1] & @CRLF) Local $sImage = _WriteImageToText("", $hImage, $aDim[0], $aDim[1]) _ConvertStringtoAutoIt($sImage) ; At this stage you will have to paste clip board in a "_ConvertStringToImage" like function (this has been done for you in this example) ; Exit $hImage = _ConvertStringToImage($tImage, $aDim[0], $aDim[1]) _GDIPlus_ImageSaveToFile($hImage, "Test2.jpg") _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() Func _WriteImageToText($sFilename, $hBitMap, $iWidth, $iHeight, $bGDIp = True) ; Create text file to save image Local $hImage If Not $bGDIp Then $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitMap) _WinAPI_DeleteObject($hBitMap) Else $hImage = $hBitMap EndIf Local $tBitmapData = _GDIPlus_BitmapLockBits($hImage, 0, 0, $iWidth, $iHeight, $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local $iScan = DllStructGetData($tBitmapData, "Scan0") Local $tByte = DllStructCreate("byte string [" & $iWidth * $iHeight * 4 & "]", $iScan) Local $sString = Hex($tByte.string) If $sFilename <> "" Then Local $hFile = FileOpen($sFilename, $FO_OVERWRITE) FileWrite($hFile, $sString) FileClose($hFile) EndIf _GDIPlus_BitmapUnlockBits($hImage, $tBitmapData) _GDIPlus_ImageDispose($hImage) If $sFilename = "" Then Return $sString EndFunc ;==>_WriteImageToText Func _ReadImageFromText(ByRef $tByte, $sString, $iWidth, $iHeight, $bFileName = False) ; Recreate image from text file If $bFileName Then $sString = FileRead($sString) Local $dData = Binary("0x" & $sString) $tByte = DllStructCreate("byte string[" & $iWidth * $iHeight * 4 & "]") DllStructSetData($tByte, 1, $dData) Return _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $GDIP_PXF32ARGB, $iWidth * 4, DllStructGetPtr($tByte, "string")) EndFunc ;==>_ReadImageFromText Func _ConvertStringtoAutoIt($sImage) ; Format the string image into AutoIt script Const variable Local Const $LINE_SIZE = 4000 Local Const $FILE_NAME = _TempFile(@TempDir, "~~", ".txt", 10) Local $iPos = 0, $sTxt Local $hFile = FileOpen($FILE_NAME, $FO_OVERWRITE) While True $sTxt = StringMid($sImage, $iPos + 1, $LINE_SIZE) FileWrite($hFile, '"' & $sTxt & '"') $iPos += $LINE_SIZE If $iPos >= StringLen($sImage) Then ExitLoop FileWriteLine($hFile, " & _") WEnd FileSetPos($hFile, 0, $FILE_BEGIN) $sTxt = FileRead($hFile) FileClose($hFile) FileDelete($FILE_NAME) ClipPut($sTxt) EndFunc ;==>_ConvertStringtoAutoIt Func _ConvertStringToImage(ByRef $tBuffer, $iWidth, $iHeight) ; Convert the below Const variable into a GDI+ handle Local Const $IMAGE = "6F461FFF6F461FFF6D4620FF6B4620FF6B4523FF6A4523FF684523FF684523FF694422FF684420FF6E4721FF754D23FF774D23FF73491CFF744519FF784818FF7A4A16FF764612FF774815FF774D1EFF774E27FF6B4925FF634326FF5E4329FF543C28FF5A4635FF594637FF554437FF534337FF4F3F33FF504138FF614E46FF583E37FF5D4039FF5B3E35FF583B32FF5C4035FF624739FF654839FF624431FF5E4027FF634425FF674422FF69461BFF6E471AFF744D19FF764C17FF734914FF724716FF75481CFF74491EFF734620FF6F431EFF6D401FFF6C4021FF6D4124FF6D4227FF6D4326FF6D4326FF6D4423FF6D4423FF6D4620FF6D4620FF6F461FFF6D461FFF6D4620FF6B4620FF6B4522FF6A4622FF6A4523FF6A4622FF76512FFF6D4724FF66411BFF69421BFF6A4218FF693F15FF6E4318FF784B1FFF764A1BFF75491AFF71471CFF6B441DFF63401EFF5D3E1FFF5D4228FF5F4733FF8C7867FFA39285FFC1B1A5FFDDCEC5FFF9EAE1FFFFF6EEFFFFFAF2FFFFFFF8FFFFF1EBFFFFF5EFFFFFF1EBFFF8E1D9FFD9C2BAFFB39A90FF876F63FF6A5141FF5F4430FF62442BFF664728FF6B4826FF69451DFF654014FF6D4717FF7A5222FF744B1EFF764C21FF6F451BFF683C17FF6E411FFF784D2CFF774B2CFF6C4023FF6F4326FF6D4326FF6D4424FF6D4423FF6D4522FF6D4522FF6D4620FF6D4620FF6D4620FF6D4620FF6B4620FF6B4620FF6B4620FF6B4522FF6B4620FF623C19FF6A451FFF704A27FF6E4923FF6D4620FF6D4620FF6D4620FF6C451FFF5F3A18FF684726FF694A2BFF5E4126FF674D35FF98806CFFD9C5B4FFFFF2E5FFFFF6EDFFFFFEF6FFFFF8F2FFFCF1EDFFFFF5F1FFFFF6F4FFFDF1EFFFFCF0EEFFFEF1EFFFFFF3F1FFFFF5F3FFFFF5F2FFFFF8F5FFFFFDF7FFFFFCF5FFFFFAF1FFE5D2C5FFB29B8BFF7B624EFF654931FF64462BFF644224FF664322FF6C4725FF643F19FF6B441EFF744C29FF79512EFF724928FF693E1DFF6A3F1EFF744627FF714324FF6F4324FF6F4423FF6F4423FF6D4522FF6D4522FF6B4522FF6D4522FF6B4620FF6B4620FF6B4620FF6B4620FF6D461FFF6D4620FF6D4620FF69441EFF6F4A24FF6C4623FF633E1CFF66411FFF6F4C2BFF6E4B2AFF5F3F22FF694E39FF4E3826FF655140FFB6A394FFFBEADDFFFFFAF1FFFFF6F0FFFFFBF7FFF7EEEBFFFFF8F8FFFDF5F5FFF6EEEEFFFEF6F6FFFFFCFCFFFFF8F8FFFEF6F6FFFFFAF9FFFCF7F6FFF7F2F1FFF3EEEDFFF2EDECFFF7EFEFFFFBF1F1FFFEF2F0FFFFF6F2FFFFF7F1FFFDEAE2FFD4BEB2FF947A6CFF614435FF563827FF654430FF705033FF674625FF613D1FFF653F1FFF6A4323FF6D4423FF6F4423FF734624FF714422FF714422FF714422FF6F4522FF6D4522FF6D4522FF6B4522FF6B4523FF6B4522FF6B4620FF6B4620FF6D461FFF6F471DFF6F461FFF6F461FFF744D27FF694320FF66411FFF674625FF67472AFF5D4025FF593E24FF563E2CFF52423BFFC0B4B2FFFFFFFCFFFFFCF9FFE9E1E1FFF5EFF0FFFFF8FBFFEFEAECFFF5EFF4FFFFFAFCFFFCF7F9FFF4EFF1FFF8F1F4FFF8F2F3FFF5EDEEFFF3EDEEFFF7F5F5FFF6F6F6FFF9F9F9FFFBFAFCFFFBFAFCFFF8F7F9FFF8F5F7FFF9F4F6FFFBF4F9FFFFF5F8FFFFF6F8FFFFF4F5FFFCE8E7FFD4BFBEFF917979FF5B413BFF523827FF60442CFF65472EFF624127FF674325FF704929FF734926FF6D411CFF724520FF724520FF724520FF714520FF6F4522FF6B4522FF6A4523FF6A4523FF6A4622FF6B4522FF6D461FFF6F461FFF6F471DFF71471DFF6F461FFF68411BFF623C19FF684726FF6F5134FF593F27FF48301CFF6B5543FF9E8E82FFF7EFF0FFEFEBF1FFEAE8EEFFECEAF0FFF6F4FAFFFFFDFFFFFFFDFFFFFAF6FCFFF8F4F9FFFFF9FEFFFAF5F7FFF8F2F3FFFFF7F7FFFFF7F7FFFFF7F5FFFFFFFCFFFBF8F4FFF6F5F1FFF5F3F2FFF3F4F2FFF2F2F2FFF2F1F3FFF8F4F9FFFEFAFFFFF7F0F7FFF8F0F7FFF7ECF4FFFAEDF5FFFFF8FFFFFFF7FFFFE9D8E1FFC7B4B7FF715C54FF5D4636FF563C2BFF664A32FF6D4C32FF664022FF673D1AFF724621FF72451FFF74451FFF72451FFF71461FFF6F4520FF6B4523FF6A4424FF684523FF6A4622FF6B4522FF6D461FFF6F461FFF71471DFF71471DFF6F461FFF6E4721FF6C4725FF644427FF553B23FF533D2BFF786556FFC4B3AAFFFFF6F2FFF6F2F8FFF5F5FFFFF9F8FFFFF6F5FFFFF6F3FCFFF5F3F9FFF3EFF5FFF1EBF0FFFBF4F7FFFAF2F2FFF9EDEBFFFFF4F0FFFFFCF6FFFFF4EDFFFEEDE4FFFFF3EAFFFFF9EFFFFFF7EDFFFFF7EEFFFFF7F0FFFBF5F0FFF8F1EEFFFAF2F2FFFDF6F9FFF7F0F5FFFDF5FCFFFFF7FEFFFBF2FCFFFBF1FDFFFFF7FFFFFFF8FFFFFFF6FEFFEEE1DFFF9D8B84FF523F32FF4A3220FF61422BFF6B462AFF6E4524FF754A23FF72461DFF74461DFF72461DFF71461FFF6D4620FF6A4523FF684524FF684523FF6A4622FF6B4522FF6D4620FF6F461FFF6F461FFF6F461FFF6D4620FF643E1BFF6C4A2CFF62442BFF5A422EFF8E7B6EFFE4D5CCFFFFFEFAFFFAF2F3FFFAF6FCFFF3F2FCFFF4F1FAFFF7F3F9FFF9F3F8FFF9F2F5FFFCF4F5FFFFF7F5FFFCF0ECFFDDCDC6FFB3A098FF9C897CFF988172FF8E7664FF8D7563FF9C8472FF8E7866FF8B7563FF8D7968FF9B8978FFAF9E91FFCABAAEFFEADAD3FFFFF3F0FFFFF4F2FFFDF2F4FFFCF3F6FFFBF4F9FFF9F1F8FFF4ECF6FFF3EDF8FFF9F1FBFFFFFBFEFFF8ECEAFFBBABA4FF6B5549FF4C311DFF644329FF734D2DFF693F1AFF71471DFF72471CFF72461DFF" & _ "71461FFF6D4620FF6A4523FF684524FF6B4624FF623E1AFF754F2CFF623D17FF744D27FF714A24FF67401AFF694320FF634221FF694B30FF5D422DFF927E6DFFFFFCF3FFFFF5F1FFFFF9F9FFFFF7F8FFF2EBEEFFFEF7FAFFFFF8F9FFFBF1F1FFFFF8F4FFFFF6F0FFDCCBC2FFA69386FF947D6DFF977E6AFF9B7E69FF9D7F66FF9E8065FFA08063FFA28063FFA48062FFA68062FFA68062FFA47F63FFA27F65FF9E7E67FF9B7E69FF997D6CFF947D6DFFC2AFA2FFEFE0D7FFFFFAF4FFFBF0ECFFF7EFEFFFFFFBFCFFFEF9FBFFEEEBEDFFF8F1F6FFFDF5F6FFFFFBF7FFDBCAC1FF705949FF52361EFF613F21FF734D2AFF704720FF73491FFF6C4218FF6B421BFF734C26FF6F4A28FF654221FF6E4825FF643E1BFF6E4825FF6D4822FF694320FF66401DFF6E4927FF684628FF66482DFF563C24FF97816FFFFFFDF2FFFFF7F1FFF9EDEBFFF9F1F2FFFFF9FAFFFFFBF7FFFFF1EBFFFFF0E9FFFCE9E1FFD5C2B5FFA38C7CFF947B67FFA78B73FF9E8065FFA28063FFA68060FFA7815FFFA9815EFFAB815CFFAB825BFFAE815BFFB2815BFFB2815BFFB0805CFFAE805EFFAD805FFFA78060FFA47F63FF9E8065FFA0866EFF97826DFFC1AF9EFFF9ECDEFFFFF8EEFFF6EFE6FFFAF4EDFFFFFBF8FFFDF8FAFFF4EDF2FFFFF9F9FFF8EAE4FFE1CEC1FF765D49FF5A3D22FF674625FF623E1AFF734C25FF734C25FF6A431CFF65401AFF67411EFF694422FF704923FF69441EFF6A4421FF724E2AFF623D1BFF654423FF6B4B2EFF5A3C23FF5C412CFF9C8674FFFFFFF4FFFFF5ECFFFFF4F0FFFFFCFCFFFCF4F5FFFDF1EFFFFFF2E7FFFFFCECFFF3D9C8FFB09581FF8F725DFF9E7F66FFA58366FF956F4FFFA7815EFFAB815CFFAE815BFFB08259FFB08358FFB28357FFB28357FFB58257FFB98257FFBB8157FFBB8157FFB78158FFB58159FFB2815BFFAE815CFFA9815EFF9B7857FFA48669FF937A60FF95806AFFD0C2ACFFFFF6E2FFFFFBE9FFFFF6ECFFFDF7F8FFF2EBF0FFFFF6F8FFFFFFFBFFFFEFE3FFEBD7C6FF6D553DFF573B1DFF6B4C2BFF64421EFF633F1BFF6C4721FF6E4825FF66401DFF66401EFF70481EFF714A23FF6C4721FF6D4826FF603F1EFF6D4F32FF563C24FF553D29FF917C6DFFFFFFF5FFF6E7DEFFFFFAF4FFFFF7F3FFF4EBE8FFFFF8F9FFFFFDF9FFFFF1E1FFCDAE97FF9C7D64FFA28167FFAB866AFF9F7959FFA47C59FFBD926BFFAE8259FFB08358FFB28357FFB48357FFB48355FFB48355FFB58355FFB78355FFBB8255FFBD8255FFBB8255FFBB8255FFB98257FFB58257FFB28258FFAE8259FFB99069FFA37F5BFFA38463FF9D8162FF887256FFAD9A7FFFEFDEC4FFFFF8E8FFFFF6F3FFFFFAFDFFF6EBEDFFFBF0ECFFFFFBF2FFFFF2E5FFE4D0BEFF5C462DFF654A2FFF5D4021FF5F3E1DFF694624FF6E4825FF6D4724FF6E4623FF71471CFF6E461CFF6F4822FF684523FF634326FF61472FFF483220FF887566FFFAE9E0FFFFFAF4FFF8ECE8FFFFFBF7FFF8EFECFFFFFFFCFFF3EAE7FFF4E4DDFFB19682FFAF8C72FFA27D61FF9D7757FFA77E5DFFB28863FFB1865FFFAA7C53FFB28258FFB28357FFB48357FFB48357FFB48357FFB28357FFB48357FFB48357FFB58257FFB58257FFB58257FFB58257FFB58257FFB48357FFB28357FFB08358FFA67A51FFAD845DFFA8835DFFAB8866FFA8896AFF8F7154FFA4876CFFE4CCB8FFFFF2EFFFF7ECEEFFFFFBFBFFFBF0ECFFFDF1EBFFFFFFF6FFFFF3E6FFBAA996FF57402AFF60472DFF6C4E31FF664524FF5F3A18FF6E4623FF784E29FF76491DFF6A4015FF6B441EFF6C4928FF62452AFF513925FF675445FFD9CAC1FFFFF6F2FFFFF4F2FFFFF8F8FFF6EDEAFFFFFDFAFFFFF7F3FFF1E6E2FFA18F84FF967760FFA27C5EFFA98262FFB08766FFAD8360FFA77C55FFA97D54FFB2855AFFB28258FFB28258FFB28258FFB28258FFB08358FFB08259FFB08259FFAE8259FFAD825BFFAD8359FFAD8359FFAE8358FFB08358FFB08358FFB08358FFB08358FFAF8459FFA3794FFFAB8059FFAA825FFFA27C5AFFB18B6BFFB49072FF8F725DFFC1AFA8FFFFFEFEFFEFE3E1FFFFFEFCFFFEF3EFFFF6EBE3FFFFFFF5FFFBEEE0FF8D7C69FF5E4933FF553A20FF6B4C2DFF6D4826FF663F19FF70451EFF754718FF70451AFF67401AFF6C4928FF5F442AFF5D4735FFB7A69DFFFFF6F2FFFCF2F2FFF3EBECFFFAF2F3FFFFFDFDFFFAF1EEFFE8DDD9FF92857DFF948174FFA2836AFFA57F61FFA67F5FFFAD8463FFAE8461FFAB8059FFAE8259FFB98B62FFB08259FFB08259FFAE815BFFAE815BFFAD815CFFAB815CFFAB815EFFA7815EFFA4815FFFA2825EFFA2835CFFA6825CFFA7835BFFA9825BFFAD8359FFAD8359FFAF835AFFB68A61FFAE815BFFA97B59FFAC7F5EFFA47859FFA3775AFFAB8972FF99847CFFBEB1AFFFFFF8F6FFF2E6E4FFFFFCF8FFFCF2EBFFFCF3EAFFFFFFF2FFE7DACAFF776653FF462E16FF6A4C2FFF775432FF67401AFF6A4016FF714216FF7C5027FF653D1AFF654326FF5A412DFF756457FFFCF0EAFFFAF2F2FFF6EFF2FFFFFDFFFFFFF7F8FFFFFAF8FFFEF1E9FF9B8A7DFF9B8776FF927762FFA17E64FFAA8363FFAC8362FFA77F5CFFAB7F5AFFAE835CFFAE8259FFA87C53FFAE8259FFAE8259FFAD815CFFAB815CFFA9815EFFA7815FFFA68060FFA28160FF9E8162FF9D8260FFA0825FFFA2825EFFA7825CFFA9825BFFAD825BFFAD8359FFAA7E55FFAB7F56FFB1845EFFB38661FFAE805EFFAE8160FFB08263FFA57D64FF997C6DFF8F7B70FFDDCCC3FFFFFAF3FFFBEFEBFFFFFFFBFFF6F0EBFF" & _ "FFF8F4FFFFFFF8FFAA9D8FFF64503EFF5C4127FF5F3E1DFF6D4620FF784D22FF76431BFF774A25FF60381BFF6B4B34FF563F30FFE7D9D3FFFCF4F5FFF1EDF2FFF1EDF2FFFFFDFEFFF9EEEAFFFFFBEFFFB79F8BFF9A7D62FFA48160FFAC8664FFA78060FFA78060FFA9805FFFA9815EFFAD815CFFAD825BFFAE8259FFAE8358FFA97D54FFB1875DFFA87E59FFA77F5CFFAF8A68FFA07D5CFF977557FFAC8D6EFFA68A6CFF937657FFA17E5DFFAF8967FFA87B59FFAA7B55FFB4855FFFAD7F56FFAE8358FFAE8259FFAD825BFFAD815CFFAD805EFFAD805FFFAD7F60FFAB7F62FFAA8466FFA38268FF9F826DFFFBE4D5FFFFF5EEFFFFFDFBFFF9F2F5FFF9F3F8FFF8F1F4FFFFF9F6FF7D6C63FF5C4432FF644427FF6D4822FF66390DFF73411DFF724422FF6B432AFF5D3F2CFF907B73FFF8ECEAFFFBF6F8FFF7F5FBFFF8F7FBFFF0EBEAFFFFFFF8FFC9B5A4FFAA8D72FFA47F5DFFA57B51FFB2865DFFAB815EFFA7815FFFA9815EFFAB815CFFAD825BFFAD8359FFAE8358FFAE8358FFAE845AFFA87F58FFB18A64FFAA8563FF957355FFA18366FFB89B80FFB0957BFFAF967CFFB89D82FFA9876AFF9D7558FFB18463FFB68662FFAF7E58FFB4835BFFB08358FFAE8358FFAD8359FFAB825BFFAB815CFFAD805EFFAD805FFFAE7F5FFFB08361FF9B7251FFB08D73FFB29481FFFFEAE2FFF8EBE9FFFFFAFFFFF5F0F9FFF5F1F7FFFBF4F7FFC2B6B0FF5B4637FF62452AFF69441EFF744A1DFF71411FFF693E1DFF6B452DFF5E4231FFD6C3BBFFFFFAF8FFF6F1F3FFF8F7FBFFFBF8FAFFF3ECE9FFFCEDE4FF957F6DFF9C7E61FFA98360FFAC8057FFB0845BFFAB815EFFA9805FFFAB815EFFAB815CFFAD825BFFAE8259FFB08358FFAE8358FFB3895FFFA47D57FFA27D5BFF9E7C5EFFA88B70FFDFC5ADFFFFF6E2FFFFF6E4FFFFF7E5FFFFFAE5FFE5C9B1FFAE8D73FFA47C5FFFA67B5AFFA77A55FFB4865DFFAE8358FFAE8358FFAD8359FFAD825BFFAD815CFFAD805EFFAD805FFFAD805EFFAE815CFFA87E5BFFA78266FF93745FFFCDB7ABFFFFF4F1FFFDF4F7FFF9F5FBFFF7F3F9FFF8F1F4FFFFF5F1FF857265FF5D4228FF694422FF784E23FF744726FF683E21FF5F3D26FF896F5FFFFFF0E9FFFFFBFBFFF2ECF1FFF6F2F7FFF2EDEEFFFFF9F5FFBAA99CFF967E68FF9C7D5EFFA9825CFFB78C61FFAC7F54FFAD815CFFAB815EFFAB815CFFAD825BFFAE8259FFB08259FFB08358FFAE8259FFA77E57FFA8825FFF9D7B5DFFB3957CFFEED6C2FFFFFAE9FFFFF9ECFFFFFEF2FFFFFBF2FFFFF9ECFFFFFBEAFFF2D7C3FFB6947CFFA07A5CFFA97F5CFFA47952FFAE8259FFAE8358FFAE8259FFAD8359FFAD825BFFAD815CFFAD805EFFAD805EFFAA7D57FFB88C67FF9F7959FF9F8067FFA18878FFFCEAE3FFF9EFEFFFFBF5FAFFFAF3FAFFF8F1F4FFFFF7F5FFD0C0B4FF5B402BFF684726FF6B4319FF764D2DFF6C4529FF583924FFCEB6AAFFFFFBF8FFFEF6F7FFF8F2F7FFFBF6F8FFF7EFEFFFF2E5DDFF897564FFA0856BFFA58261FFA47B54FFB5885DFFAB7E53FFAD825BFFAD815CFFAD825BFFAE8259FFB08259FFB08358FFB08358FFAE8259FFAB845EFFA78463FFAA8D72FFD8C0ACFFFFFDF0FFFFFEF6FFF1E6E2FFF2EBE8FFEFE7E7FFEDE4E0FFFFFDF5FFFFFEF1FFDBC2AEFFAC8E73FFA78161FFA8815BFFAD8359FFAE8358FFAE8358FFAE8259FFAD8359FFAD825BFFAB815CFFAD815CFFAC7F59FFAB8059FFAB8261FF9F7D60FF9A7F6BFFC1ADA2FFFFF6F2FFF9F0F3FFF8F1F8FFFEF8FDFFF2E8E8FFFFF4EDFF705844FF65472AFF643F19FF6D462AFF68442CFF674B3AFFFBE7DCFFFFF4F2FFF6EFF2FFFAF4F9FFFDF6F9FFFFFAF6FFC2B2A5FF8D755FFF9F7F62FFAE8865FFA77D53FFAD8054FFB3865AFFAE8259FFAE815BFFAE8259FFB08259FFB08358FFB08358FFB08259FFAD825BFFAB8563FF9E7E61FFC7AC97FFFBE8D9FFFFF5EDFFFCF4F4FFFFFEFFFFFFFDFFFFFFFDFFFFFFFEFFFFFCF4F4FFFFF7EFFFFEEBDCFFC9B19BFF9E8063FFA98462FFAB825BFFAE8259FFB08358FFB08358FFAE8259FFAD8359FFAB825BFFAD825BFFB0845BFFA67953FFAC825DFFA68060FF9A7B62FF9C8373FFF6E4DDFFFFF8F8FFF7F0F5FFFFFBFFFFF2EBEEFFFFFAF6FFA38F7EFF62452AFF6C4824FF623F25FF62422BFF92786AFFFFF2EBFFFAF2F3FFF6F0F5FFF6F0F5FFFEF6F7FFF8EBE3FF9A8675FF9E8067FFA78463FFAF865FFFAD8257FFB18256FFB6875BFFB08259FFB08259FFB08259FFB08358FFB08358FFB08259FFAD825BFFA9815EFF9A7658FFB79980FFF4DECCFFFFFFF7FFFEF5F2FFF0ECF1FFF0F1FBFFE7E9F4FFEAECF7FFF1F2FCFFEDECF0FFFAF5F2FFFFFFF7FFF3E2CFFFB29B81FF957657FFA7815EFFAD825BFFAE8259FFB08358FFAE8358FFAD8359FFAB8359FFAB8359FFB2845BFFB08259FFA87B55FFB28A67FF9B795CFF9E816CFFC9B5AAFFFFFBF7FFF9F2F5FFF8F4FAFFFBF5FAFFFDF1EFFFE0CFC2FF624830FF694827FF5F4126FF634631FFBCA69AFFFCEDEAFFFFF9FCFFFBF7FDFFF3EDF2FFFFF6F6FFDAC7BFFF8A715DFF9B795CFFB8916BFFA77B52FFB18458FFB8885EFFAA7D52FFB08358FFB08358FFB08358FFB08358FFAE8259FFAD825BFFA9815EFFA68060FFA6886DFFEBD2BEFFFFFBEEFFFFF6F0FFFCF6F7FFF4F3FCFFEDEFFAFFF2F5FFFFF6F9FFFFEEF0FBFFF0F2FAFFF5F5F5FFFCF6EFFFFFFCEEFFE4D1BCFF9C8468FFA48160FFA9815EFFAE815BFFB08259FFAE8358FFAD8358FFAB8458FFAB8458FFAE8358FFAE8156FFB1835AFF" & _ "AA7E59FFAE8866FF9D7E65FFA68F7FFFFFEFE8FFFFF7FAFFECE8EEFFFBF7FDFFFBF3F4FFFFFAF1FF654D39FF5F4021FF64462DFF513923FFF9E7DCFFFCF0EEFFFBF5FAFFF6F3FCFFF1EAF1FFFFF7F7FFA18B7FFFA4856EFFA57F5DFFAA8056FFB38458FFB6875BFFB18459FFAD8055FFAC7F54FFBF8F65FFAC7F54FFAB7F56FFAD825BFFA77F5CFFAE8868FF95745AFFDABFAAFFFFEBDBFFFFFFF7FFFFF4F2FFF0EBEDFFFDFCFFFFE2E4EFFFF7F9FFFFEDEDFBFFF5F5FFFFEFF1F9FFF1F3F4FFFEFDF9FFFBF7ECFFFFFEECFFC8B39DFF987A5FFFB28B6BFFA47755FFB78A64FFA87C53FFAA8055FFB28B5FFFAB8458FFAE8358FFAD8055FFB5885DFFA97D54FFB28661FF9F7B5DFF987D69FFEDDAD2FFFAF2F3FFFCF8FEFFF1EEF7FFF6F1F3FFFFF9F1FF96806EFF5D3F22FF61462CFF644C38FFFFF0E4FFFDF3F3FFF7F3F9FFF4F0FBFFF9F2F9FFFEF1EFFF9F8577FFA48369FFA97F5AFFB08155FFB58458FFB5865AFFB0845BFFAD8158FFB18157FFAC7D51FFB5875EFFAB8059FFAB8261FFA17D5FFF95765DFFC1A692FFFFF1E1FFFFFAEFFFFFF3EDFFF6EDEAFFFDF7F8FFF0ECF1FFFFFDFFFFDFDDE3FFF1E9F3FFF8F1F8FFF9F8FCFFEEF0F0FFE8ECE7FFFFFFF9FFF5EFE2FFFFF5E3FFC1A692FF957159FFAB8164FFA97C5AFFB1845FFFAE845AFFAA8356FFA98255FFAE845AFFAA7E55FFB7875DFFAF8054FFB3855CFFA67D5CFF9D7E67FFDCC9BCFFFFF5F5FFFDF9FFFFF2F1FBFFF7F3F8FFFFF8F2FFAC9887FF5E4126FF5F472BFF826B55FFFFF7EEFFFEF6F6FFF2EFF8FFF3EFFAFFFFFAFFFFF1E0DDFF9B7F6EFFA68062FFAF8158FFB48254FFB58456FFB28559FFAF845DFFAE835CFFB28258FFA97A4EFFB2845BFFAF8562FFAA8668FF96775EFF9E8473FFF4DED2FFFFFFF7FFFFF6F0FFFAEFEBFFFBF2EFFFFFFDFAFFFBF4F1FFF6ECECFFA99D9BFFBEAEAFFFFCEFEDFFF7EFEFFFFCFBF7FFF3F7F2FFF4F8F2FFFAF8F0FFFFFFF7FFEED6CAFFA07F6FFFA47B64FFA67A5DFFB28563FFAF855BFFAA8356FFA58153FFAD845DFFA87B55FFB7875DFFB38254FFB28357FFAD825BFFA18066FFC1AA9BFFFFF3F1FFF9F5FBFFF1F0FAFFF4F2F8FFFDF2EEFFCAB7A8FF5C3F24FF5E462AFF9C8771FFFFFAF1FFFFF7F7FFF2EEF9FFF4F0FBFFFFFCFFFFD8C5C0FF9B7B68FFA87F5EFFB48357FFB88455FFB58355FFB08358FFA9825CFFAA835DFFAF7F55FFB9885CFFA57852FFAC8565FFA38169FF977D6CFFD3BFB4FFFFF8F2FFFFF4F2FFF4EBE8FFFFF6F3FFFFFBF7FFFFF4EEFFFFFFF7FFC3B3A7FF877368FF90756BFFE6CDC3FFFFF1E8FFFFFBF4FFFDFFFBFFE0E6E1FFFFFFFCFFF3ECE9FFFFEFEAFFDBBEB5FF9D7667FFAE826BFFA87C5DFFAA815AFFB0895CFFA68155FFAC855FFFA67A55FFB7875DFFB68557FFB28052FFB0845BFFA68264FFA78F7DFFFFF3F1FFF6F2F8FFEFF0FAFFF4F2F8FFF7EEEBFFEBD8C9FF5B3E23FF604628FFAE9781FFFFF9EFFFFBF6F5FFF0EFF9FFF4F3FDFFFFF5FBFFBFABA6FF9C7C65FFAD805EFFB78557FFBA8553FFB58454FFAE8156FFA57F5CFFA6805DFFAF8257FFB8885EFFA87C57FF9F7A5EFF987A67FFBAA79AFFFFF1EEFFFFF6F8FFFDF6F9FFF8F1F4FFFFF5F5FFFFFDF7FFFFF2E6FFEDD9C8FFA18973FF9B7C65FF9C7761FFB79480FFFEE7D7FFFFF7EAFFF8FBF2FFEEF5F2FFF1F6F7FFF6F3F5FFFFF4F6FFFFEEEDFFC19D93FFAB7F6EFFA3765BFFA97F5AFFAC8559FFAB865AFFA98360FFA57B58FFB3865BFFB78557FFB48051FFB5855BFFA98262FF977C68FFFFF7F3FFF9F5FBFFF3F4FEFFF6F5FEFFFAF1EEFFFFF1E2FF604328FF614729FFB39D84FFFFF5E9FFFAF5F4FFF1F0F9FFF6F5FFFFF8EEF4FFB4A19AFFA07E67FFAF825DFFBB8556FFBC8552FFB58454FFAC8057FFA47F5DFFA47F5DFFB3865BFFAA7A50FFB38966FF99785EFFA58C7CFFEDDDD6FFFFFBFCFFF5F1F7FFF9F6FFFFFEFAFFFFFAF0F0FFFFF9F1FFFFF1E0FFAA9078FF9B7B5EFFAC8666FFAC7D5EFFA97D60FFC7A891FFFFF9E7FFF8F7EDFFEFF6F3FFEEF5F8FFF5F7FFFFFFF4FCFFFFF1F5FFFFDBD7FFB28679FFAA7E66FFA97F5CFFA07B4FFFAD8A5EFFA78260FFA67D5CFFB08259FFB68456FFB58250FFB58458FFAA8160FF927762FFFFF5EFFFF8F4F9FFF2F2FEFFF6F5FEFFFBF2EFFFFFF8E9FF62452AFF624929FFB29C83FFFFF4E8FFFAF5F4FFF0EFF8FFF8F7FFFFF4EBEEFFBDA8A0FFA48068FFB1825CFFB98452FFBB8451FFB58454FFAD8359FFA48062FFA3805FFFB2855AFFAC7C52FFAE8663FFAE8F76FFDAC4B8FFFFFAF6FFF6F0F5FFF2F1FBFFEDEDF9FFF9F6FFFFFBF3F3FFF4E5DCFFDAC2AEFF937558FFA17B58FFAE8259FFB17A53FFB6825EFF99775AFFE8D5C0FFF7F5EAFFE9F0EDFFF4FCFFFFE9EBF6FFFEF2FEFFFFE9F1FFFFF7F7FFE3B8AFFFBB8F78FFA87E5BFFA58054FFAA875BFFA27F5EFFA88161FFAE8057FFB58355FFB98452FFB28153FFA9815EFF997C67FFFFF3EDFFF7F3F8FFEFEFFBFFF4F3FCFFFCF3F0FFFFF4E5FF64482AFF64482AFFB09A81FFFFF4E8FFFAF5F4FFEFEEF8FFF9F8FFFFF3EAEDFFC6B3ABFFA48068FFB0815BFFB78250FFBA844FFFB68555FFAF855BFFA48264FFA58261FFAD8054FFBB8E62FF9B7654FFC6AB96FFFFFBF4FFFFF7FAFFECEBF5FFF4F4FFFFF0EFF9FFFCF7F9FFFFFEF6FFDFCBBAFF9B7E63FFAE8A66FFA98157FFB48559FFC28B60FFB17D58FFA68060FFA9927CFFEBE3D6FFFCFDF9FFF2F6FBFFEFF0FAFFF9EFFBFFFFEDF6FFFFEFF0FFFFF5EDFFC39C86FFA17A5AFFB48E64FF" & _ "A48156FFA37D5DFFAA8363FFAC7E55FFB38153FFB98654FFB07F51FFA8805DFF9E816CFFFFF5EFFFFCF6FBFFF1F2FCFFF7F7FDFFFFF8F5FFFFF3E3FF674D2FFF614328FFAF9781FFFFFFF7FFEDE7E8FFF7F8FFFFF5F5FFFFF9F3F8FFB8A69FFF9F8166FFAF855BFFB78551FFB17D48FFB78855FFB3895EFF9B7857FFA5805EFFB18354FFB38758FFBC9A7CFFFFEFDEFFFFF8F9FFEDEEF8FFECEFFDFFEBEBF7FFF3ECEFFFFFF7EEFFFEE6D0FFAC8D6EFFA37E58FFAF855AFFAC8255FFB18458FFB18157FFAB7E58FFA17B5BFF9F836BFFBDAD9DFFF4EAE3FFFFFEFFFFF0E9F0FFFDF5FCFFFFF7FBFFFEEAE9FFFFF3E9FFFFF0DDFFAF8E74FF9B7654FFAC8663FFA98361FFAA805DFFB08259FFB07F51FFBE8C5EFFAC7C52FFAA8363FF907561FFFFF6F0FFFBF6F8FFF3F2FBFFF2F1F5FFFDF7F2FFFFFCECFF584226FF65472CFFB59A85FFFFF7EEFFF5EFF0FFF5F6FFFFF1F3FEFFF9F3F8FFB7A7A0FFA08269FFA07A50FFB78654FFBA8853FFB38451FFAD8358FFA17E5CFFA98664FFB2885DFFA67F58FFFCE2CAFFFFF5ECFFFBF9FFFFF6F9FFFFE6E9F7FFF7F6FFFFFFF8F4FFFFFFF1FFB89A7FFFAB8763FFA5805AFFAE8760FFA7815EFFA6805DFFA8825FFFA88361FF9E7D63FF907561FF9A877AFFCDBFB9FFF6EEEFFFFDF7FCFFFCF5FCFFF9F2F7FFFFF5F5FFFFFDF6FFFFF0E1FFE9CEB9FF9D7F64FFA37F61FFA67F5FFFAA805DFFBC8E65FFA8774BFFB38256FFB1855CFFA58163FF947B67FFFFF7F1FFFDF6F9FFF6F4FAFFF3F2F4FFFDF7F0FFFEF1E1FF5A4529FF67472AFFAC917CFFFFF0E7FFFDF5F6FFF7F6FFFFF0F1FBFFFBF5FAFFC7B7B0FF9E8369FF9C7850FFB88858FFB98955FFAC7E4EFFB0865BFFA78462FF9C7D5EFF997B5EFFDBC1A9FFFFFFF5FFF9F1F1FFF4F3FCFFF1F3FEFFF4F5FFFFF7F2F4FFFFF8F1FFD6BFAFFF997B62FF917356FFD1B499FFD9BFA7FFC5AD99FFD7BFABFFD3B79FFFD8BCA4FFD7BEAAFFC7B4A7FFBCAEA8FFD1C9C9FFF2ECF1FFFCF9FFFFF4F0FBFFF1EEF7FFFBF4F9FFFFF7F7FFFFF4EDFFFFF7EAFFBFA795FF9A7E66FFA68062FFAA805DFFB1835AFFB08056FFB7875DFFA47952FFA38164FFA88E7DFFFFF6F0FFFBF5F6FFF6F5F9FFF6F3F5FFFFF8F1FFEBDDCBFF5D472BFF634326FF92765EFFFFF5EAFFFFF5F5FFF7F6FFFFEFF0FAFFFBF5FAFFE4D7CFFF987E66FFA5815DFFB5895AFFAD7E4BFFAC7E4FFFB68C62FFA3805EFF907259FFAE9A89FFFFFFF7FFF9F1F1FFF3EFF4FFF1F2FCFFEDECF6FFF3EDF2FFFFF8F6FFE8D5C8FF98806CFF967A62FFAE947CFFFFEADAFFFFF6EAFFF1E8E5FFFFFDF9FFFFF3E8FFFFF3E4FFFFF9EEFFFFFBF3FFFCF2F2FFF8F3F5FFF7F4FDFFF1F0FAFFF0F0FCFFF7F6FFFFF1EFF5FFF0EBEDFFFFFDFAFFFEF2ECFFF4E5DCFFAF9888FF9D7B5EFFB38966FFA37650FFB4865DFFB78B62FF99714EFFAD8C72FFB39C8CFFFFF5EFFFF7F1F2FFF5F1F6FFF7F2F3FFFFFAF1FFD1C1B0FF60482CFF634123FF72563EFFFFFBEEFFFCF0EEFFF9F7FDFFEFEEF7FFF8F3F5FFFFF3EDFF957D67FFA68361FFB0865BFFAD7F50FFB18458FFA98157FF9D7856FFAA8F7AFFEEE2DCFFFDF9FEFFEDEAF3FFF6F5FFFFF8F7FFFFF9F5FBFFF0E4E2FFFFF3EAFFB39B89FF9B8169FF967C64FFF8E2D0FFFFF2EAFFF7F2F4FFF9FAFFFFF2F4FFFFFFFCFDFFFFF3EDFFFEF2F0FFFFF7F7FFFBF6F8FFF8F6FCFFF8F5FEFFEFEEF7FFF4F5FFFFF6F7FFFFF5F4FDFFF2F0F6FFFDF8FAFFF8F2F3FFFFFEFEFFDDCCC3FFA38169FFB18764FFAD805AFFA97C56FFAD815CFFA6815FFFA5876EFFC5B1A0FFFFF6F0FFF6F0F1FFF5F2F4FFF9F4F3FFFFFCF2FFB6A592FF62482AFF664426FF61432AFFFDE8D9FFFDF1EDFFFBF5FAFFF1EFF5FFF5F0F2FFFFFCF6FFA48E7CFF9C7D5EFFA78059FFB78C61FFB3895EFF9D744DFFAB8664FFE7CCB7FFFFFCF9FFEFEEF7FFF2F1FBFFF7F4FDFFF7F3F9FFFAF0F0FFFFFFF8FFC4B09FFF967B66FF9F846AFFD5BBA3FFFFFDECFFFFF4F0FFEEEBF4FFECF3FFFFE4EAFDFFF6F4FAFFF5EDEDFFF6EEEEFFF6F0F1FFF1ECEEFFF4EFF1FFFAF6FBFFFAF6FBFFF8F4F9FFF0ECF1FFFFFBFFFFFFFCFFFFECE7E9FFFFFEFFFFF5F0F2FFFFF2ECFFD7B89FFFA37956FFAF835EFFA87E59FFAB8261FFA98769FF856A55FFEDDDCDFFFFF8F4FFF9F4F3FFFBF6F7FFFCF5F2FFFFF8ECFF98836EFF64482AFF684524FF5F4126FFD0B9A9FFFFF7EFFFF9F2F5FFF7F3F9FFF8F3F5FFFFF6F2FFCAB5A6FF997B62FFA27D5BFFB58E67FFA98059FFAC855EFFDDB896FFFFF6DEFFFDEFE9FFFDF8FAFFFDF7FCFFF6EFF2FFFBEFEDFFF9E9E2FFF7E2D3FF8F7662FF9D7F66FFBFA186FFFFFEE6FFFFF0E0FFFFFBF5FFFAF6FBFFEEF1FFFFF1F6FFFFFBF7FCFFFEF6F6FFFFFBFBFFFFFCF9FFFEF5F2FFFFF6F3FFFFFBF7FFFFF6F2FFFFF5F1FFF6EDEAFFFFF9F6FFFFFCF9FFF1E9E9FFFFFBFCFFEFEAEBFFFFFAF2FFFFEED6FFC49978FFAB815EFFAC8362FFAB8769FF9F8067FF8D7563FFFFFAEEFFFFF6F2FFFBF6F5FFFFFAF9FFFDF3ECFFFCEBDEFF765F49FF624526FF684321FF644526FFA9917DFFFFFCF3FFFBF0F2FFFEF8FDFFFFF8FBFFF7EEEBFFEAD8CDFF9A826CFF9B7C5DFFA98561FF98734DFFC9A47EFFFFEAC6FFFFFDE2FFFFF9EAFFFCECE5FFFFFFF9FFFFF2EBFFFFF7ECFFFFF4E5FF99806CFF9C8068FFA9886EFFFFEBCEFFFFFBE2FFFFFBE7FFFFF0E5FFFFF4F0FFF8F2F7FFF7F3F8FFFFF7F7FFFEF4EDFFFFF4EEFFFFF4ECFFFFF3E7FFFFF9ECFFFFFAEDFFFFEFE0FFFFFBECFFFFFCEFFFFFF4E7FF" & _ "FFF6EAFFFFFFF7FFF4E8E2FFFFFFFBFFFFF5E9FFFFFCE2FFFFDFBEFFB18868FFA07A5CFF9C7B61FF9E836EFFBBA899FFFEF2E8FFFBF2EEFFFAF5F2FFFFFBF8FFF9EEE6FFF1DECFFF60462EFF613F21FF6F4926FF684726FF6D523DFFFFF7EAFFFFF7F5FFF9F2F5FFFFF9FCFFF8F0F0FFFFF0E7FFB69F8FFFAB8D74FF987658FFA6815FFFB38F6BFFC09C78FFC29F7EFFBEA085FFBE9F88FFBC9F8AFFB89D88FFB29782FFAB8E79FFA4856EFF9F8166FFB8987BFFBB997BFFBE9C7FFFBC9E83FFBA9D88FFB59D8BFFB19B8FFFAE9A8FFFAD9C8FFFAD9C8FFFB19D8CFFB39D8BFFB69E88FFB89E86FFBC9F84FFBC9F84FFBC9F84FFBC9F84FFB89E86FFB69E88FFB39D8BFFB19D8CFFAF9C8DFFB59D8BFFBF9A7EFFD4AB8BFF9F795BFFA8876DFF947860FF937D6BFFFDEDE1FFFEF5ECFFF6F0EBFFFFFFFCFFFAF2EBFFFFFBEFFFB7A18FFF654A30FF6A4726FF633C16FF714E2CFF62462EFFDDC8B9FFFFF6F2FFFBF3F4FFFAF3F6FFF8F0F0FFFFF7F1FFD9C8BBFF907862FFA08267FFA48264FFA6815FFFAB8763FFB28D67FFA77E57FFA87E59FFA8805DFFA78161FFA58163FFA17F62FF9F7D60FF9D7B5EFF9D7B5DFFA17D5FFFA57F5FFFA78161FFA68362FFA68264FFA58163FFA07F65FF9A8068FF98806AFF9C8167FF9E8166FFA18263FFA58260FFA8825FFFA8835DFFA8835DFFA8825FFFA58260FFA38261FFA18164FF9E8166FF9C8068FF9F8067FFB1896CFFA98060FFAC876BFF9A7C63FF9B836FFF9D8D7DFFFFF6ECFFFCF6EFFFFEF8F3FFF7F1ECFFFFF4ECFFFFF7EAFF7A624EFF6D4F34FF603B19FF6A411AFF724D2BFF604328FF9E8876FFFFFBF3FFFAF0F0FFF8F1F4FFFCF6F7FFFFFCF8FFF7E8DFFFA68F7FFF9D8169FFA28265FFA3805FFF9E7A56FFA77F55FFB38254FFB48353FFB38256FFAF8158FFAD815CFFAA8160FFA98262FFA98365FFA27C5CFFA37D5DFFA6805EFFAB815CFFAD825BFFB08358FFB18157FFAC8057FFA6815FFFA28062FFA48160FFA6825EFFA9825CFFAB8359FFAE8358FFB08358FFB08357FFAE8358FFAE8259FFAB825BFFA9825CFFA7815EFFA6815FFFA78060FFA37A59FF9B7454FFA68467FF9F856DFF907C6BFFD5C7BBFFFEF6EFFFFDF9F4FFFCF7F4FFFCF3EFFFFFF5EBFFF2DFD0FF573C27FF644225FF714827FF7A512AFF633D1AFF66482BFF6C5440FFF3E4DBFFFAF1EEFFF8F1F4FFFFF9FCFFFFF8F8FFFAEEE8FFE9D6C9FF9B826EFF9A7C61FFA88766FFA5815DFFAB8157FFB98858FFBC8755FFB88455FFB48355FFB18157FFAD805AFFAB815EFFA9805FFFA7815FFFA7815FFFAC825FFFAF845DFFB48559FFB68555FFB98452FFB58355FFAE835CFFA8825FFFAA835DFFAC835CFFAF835AFFB18459FFB38458FFB58456FFB58456FFB58456FFB38458FFB38458FFB18459FFAF835AFFAE835CFFAE825DFFA77D5AFFAB8464FF9C7B61FFA18874FFA19083FFFFF9F0FFFDF8F5FFFAF7F3FFF8F5F1FFFDF5EEFFFFFFF3FFAE9A88FF5E4027FF654123FF744A27FF7A5026FF5C3711FF694A2BFF543C26FFAB9B8FFFFFF8F4FFFAF4F5FFFAF5F7FFF8F1F4FFFDF1EFFFFFFCF3FFC1AA9AFF977B63FF9E7C5EFFAC8864FFAE855EFFAB7E53FFAF7E52FFB18054FFB28155FFB18256FFB18157FFAD805AFFAC805BFFAA805BFFAA805DFFAB815CFFAE815BFFAF8257FFB38254FFB68253FFB38153FFAD805AFFAA805BFFAC805BFFAD805AFFAD8158FFAF8158FFB18157FFB18157FFB18157FFB18256FFB38256FFB38256FFB18256FFB18157FFB18157FFAF8158FFAF835EFFAA8363FF987960FFA48C7AFFE6D7CEFFFFFBF6FFFBF9F8FFF3F4F2FFF9F6F2FFFEF7EEFFF8E8DBFF664E3AFF67462CFF744D2DFF603311FF6D4319FF6C451FFF6A482AFF593F27FF604F42FFF1E6E2FFFAF4F5FFF6F2F7FFF5F0F2FFFFFBFBFFFEEEE7FFFCE7D8FFB0967EFF947556FFA98561FFA9825CFFAA805DFFAB815CFFB0835DFFB3865BFFB5855BFFB68559FFB38359FFB08259FFB0835DFFAF845DFFAF835EFFAF835EFFB0845BFFB2855AFFB68559FFB6845AFFB0835DFFAF835EFFAF835EFFB0835EFFB0835DFFB0835DFFB2835DFFB2835DFFB2835DFFB2845BFFB4835BFFB4845AFFB6845AFFB6845AFFB68559FFB4845AFFA97D58FFA78161FF997B62FFD4BDADFFFFFFF8FFFDF8F5FFEBEBEBFFF6F8F8FFF3F2EEFFFFFFF8FF9E8F7FFF533B25FF6E4B31FF694020FF704220FF6D4217FF764D26FF6C4928FF60442CFF4D3A2DFFA1958FFFEEE8E9FFF9F5FAFFF7F3F8FFFFF9FAFFF8EAE4FFFFFFF2FFE6CBB6FFB49576FFA7835FFFA47E5BFFA17E64FFA27F65FFA68060FFAB815CFFAE8057FFB18054FFB07E50FFAE7D51FFAF7F55FFAB7F56FFAA7E59FFA87E5BFFA87E5BFFA87E59FFAB7F5AFFAB7F5AFFAB7E5CFFAB7E5CFFAB7E5CFFA97F5CFFA97E5DFFA97E5DFFA97E5DFFA97E5DFFAB7E5DFFAB7E5CFFAC7F5AFFAE7F59FFB07F59FFB07F57FFB28056FFB07F57FFA67A55FFB79171FFC8A992FFFFF2E3FFFFFDF6FFFBF9F8FFEAECEDFFF6F8F9FFF3F2EEFFDED7CEFF554534FF5F472FFF6C4A2DFF623918FF7F512FFF74491EFF6E461CFF6B4624FF5D4025FF614B39FF4A3C30FFDED5D1FFFDF7F8FFFCF7F8FFF1EBECFFFFFDF9FFFFF1E8FFFFFAE9FFDCC4AEFF9F8469FF9C7E63FF9D7D66FFA07E66FFA68062FFAB815EFFB1835AFFB68559FFB88658FFB88658FFB48357FFB08259FFAE815BFFAA805DFFA9815EFFAA8160FFAA8160FFAB8261FFAE8160FFAE8160FFAE8160FFAC8160FFAC8160FFAC8160FFAC8160FF" & _ "AC8160FFAE8160FFAE815FFFAF815FFFAF825DFFB1815DFFB1825CFFB1825CFFAC825FFFA48167FFB79C88FFFFF5E6FFFFF7EEFFFFF7F4FFF0ECEBFFFFFFFEFFF3F0ECFFFFF9F2FF7E7163FF59442FFF604328FF5F3B1DFF7E5431FF653813FF72481BFF6B4116FF704C24FF654522FF62472DFF56412CFF79695CFFFFF5EDFFFFF8F4FFFCF5F2FFFBF3F3FFF9F2EFFFFDF4F0FFFFFAF3FFBFB4ACFF988578FF9E7F66FFA88161FFAF8463FFB1845FFFAF8158FFB4845AFFB58458FFAD7C50FFB48357FFB28258FFAF8158FFAD805AFFAE825DFFAD8360FFA9805FFFA57C5BFFAA7C5DFFAF8261FFB28564FFB18361FFAE815CFFAF7F5BFFB0815BFFB0815BFFAF805AFFAE7F59FFAE815BFFB0845FFFAE825DFFA97F5CFFA77F5CFFA08267FFA4948EFFEDE4E7FFFFFAFDFFFAF4F5FFEDE5E6FFFFF7F4FFFFFFF9FFFFF3E7FFBFAB9AFF6A523CFF54361BFF6D4A29FF68421FFF6C421DFF7B4E28FF7A5023FF6F4619FF704A20FF62401CFF644728FF5B4228FF59442FFF9F8F7FFFFFF7EDFFFFF6F2FFFFFCF9FFF9F4F3FFF9F4F5FFEAE7E9FFFFFEFFFFC5B9B3FFA2866EFFA88161FF9D7453FFA27855FFAF835EFFA77A54FFAA7C53FFC4946AFFB28258FFB38359FFB38359FFAD7F56FFA87B55FFA97E57FFAF835EFFB48765FFB18361FFAE805EFFA97C57FFA77753FFAB7A54FFB07F59FFB5845CFFB6885FFFAF805AFFAB7E58FFAC825DFFAD8764FFA68060FF9D795BFFA68466FFAD9583FFFBF4F7FFF9F9FFFFECEBF5FFF2EEF4FFFFFEFFFFFFFFFBFFFEECE1FFEAD3C3FF785B46FF57391EFF623F1EFF77512EFF6C451FFF6A411AFF754B21FF754B20FF6C4519FF724B24FF65411DFF664726FF674A2FFF4E3620FF594533FFCAB9ACFFFCF0E6FFFAF0E9FFFFFCF9FFEFEAE9FFFFFDFEFFF8F5F7FFFFFAF6FFE2CBBBFFB89982FFA4826AFFA88669FFA47E60FFA6805EFFAE8461FFA1764FFFAC8057FFAE8156FFB28258FFB6865CFFB6895EFFB4875CFFAE8156FFA97B52FFB78660FFB5845EFFB5845CFFB7865EFFB8875FFFB4835BFFAA7B55FFA2754FFFAA805BFFA27C5AFFA3805FFFA28265FF96785FFF9D8169FFD5BAA5FFFFFBEEFFFFFCFFFFE5E2EBFFFCF8FEFFEFE8EBFFFFF8F6FFFEEEE7FFFEEBDEFF7E6654FF583C24FF5D3D20FF6B4827FF704A27FF663F19FF694019FF744A20FF694319FF68411AFF734E28FF694521FF654220FF6D4E2FFF614429FF5A4028FF553F2DFFEBD8C9FFFFF6EAFFF9EEE6FFFFF9F5FFE9E4E3FFFFFEFFFFF2EBE8FFFFF9F0FFFCE7D8FFBEA595FF927763FF9F836BFFA6886DFFA07C5EFFA88260FFAE8761FFAD825BFFAA7E55FFAA7D52FFA97C51FFA97C50FFAD8054FFB38359FFAF7F55FFAC7B53FFAB7B51FFAD7F56FFB1835AFFB0835DFFAF835EFFAC8461FFAB8565FFAC8C6FFF9C7E65FF8B735DFFAD9785FFECD9CAFFFFFCEFFFFFF5EDFFF1E9EAFFFEF8FDFFFFFEFFFFFFF8F6FFFBEDE7FFFFFCF1FF725B4BFF5C432FFF674930FF6C4C2FFF6A4726FF66401EFF6B4320FF714722FF704720FF6C4721FF66411BFF6F4B27FF6B4723FF623E1AFF684523FF684726FF634528FF4E3319FF745C46FFE8D4C3FFFFFAEEFFFFFFF7FFFDF4F1FFECE7E6FFFFFCFBFFF8EFECFFFFF4EEFFFFFDF6FFE7D7CBFFA18C7DFF8F7765FF9F836BFF997B60FF9F7B5DFFA88260FFB28B65FFB78C65FFAE845AFFA87D52FFAE8358FFBB8E63FFB08358FFAE8358FFB1855CFFB48A60FFAF8560FFA77F5CFFA27C5CFFA17F62FFA3856CFF876F59FF998574FFDBCABDFFFFF6ECFFFAF0E9FFF3EAE7FFFFF8F5FFFFFBFBFFF9EDEBFFFEEFECFFFFF8F1FFFFF2E7FF9B8475FF533A26FF674B33FF624429FF664426FF653F1FFF6A4422FF79512EFF754E28FF69421CFF6F4C2AFF63401EFF66421EFF6C4824FF6B4620FF6B4620FF6C4721FF684321FF6F4D2FFF583B20FF624A34FFE1CDBCFFFFFEF2FFFFFFF8FFF6EDEAFFFFFEFFFFFFFAFCFFFFFBFCFFF6EEEEFFFEF2F0FFFFFDF7FFE5D5C9FFAB9687FF99806CFF9F836BFF987A5FFF987658FFA17E5CFFA98561FFA7825CFFA37C56FFA07953FFAA835DFFA5805AFFA47E5BFFA47F5DFF9F7C5BFF97775AFF997B62FF9E836EFFA28C7AFFCABAAAFFF2E3DAFFFBF1EAFFF9F2EFFFFDF8F9FFFDFAFCFFFAF5F6FFFFF3EFFFFFEFE8FFFFEDE5FFFDE7DBFF8E7767FF543B27FF72563EFF5B3D22FF634123FF654221FF66411FFF6D4725FF754D2AFF6C4421FF68401DFF684726FF644322FF623F1DFF6D4822FF744D26FF71491FFF70481EFF6F461FFF6E4825FF664322FF62452AFF58402AFFC1AE9FFFFEEFE6FFFFFCF8FFF3EBEBFFF5F1F6FFEBE9EFFFFAF6FBFFFFFEFFFFF8F0F0FFF7ECE8FFFFF2EAFFFFEFE3FFD3C0B1FFB8A290FF9C856FFF987E66FF9E8369FF9F8469FFA18469FFA28668FFA5886DFF9A7D62FF93755CFF987C64FFA48974FFB59D89FFCDB9A8FFE1D1C1FFFFF7EBFFFFF9F1FFFFF8F4FFF9F4F3FFF5F2F4FFF5F4F8FFF0F0F6FFF1ECEEFFFFF8EFFFFFEEDFFFFFF8E8FF816756FF604530FF664730FF523419FF5F3D1FFF6C4928FF6C4725FF6C4624FF6B4522FF68421FFF66401DFF6B4522FF5F3F22FF6B492BFF674422FF6C4721FF6F4821FF6B4117FF70451AFF74491EFF663D16FF77512EFF5F3D1FFF64492FFF5B4533FFA08F82FFFFF8EFFFFFF6F2FFF5F0F2FFFCFAFFFFF9F5FAFFEEEBEDFFF9F2F5FFFFFEFEFFFFFBF8FFFCF2EBFFFCF1E9FFFFF4EAFFFFF6EAFFFBEBDEFFDECEBEFFC0AE9DFFB5A392FFBBA998FFB9A796FFBEAB9CFFD0C0B0FF" & _ "EEDDD0FFFFF1E4FFFFF4E8FFFFF4EAFFFFF8EFFFFFF6F2FFF9F2EFFFF7F2F1FFF7F5F5FFFAF6FBFFF7F6FAFFF4F4FAFFFCF7F6FFFFF7EAFFE7CCB7FF634631FF62432CFF5D3E25FF5E3E21FF765436FF6B4827FF684321FF684220FF6B4522FF6C4623FF6A4421FF6F4926FF704A28FF624429FF644427FF684524FF6B4522FF6F461FFF71471CFF74471BFF74471BFF6F4419FF6E451EFF6F4A28FF6C4C2FFF573D25FF503A28FF887566FFD8C9C0FFFEF5F2FFFAF4F5FFFAF4F5FFF9F3F4FFF9F3F4FFFAF4F5FFFAF4F5FFFAF5F4FFF9F1F1FFFDF5F5FFFFFAF7FFFFF8F5FFFDF4F1FFFCF3EFFFFFF6F2FFFFFBF7FFFFF9F4FFF8F1EEFFF5EEEBFFFCF5F2FFFFFBF8FFFFFAF7FFFBF6F5FFF8F3F2FFFFFCFBFFF8F4F3FFF6F1F2FFF6F1F2FFF5F0F1FFFCF7F8FFFBF6F7FFF6EAE4FFA48C7AFF75563DFF57391EFF624225FF6A482AFF664322FF66411FFF694321FF6B4522FF6B4522FF6B4522FF6B4522FF6A4523FF6A4523FF6A4424FF644329FF644427FF684524FF6B4522FF6F461FFF71471DFF74471BFF74471BFF784D22FF71471DFF68411BFF684524FF65472CFF563924FF503723FF5C4738FFA89891FFE5D9D3FFFFFFFBFFFEF3EFFFF3EAE7FFFFFCFCFFFFFEFFFFF3EDEEFFFFFBFDFFF5F0F2FFECE9EBFFF1EDF2FFFCF8FDFFFFFCFFFFF6F2F7FFEAE6EBFFF2F1F5FFF9FBFCFFFDFEFFFFF9F8FAFFEDECEEFFE9E8EAFFF4F1F3FFFEFCFCFFEDE8E9FFFFFEFDFFFFFEFEFFFEF7F4FFFEF5F1FFFDF3ECFFBDB1ABFF675649FF6D5139FF634124FF603E20FF694625FF694323FF694321FF6D4724FF714926FF6D4522FF6D4522FF6B4522FF6B4522FF6A4523FF6A4523FF684524FF664427FF664427FF684524FF6B4523FF6D4620FF71461FFF72461DFF72471CFF6C4017FF72481EFF6C451FFF6A4523FF714D2FFF6D4C32FF604229FF583D28FF543D2DFF645142FFA69588FFF7E7DBFFFFFFF8FFF6EAE4FFF3E8E4FFFFFEFEFFFDF7F8FFFFFAFCFFFEFAFFFFF9F5FBFFF3EFF5FFF1EFF5FFF8F6FCFFFDFDFFFFEEF1F6FFF0F3F7FFF0F3F8FFF4F5F9FFFAFBFFFFFFFEFFFFF7F4F6FFEAE5E6FFFFFCF9FFF3E8E4FFF9EDE7FFFFF4EBFFD1C1B4FF857263FF5E4A39FF614834FF57361CFF63401FFF6E4B2AFF6E4927FF67411FFF6D4522FF734B28FF6C451FFF6D4620FF6D4620FF6B4522FF6B4522FF6A4523FF6A4424FF684426FF684327FF684426FF6A4424FF6B4523FF6D4522FF6F4520FF6F461FFF71461FFF6A411AFF774E27FF734C26FF653F1CFF653F1DFF674423FF6B4729FF6E4E31FF5F4128FF664C34FF654D37FF69513FFF927D6EFFD5C3B8FFFFF0E7FFFFF7F1FFF9EDEBFFF6ECECFFF4ECEDFFF9F1F2FFFCF5F8FFFDF6F9FFF9F2F5FFF3EEF0FFEFEDEDFFF5F5F5FFF6F4F4FFECEAEAFFEDE9E8FFF9F4F3FFFFFBF8FFFFF9F5FFFFFAF2FFF2E3DAFFBDAA9DFF705C4BFF482F1BFF553B23FF64492FFF5B3D22FF6A4628FF6D4826FF6F4A28FF6C4623FF69411EFF714926FF744A25FF673D18FF6D4620FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF6A4426FF6A4424FF6A4424FF6A4424FF6B4523FF6B4523FF6B4522FF6B4522FF6F4822FF714A24FF6B4320FF69411EFF6F4724FF6C4421FF643C19FF623C19FF6A4424FF573315FF543215FF5F4027FF62462EFF5E4531FF745B4BFF927C70FFD0BCB1FFEBD8D0FFFFF9F0FFFFFFF8FFFFF4EFFFFDEAE5FFFFEFE8FFFFF9F2FFFFFEF4FFFFFDF3FFFFF9EFFFFFF9EFFFFFFEF4FFFFF2E6FFD6C6BAFFA9988BFF7E695AFF5C4634FF543924FF654A30FF705033FF6C4A2CFF6F4929FF714C2AFF704B29FF674220FF67411FFF694320FF69411EFF6E4721FF734924FF6D431EFF6F4520FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF6B4424FF6A4424FF6A4424FF6A4424FF6A4424FF684524FF684524FF6A4424FF66411FFF684220FF69411EFF6F4724FF7C522DFF794E27FF72461DFF754920FF774B26FF754B28FF754C2BFF704A2AFF643F23FF58371DFF5C3D26FF664934FF553A26FF553B2AFF624837FF816756FFA58B7BFFBBA190FFBBA190FFB49B87FFA7927DFFAC9984FFA6917CFF8A7560FF6B5641FF5B4631FF5A422EFF5B432DFF5D432BFF5D3F26FF654528FF6A4628FF643E1CFF643D17FF70451EFF704621FF6C4623FF643F1DFF6B4522FF714B28FF6B441EFF67401AFF6F4520FF734924FF6F4520FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF6D4423FF6B4523FF6A4424FF6A4424FF684426FF664427FF664427FF664427FF644022FF6E4828FF6C4624FF6C421DFF6E431CFF6E4116FF704115FF794A1EFF6B3D14FF6D401AFF6D411CFF6C421FFF6F4625FF734C2CFF6F4B2DFF674528FF714E34FF6D4A30FF68452BFF623F25FF623D21FF623D21FF654024FF684426FF6C4D2CFF684C2AFF664726FF634627FF644728FF65472AFF644629FF654528FF6A482AFF6B4827FF6F4A28FF704825FF734821FF7B4F26FF7B4E23FF683C13FF704825FF684321FF6F4927FF724C29FF6C451FFF68411BFF6F4520FF6F4520FF6D4620FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF" Return _ReadImageFromText($tBuffer, $IMAGE, $iWidth, $iHeight) EndFunc ;==>_ConvertStringToImage Image From Text.au31 point
-
Referencing dynamic variable in For To Next Loop
jchd reacted to markyrocks for a topic
I definitely got that aspect of if. If you look at what i posted the controls are looped through and sent to the function ahead of time, It completely eliminates the need to use eval or whatever. In your above example you acknowledge the fact that $label and $combobox should be in there somewhere but those variables are never used. Just send the variable as a parameter and problem solved. I'm honestly not even sure why functions such as eval even exist bc in a situation like this its just giving you a crutch and a way to do things in a very unconventional way. I realize not everyone can be the master of everything right away but this is just the beginning of a bad habit. Arrays are what they are for this exact reason, to shuffle through a number of related variables in an organized manner. its the only real container type that exists in autoit so you should probably get acquainted. I'll also say based on what you've posted so far your code has no way to know when, if or which hotkeys have been set. My code at least takes care of that. I do have one question tho.... What is the purpose of the label changing?1 point -
Personally I prefer separate function for each action Reason 1: smaller code Func _Example_1() Local $s_My_Profile_Dir = @ScriptDir & '\WD_Testing_Profile' _WD_Capabilities_Startup() _WD_Capabilities_Capability('browserName', 'firefox') _WD_Capabilities_Capability('acceptInsecureCerts', True) _WD_Capabilities_Argument('-profile') _WD_Capabilities_Argument($s_My_Profile_Dir) Local $s_Desired_Capabilities = _WD_Capabilities_Build('firefox') EndFunc ;==>_Example_Danp2 Func _Example_2() Local $s_My_Profile_Dir = @ScriptDir & '\WD_Testing_Profile' _WD_Capabilities($_WD_CAPS__STARTUP) _WD_Capabilities($_WD_CAPS__ADD_CAPABILITY, 'browserName', 'firefox') _WD_Capabilities($_WD_CAPS__ADD_CAPABILITY, 'acceptInsecureCerts', True) _WD_Capabilities($_WD_CAPS__ADD_ARGUMENT, '-profile') _WD_Capabilities($_WD_CAPS__ADD_ARGUMENT, $s_My_Profile_Dir) Local $s_Desired_Capabilities = _WD_Capabilities($_WD_CAPS__BUILD, 'firefox') EndFunc ;==>_Example_Danp2 Reason 2: function list Reason 3: Caltips using $_WD_CAPS_* there is lack of direct information what to put into parameters Reason 4: easier to understand UDF Function Header (aka documentation) of course when it will be crated btw. Of course, both forms can coexist simultaneously.1 point
-
@mLipok maybe this. Saludos1 point
-
I like it. P.S. You sure are a fan of underscores. 😜1 point
-
1 point
-
You script crashes for another reason. There should be at least 5 points to fit the ellipse You should add a condition before drawing fitEllipse _VectorOfPointGetSize($tVectorPointPtr.value) >= 5 I found 2 ways to make the script dump errors. set the environment variable OPENCV_DUMP_ERRORS to 1 and restart SciTE. EnvSet within a script does not work. SciTE has to be restarted. I recommend this way because all your scripts will benefit from it. Add the following code in your script Local $hHandle = DllCallbackRegister("onError", "none", "int;ptr;ptr;ptr;int;ptr") _cveRedirectError(DllCallbackGetPtr($hHandle), Null, Null) ; ... Func onError($status, $func_name, $err_msg, $file_name, $line, $user_data) Local $errorStr = CStringToString(_cveErrorStr($status)) $func_name = CStringToString($func_name) $err_msg = CStringToString($err_msg) $file_name = CStringToString($file_name) If $func_name == "" Then $func_name = "unknown function" EndIf ConsoleWrite("OpenCV Error: " & $errorStr & " (" & $err_msg & ") in " & $func_name & ", file " & $file_name & ", line " & $line & "" & @CRLF) EndFunc Func CStringToString($src) Local $sSrcDllType If IsDllStruct($src) Then $sSrcDllType = "struct*" Else $sSrcDllType = "ptr" EndIf Local $strlen = CVEDllCallResult(DllCall("msvcrt.dll", "int:cdecl", "strlen", $sSrcDllType, $src), "strlen", @error) Local $tStr = DllStructCreate("char value[" & $strlen & "]", $src) return $tStr.value EndFunc ;==>CStringToString1 point
-
I see. I was not aware of those VarInt things. So here how to convert VarInt Hex to Decimal (up to 64 bits) : #AutoIt3Wrapper_UseX64=y #include "x64_Ops.au3" Local $bData = Binary("0x90BEBFDAE25B") ;Local $bData = Binary("0xFAD5841E") Local $iResult = 0, $iShift = 0 For $i = 1 To BinaryLen($bData) $iResult += _BitSHIFT64(BitAND(BinaryMid($bData, $i, 1), 0x7F), $iShift) $iShift -= 7 Next ConsoleWrite($iResult & @CRLF) You will need to use my x64 UDF to make it work though (see my signature).1 point
-
How to make an au3-code-Test-Tool by using 'AutoIt3.exe' ?
Letraindusoir reacted to Nine for a topic
Maybe this ? #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <IE.au3> Global $oMyError, $idEdtError, $Test TestAu3Code() Func TestAu3Code() GUICreate("CodeTest") Local $idEdtCode = GUICtrlCreateEdit("", 10, 10, 380, 180, $ES_AUTOVSCROLL + $WS_VSCROLL) Local $idCommand = GUICtrlCreateButton("RunCode", 310, 200, 80, 25) $idEdtError = GUICtrlCreateEdit("", 10, 235, 380, 160, $ES_AUTOVSCROLL + $WS_VSCROLL) GUISetState(@SW_SHOW) GUICtrlSetData($idEdtCode, 'Assign("Test", MsgBox(4096, "", _IEPropertyGet($oIE, "locationurl")))') While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $idCommand $oMyError = ObjEvent("AutoIt.Error", "ErrFunc") Local $oIE = _IECreate("www.baidu.com") Execute(GUICtrlRead($idEdtCode)) If @error Then GUICtrlSetData($idEdtError, "Execute @error = " & @error & @CRLF, 1) ConsoleWrite("Resulting = " & $Test & @CRLF) EndSwitch WEnd EndFunc ;==>TestAu3Code Func ErrFunc($oError) GUICtrlSetData($idEdtError, "Catch a COM Error !" & @CRLF & _ "ErrCode: 0x" & Hex($oError.number, 8) & @CRLF & _ "ErrDesc: " & $oError.windescription & @CRLF & _ "ErrLine: " & $oError.scriptline & @CRLF, 1) EndFunc ;==>ErrFunc1 point -
Hello @Mateocedillo first let me tell you that you're amazing. I try to think how you solve programming task and problem, It makes my brain collapse. It's very hard to help due to we probably don't share same perspective of the things. But I'll try to help you with a small explanation of the option Opt("GUICoordMode", 2) usage. #include <GUIConstantsEx.au3> Example() Func Example() Opt("GUICoordMode", 2) ;relative to cell mode GUICreate("My GUI Set Coord") ;~ GUISetCoord(0, 0) ;this is default position start at 0,0 left top corner for that reason It's commented maybe not needed at this point ;Imagine this as table of cell (we add 3 checkboxes one on the right side of the other) in the first imaginary row GUICtrlCreateCheckbox("Checkbox #1", 20, 10) ;at position 0,0 we Add checkbox1 - parameter 20 means x position and 10 means y position, both relative to GUISetCoord setted GUICtrlCreateCheckbox("Checkbox #2", 10, -1) ;at position 0,1 we add CheckBox2 - parameter 10 means space in pixel between last control and new one, parameter -1 means add in same y position like my last control GUICtrlCreateCheckbox("Checkbox #3", 10, -1) ;at position 0,2 we add CheckBox3 - parameter 10 means space in pixel between last control and new one, parameter -1 means add in same y position like my last control GUISetCoord(20, 60) ;this defines where my other rwo will start 20 means the x relative position and 60 my y relative postion. ;very important y position to avoid new controls over last added control try to set to a value greater than the sum of the height or the last controls. like we added just one row before, it will be ok height of a checkbox plus a number of pixel for separate let's say checkbox height was 20 and we sum 40 as space between last rwo and new one ;lets add two button one on the right side of the other GUICtrlCreateButton("OK #1", -1, -1) ;at position 0,0 first parameter -1 means default x position previous defined by GUISetCoord it was 20, second parameter means default y position defined by GUISetCoord it was 60 GUICtrlCreateButton("Cancel #2", 10, -1);at position 0,1 first parameter 10 means 10 space between last button and new one and parameter -1 mean keep y position GUISetState(@SW_SHOW) ; will display an empty dialog box ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd GUIDelete() EndFunc ;==>Example I hope it helps you. I speak Spanish too so Maybe I could help you by private message or maybe I could add you in WhatsApp. Send me private message. Saludos1 point
-
Rewrite of the PowerPoint UDF
JockoDundee reacted to water for a topic
Version 1.5.0.0 of the UDF has been released!Please see my signature below for the download link.1 point -
I needed a very fast x64 unsigned shift right, and doing it through an AutoIt array was way too slow. So I decided to make a .dll to perform such a task. While I was there, why not include all the bitwise operators that I know of. And then why not make a UDF. This is a bit like my wife does, she buys some draperies and then I end up repainting the whole room because the colors do not match anymore. Anyway, hope it can be useful for you too. Let me know if you have enhancements or comments, I will be glad to incorporate them (if possible). Version 2020-04-27 Func _BitAND64 Func _BitOR64 Func _BitXOR64 Func _BitEQV64 Func _BitIMP64 Func _BitSHIFT64 Func _BitROTATE64 Func _BitNOT64 Func _x64CloseDLL Func _Hex2Dec x64_Ops.zip1 point
-
Search Engine
dakotadevada reacted to cramaboule for a topic
Hello, As I was fed up of the search engine of windows, I decided to create my own... Can search word inside txt, ini, au3,... Much faster than Windows... If you leave blank the 'word inside file' then it search for files only! Filters like: *.* or *.jpg,... enjoy #include <File.au3> #include <Array.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $sRet Local $j , $aArayFound[1] , $a=0 , $b=0 #Region ### START Koda GUI section ### Form= $Gui = GUICreate("Search Engine", 553, 535, -1, -1) $iFolder = GUICtrlCreateInput("Folder to look in", 160, 10, 121, 21, $ES_READONLY) $bChoose = GUICtrlCreateButton("Choose Folder", 290, 10, 91, 21) $iFilter = GUICtrlCreateInput("Filter: *.*", 160, 50, 121, 21) $iWord = GUICtrlCreateInput("word inside file", 160, 90, 121, 21) $eEdit = GUICtrlCreateEdit("", 0, 120, 551, 411) $bSearch = GUICtrlCreateButton("Search", 290, 50, 91, 61,$BS_DEFPUSHBUTTON) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ;http://www.autoitscript.com/forum/topic/126552-solved-guictrlcreateinput-question/ While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $bChoose $sPath=FileSelectFolder ( "Choose Folder", "" , 0 , "" , GUICreate("") ) GUICtrlSetData( $iFolder, $sPath) Case $GUI_EVENT_PRIMARYDOWN $aCInfo = GUIGetCursorInfo($Gui) If $aCInfo[4] = $iFilter And $a = 0 Then GUICtrlSetData($iFilter, "") $a = 1 EndIf If $aCInfo[4] = $iWord And $b = 0 Then GUICtrlSetData($iWord, "") $b = 1 EndIf Case $bSearch If Not (StringInStr(GUICtrlRead($iFolder), ":\")) Then $MsgBox=MsgBox(5 + 16 , "Error", "The input folder is not correct:"&@CRLF&"Retry = Choose an another"&@CRLF&"Cancel = Exit") If $MsgBox <> 4 Then Exit EndIf EndIf If StringInStr(GUICtrlRead($iFilter), "Filter") Then $MsgBox=MsgBox(5 + 16 , "Error", "The input filter is not correct:"&@CRLF&"Retry = Choose an another"&@CRLF&"Cancel = Exit") If $MsgBox <> 4 Then Exit EndIf EndIf If StringInStr(GUICtrlRead($iWord), "word inside file") Then GUICtrlSetData( $iWord, "") EndIf GUICtrlSetData($eEdit, "Please Wait...") _Search(GUICtrlRead($iWord), GUICtrlRead($iFilter), GUICtrlRead($iFolder)) EndSwitch WEnd Func _Search($sSearchString, $sFindFile , $sPath) $aRetArray = _FindPathName($sPath, $sFindFile) If $sSearchString <> "" Then For $i = 1 To $aRetArray[0]-1 $file = FileOpen($aRetArray[$i], 0) If $file = -1 Then Else $text = FileRead($file) If StringInStr( $text , $sSearchString, 1)>0 Then $j += 1 ReDim $aArayFound[$j+1] $aArayFound[$j]=$aRetArray[$i] EndIf EndIf FileClose($file) Next ;~ _ArrayDisplay($aArayFound, "List of file with the String: "&$sSearchString&" found") $sEdit = "" For $i = 1 To UBound($aArayFound)-1 $sEdit &= $aArayFound[$i] & @CRLF Next GUICtrlSetData($eEdit, $sEdit) Else ;~ _ArrayDisplay($aRetArray,"List of folders found") $sEdit = "" For $i = 1 To UBound($aRetArray)-1 $sEdit &= $aRetArray[$i] & @CRLF Next GUICtrlSetData($eEdit, $sEdit) EndIf EndFunc ;~ http://www.autoitscript.com/forum/topic/95160-file-searcher ; Searches all subfolders of $sPath for $sFindFile (* and ? wildcards accepted) ; Returns an array containing full path and name of all matches. ; Number of matches is in zero index of array Func _FindPathName($sPath, $sFindFile) ;ConsoleWrite($sPath & @CRLF) Local $sSubFolderPath, $iIndex, $aFolders $search = FileFindFirstFile($sPath & "\" & $sFindFile) $aFolders = _FileListToArray($sPath, "*", 2) $error=@error While 1 $file = FileFindNextFile($search) If @error Then ExitLoop Else $sRet &= $sPath & "\" & $file & "|" EndIf WEnd FileClose($search) If $error = 0 Then ; no folder For $iIndex = 1 To $aFolders[0] $sSubFolderPath = $sPath & "\" & $aFolders[$iIndex] $aFoldersSubs = _FileListToArray($sSubFolderPath, "*", 2) If IsArray($aFoldersSubs) Then _FindPathName($sSubFolderPath, $sFindFile) Next EndIf Return StringSplit(StringTrimRight($sRet,1), "|") EndFunc ;==>_FindPathName I took some part of 'Malkey' 's script And an another part of 'Melba23' 's script Cramaboule EDIT1: Corrected referance EDIT2: Changed program1 point