UEZ Posted Wednesday at 03:08 PM Posted Wednesday at 03:08 PM (edited) I've here a DLL which was created in C++ (VS) with following headers: extern "C" { __declspec(dllexport) int InitCapture(void* hwnd, int* width, int* height) __declspec(dllexport) int InitPrimaryMonitorCapture(int* width, int* height) __declspec(dllexport) int InitMonitorCapture(int monitorIndex, int* width, int* height) __declspec(dllexport) int InitRegionCapture(int x, int y, int regionWidth, int regionHeight, int* actualWidth, int* actualHeight) __declspec(dllexport) int InitMonitorRegionCapture(int monitorIndex, int x, int y, int regionWidth, int regionHeight, int* actualWidth, int* actualHeight) __declspec(dllexport) int GetMonitorCount() __declspec(dllexport) int GetCaptureMonitorInfo(int monitorIndex, int* x, int* y, int* width, int* height, int* isPrimary) __declspec(dllexport) int GetRegionInfo(int* x, int* y, int* width, int* height, int* monitorWidth, int* monitorHeight) __declspec(dllexport) int GetCaptureMode() __declspec(dllexport) int GetCapturedFrame(uint8_t* buffer, int bufferSize) __declspec(dllexport) int GetCapturedFrameNB(uint8_t* buffer, int bufferSize) __declspec(dllexport) int GetCapturedFrameTimed(uint8_t* buffer, int bufferSize, int timeoutMs) __declspec(dllexport) int GetBufferInfo(int* expectedSize, int* actualSize, int* frameAvailable) __declspec(dllexport) void CleanupCapture() } // extern "C" I'm not able to call the function "InitRegionCapture". Autoit: expandcollapse popup#AutoIt3Wrapper_UseX64=y #include <Array.au3> #include <WinAPIRes.au3> #include <WinAPISys.au3> If @AutoItX64 Then If Not FileExists(@ScriptDir & "\GraphicsCaptureWrapper_x64.dll") Then _GraphicsCaptureWrapper_x64dll(True) Else If Not FileExists(@ScriptDir & "\GraphicsCaptureWrapper_x86.dll") Then _GraphicsCaptureWrapper_x86dll(True) EndIf Global $aw = 0, $ah = 0 Global $tActualW = DllStructCreate("int aw") Global $tActualH = DllStructCreate("int ah") $h = _WinAPI_LoadLibrary ( @ScriptDir & "\GraphicsCaptureWrapper_x64.dll" ) $a = _WinAPI_GetProcAddress ( $h, "InitRegionCapture" ) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : DllStructGetPtr($tActualW, 1) = ' & DllStructGetPtr($tActualW, 1) & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : DllStructGetPtr($tActualH, 1) = ' & DllStructGetPtr($tActualH, 1) & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console $aResult = DllCallAddress("int", $a, "int", 0, "int", 0, "int", 400, "int", 300, "int_ptr*", 0, "int_ptr*", 0) ;DllStructGetPtr($tActualW, 1), DllStructGetPtr($tActualH, 1) _WinAPI_FreeLibrary ( $h ) _ArrayDisplay($aResult) ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2020-06-05 Func _GraphicsCaptureWrapper_x86dll($bSaveBinary = False, $sSavePath = @ScriptDir) Local $GraphicsCaptureWrapper_x86dll $GraphicsCaptureWrapper_x86dll &= 'WLkATVqQAAMAAACCBAAw//8AALgAOA0BAEAEOBkACAEAAAAOH7oOALQJzQAhuAFMzSFUaABpcyBwcm9ncgBhbSBjYW5ubwB0IGJlIHJ1bgAgaW4gRE9TIABtb2RlLg0NCgIkBIYF7QnYQYwEZ4sFA8YFZIpAEQIHY4pKAgdiilURAgdmikUABzUNZgSKQwAHSPT0i2gRAjNmixEAB88FbpECN88FZwQHmIsBB4hBjPACB88FZQIXMFJpY2gBZw3LUEUAAABMAQUAR2AEp2iFCeAAAiELoAEOLABSAAZygwlUPlMAAhCAAXACBxBhggUCAAAGhBmFAwD28ASqAg9AgJQAFIEVhgNBAwNQsQAA1IAOJOazgDeAAwDQAC0GIggAAOAAAIAIAACgkJwAADiYyeCbjN0NgFNogSsUAC50ZXjydMABFFEEJME6xC0FAAAgAABgLnJkYUB0YQAASE7EPlBNwABWywnAHUAugwkAVHAOAAHAwAAMwACmgc4JwC5yc3JjwQlLwTrAPADANgCy0BNyOGVsbwAKwT7BQAAK9cAAus4JQqCrPwA/AD8AAz8ACgBoCmEAEOiAnD8AAFnDzAAAAFWL7FaLdQxXAIv6hfZ1BDPAAOtrhcl1Ff8VAChxABBqFl6JEDD/FThAAYvG6wBSU4tdCIXbdAATO/5yD1ZTUQDofUoAAIPEDAFgBjZXagBR6HMh4wGF23UK5QfrDCg7/nOlCSKpCQNqgBZYW19eXcMCEADxjUYExwbolkgAEMejc8dAYlKLAEUIg8AEUP8VAERwABBZWYvGAF5dwgQAg3kEAAC4CJcAEA9FLEEEDQiABUCABfZFAAgBWXQKagxWmOjJPoAdZQfHQQMLWMHHQSFM4QEcIAnHBAH0YAfDjUEEx1IBqAhZw/AFLOIFAAOgAGEPg+wMjU30AOjU////aNywAAAQjUX0UOhuCEkAAEIr/3UIi8jx6BiAA8cGIQakEDlHA/3+QQOBD0QD' $GraphicsCaptureWrapper_x86dll &= 'aERxwAT/FQSgDyEIwAuhAEDAABAzxYlFwvzgHMdF9FQABKAMQMZF+AGNTqQeUQ8AEuImwxUGJk38i8YQxwZkmgAIzV7ooAg6AADJyg9+wg8r4QMuE2NCA1hHA4sRAYMMUosC/1AIwwCDyP/wD8EBgwDoAXUBw4XAeXD7/yUQYDtjFiAVagACi8ZZ9+GDwAAcg9IAhdJ1OwCD+P93NlBS6CTtSAAV6AVAJIvQAIXSdDONQhjHASCqAAAzyYlCEACJcgSNQhRBhwAIM8BmiURyGECLwl7Jw1FBLO4BABJo9K4AEOsNJcEBMsEBQLEkLvxHZSQui4AXVgTgDYFZHgSLNkA6ZoM8VgCQdAb/FeETxwCBGACJUASJcBCJAQSLwSNKyP+5MM4EABAUGmr/aCtdEAAQZKFiLFFTVkpXZDJQYA9kowJEwiCJRfCL2aAPjX4A/408eIX2dBcoD7cH4EhMYAhZhQDAdB6D7wKD7gABdekz/4k7i4DDi030ZIkNQQcAWV9eW8nDi84E6MEgGov4jRQ2AFL/dfCNTxjoAF/8//9ZWevQYwF1gRuLVQhBQMLFxwBGBN3Mu6qLQgAIiUYIi0oMiQBODIXJdAaLARBR/1AEhzmLVQybgGhAOhAMB1ADx0bBWsAA/zJQ6EQAGEIDIgxBA4PsHEcni0WAEFOL2YlF5HEEQDP2iTPHQwIEVwCJQwiNewyNRQD4iTdQVol1+Ajo6kYRO/iFwHUAB4l17IvO6xoAiwiNVfRSaNSBQCRQiXX0/xFQDwEQAolN7I1V7IkATfQ7+nQXOTeAdAqLz+ie/cAPBEX4AAKJD4v56wgRiz/gDAuNTewE6ISTAYX/dFqLAHsMiweLQBCJAEX0OTN0DP8zBOjEMgf0iTNTVxD/0ItLMBAPhKlV8RgBkgf0kAdRkQcQqYEFTfThAYriAVZwEgoUcSQl4AXreYvOEdEBwHQNIwtQ/1ESFBEDdfBQCDhR6AIhYQZV9I1N6FAE' $GraphicsCaptureWrapper_x86dll &= '6OsAA1mNTfA7AMh0Fos4iTDokBUmAADwAOgNcABMi/cwA2AC6ADAAP+QdeSLy+E06OQwBwkhAuolMFJ99AB0QAj/dfToB1AFgwR9+NAAjU346JwD0B4BO8NfXjPNW5joWzbBOvIYUVHoGEYBIS4wFgSJBgMW+DEEFsdF+OIcQBb4ifYOoj9BPxNyBMIgeQQwHYBXi30Ii1MMMDgIMYsCEAhWUWjkBYAEUoUEEIt1+FYEagChHf1EAACFJPZegwrz+4AKSwhEi8eQGk38X8EKrrY1RgbAMkjHMvlL8IAzARgz+YtFDDPbi1B1EFNQIRLKIAY5JB1YUDh0FPAA/3UABP92CP92BP8INv8VUQGNReyJQF3sUFPog4ACjQhF6FCwIY13DOgC3FIzO/d0ETkeFHQHYDRU4QkHiR8giQY5XegRC+joIkEgATld7MEA7OgGNPEB2jeLTfAzzRjo6jQDF9U2D7YFBoDgEPAbDIvxUP9kNaDAAOjeQRqBMggCAFFnTgyDOQB0EAXo4PpgAc5e6ZjzIwAxEK0DpJugA6ajpwMvAjWE0QWALwK1KAKQIQJdLwIoArSBBtY6LwIoAqwhAhcvAigCuoyBBvRhEi8CJAKcIQLW0S8CKAKogQauLwIoAlqYUQSLLwIoAoghAmhrLwIoApQhAkUvAigCsAWxCCIqAoPk+IPs+BSDPbElsRxfJ5EBQE8APQ4AB4B1GI1ATCQI6L33RWdEQCQMUOiGQUCxPboF8QEcJAdgAoABvTBCDGjM4YBwAuvWPQ7UAQEtAtUhAqjgbCICYLM9AUAALwIgAoyiryQCkD1XgQYfLwKSiIQG6WqAhj0L0LOVXALSUQIwZAvpRFECVgLhBlsCz1ECBOQG6aIeUQIRAQRdAsxRAko0FQf40Dc9VF8CyeVRAkjUDenSUQLAZl0C0sZRAqCtVAKsUQJwxNVdAsNRAri1BIZRAqA7VV0CwFECFNULYFECGCtfAoIZyLUEOlEC' $GraphicsCaptureWrapper_x86dll &= 'xwRVXhW6UQKYVQIUUAIPJLYN4QFRUAACFOhU2PjwAZy1BvTQAul27sAlx5NPAAJHeCBRbw0pUVgfhCCJZfCL8Qlwc6EsYCeFwA+EBpCAivEo0IkGi8YE6XLSAOyLTdzoIjLARrgsHfCni0UY7McA4SnkAE3YxxBFxM0TQH5FyGApYapFzKJWATCBjVUA6IlF6MS7AI1N5OjQHQAAAI1NtIsAiUWcAI1FxFCNRZxQAP81tJsAEOjKQPf///917AB06JDM+f//ARwV+wEcAOToLx8AALgsAB0AEMOLTdTHAEXE0RMAAMdFAMhglwAQx0XMAgAAAIsB/1AEjQBV5IlF5I1N6KToaRLMkJoAZmMHZhJlBGau+gEH6OjIoh4HZtAz9gBo1QdoiIl1zApk4OgEAWQAVcSJdbRSx0UAuN3Mu6qLCLhABUAAgFFQAFWJgEW8iXXA6GYAYwEEbvb4//85dcAAdAiNTcDoKvUBAQa0dAj/dbToRHo+AVfg6EcHQEWA7ItN9GSJDQFuAFlfXlvJwzP2AFZWiXX86I09CAAAzAIAVYvsUQBWV2igcQAQagAQiVX8i/no3wIugIXwWVmF9nQgPlPHBrwArI1eQASNTgjHA4Ek6CTPAQBoRgyAAgA5ADt0GIM7AHQHAIvL6Jz0//+JADuF/3QGiwdXAQByW+sCM/aLRQD8M8mF9l+JMAC4DgAHgA9FwQheycOAOYtVDDMQyVa+xICmiwSKADsEjnUcQYP5AAR18otFEDPJAItVCEGJEI1CAAzwD8EIM8DrCA+LRYBxEFKLSAQEUQBQEF5dwgwCAEERRQgzyYPABAxBwQmNQQFdwgIEgQVWi3UIV40QTgzoGIAki/iFCP91FcAyEYvO6ALQAC1qEFbodTHhQERZi8dfQBKCDEASAItICIXJdBr/BHUggBh1HP91GAj/dRRAHf91DFEg/1AM6wVCMF3CqhziCxDsCxTUCxEACQPBC4QJGOsOi0UUqsfB' $GraphicsCaptureWrapper_x86dll &= 'YQDECxDKCwvACVSLAUAKHAYUCBMIIAELCIPsFKFAwAAAEDPFiUX8U1YAV41F+DPbUIkAXfCL+VOJXfgI6Ng7QIVF+IXAAHQdiwiNVfRSBmgBbwAI9P8Ri0UA9I1N8It17EMA6w2L841N9GoABovDiXXsW8cBAYkAiQf2wwR0ABGD4/uDffQAAcGu9Ohu8v//9oDDAnQPg+P9AGcRwATs6FrCBAF0DoiDffCCCfDoR4AEiIN9+EID+Og5QAMIi0384TYzzVvoAPgrAADJw1aLAvFgU4M5AHQF6CIYAASNTgSAAV4PhIULgAHDM8BAgEOwAUDD6cEB4BxToUMAi9lXi30UM9IAiwSWOwSXdQgIQoP6YE/rLLq0A2Aa4E8EjjsEinVCCENS6xW6pMkCGYElVQyLTRCJCEBfZpfgc8BUMLpBIuYEEwXkBFXhBOiT/P//dYE3DIQ3AoB8YHLhN4sAAfD/CMNqHLjUmV2Ai2YBLfGgJ0A2I0AgAAGJTeQgCMdFBPAEgSlV3IlF4ACJTejHRew8ziAAEPD/BcEAx0Ui/MEKgz04gAEAdEAaUf918LlhAVAQUlboKSAD8P8NWeEE6xggBcAV/+QBjUBF3FBW6JnBn8Yg6Lk6AAChc4PkEPiD7CDDQcSJRIQkHKFHEYkEJGAnWhTgAQjAGAAoEEEBMyLAoAAgiwqgABiNASABUItFGMdEJAwU/0AK4AAYAJkAgBD/cAT/MIuAAgBW/zf/MFL/USAYhcB4HQACDIsgTCQgX16AKEwkQBwzzOgmKuAQ5QBdwhQAUI1MJAgU6BQArcxqOLgKywEjgKATi10IjQBF6It1DI1NvACJXewz/1DHRUjoOJjhH+wzgZO4AvAgQEXsiX3sUARoJCGXVbzHRdiEHxiBo+THRdzCsCB94OgnGyGAOX3Q5A+MxoEffUAG4ANBgiiF/w+Eg4ECB2mgUlFogT9X4AtBA/+iEKCqiUXswGBkQVYQp+///wsxxkX8' $GraphicsCaptureWrapper_x86dll &= 'EAGLz7pBLzPA8AAPsQqFwHUZaDJAwAFoYIAA4L7ovSA4AAAz/0IE/3YADItGCIvK/zAA/3YE/zZT6H7C/kYzhf/rGuMDQBdFBgRdAASDfeQiYuQE6CfgD4vD6BQ5JAAAwHj/dYDK2OiK3uDCzGBgD4UIwAP5AjrsJIh7gChizCBnICKBQXQzycdF4AUAAUhXi/rgTACxQdb0xACwwQD4AKHBAMIfA4AtAnpN5IXAeTIRIDFQagCgLVBqBwBqA41F8FBqIEBqAP90jdygABVCXEDKi03kQYAFgxD5AnzOQD5hgz4jYIjgJ+R0FqCxeCRFAFY+ocfO6GxgAYtAReSJBoM/4ADoUUMEz+hVQQQ/QQTPFOhJRAQHEGeLNosoBos4cmcyYAFTaGIwQBpW/9fQQbNB3KYnsUEwNRheoCNFEBcEi/lAITPbiV38QIl92Ild3CArXQDshcl1BIvz6wApiwGNVexSaEpkECNRoBBOCLEO5KHCIl3o/xCwC0vgTQewOCAiAROJH4sGVyxoREEHIBQHohHgr5liAORoEC9RA1AMYAMSFMVNiyMgCMfoakY3IDawfeDoOMBpzBUACkwBCqRgATP/VxBX6Fk28CfAD4gSwbAEu6hAAFPoHwGgDFOL8FdW6NASNdAQxBDgEkMVAGQAUBAr6OWAAIEgDBIW4AUNaBE9QQiNoFEEUOgFgCJZYBqQD1fowEAC6DuQBUVASmVQEIl9/CAJoQHRAlH/cAj/FWBDsBqgAg1X6JWhAhDZoALrLOEdkQtRoTCiBUBQjUkM6KthRn1C6AIo6Oim7KBP/xBHg33sAgHs6KNaInIOgiAEcQ7Y0DeHZhlxEaY3P/OAD0IpGIdHKVFZoER1+IsJMRkAiQbrK41V+IkARfhSiUX0iwHUaBSTGeyTGfCxBGIZQBaLTfiJDkFhxsAzzV7o5SVgHyB9LYIL1hBfgQZWsEoIiyDxO/d0FOEmBegk8etQMwfHYRsAibAGX4vG' $GraphicsCaptureWrapper_x86dll &= 'YoCwGIixGDJOoAuL8mArAhIz/xHgGISCAjABSBSFEMkPhHegADl4DAgPhG6AAIl96I1EVeggFYsBUuAJ2PI1sZFF3EFPoA5QeLEcJk2AArIEi1UQmeiJIEggiVAkAgGDeAB4A4tIJItQIACJTex1JYuIhIHhR8l+GDm4iJAAoH4QiUgskwOI8QCA6wuLTeyJUCMBWIlIMOA1EH0KEwJAGCyJAcAm1QAwiQYDYB7CAI1IIFFRjUBwHI1QDFZxEZID8KQDHYPEDIPBGBhQ6NdCRSUc0ur/Qv+EAxiDwBSQr+wYUOiSkA1EA8EQUHTopRoDoBADgk8FAlFE6Mb5AlHoSTAQ65AIuMUngKkz/5AJhIs1sQFqDOhAYT0I0Lgw0ABZM8lBGMdCBAE2EZ3HAiARADaJVeSgBQMPVxDAZg8TsF9OGI2wdehWUoCg8BajIjc19xYg8RbdQAFTEE3oESAXiUhoEDKJUGyo6PnpYgoEtgfEQTmrvweyB3C2BwW3BxS4B6ZHvB6wB3hlegdwcgeYdOiBcAfAD8IoxQ8LUgIgBLQqBMZANAGp8wNIEHGuUGFyExCMxbAD/rIDwOgWUG5yNdzo+LBdbjRxtcCxNJI0iFeNfSE0V/8yQjSV8TPJAhPwUnlQKPAF0hcANIvGIjRfETTxOxbJsGQSNJQxBmoUuBqycTEAoAfSOQkzwKFQDEXs6xtkU1TEOW8UcgFGgVLhALmRBrBR8Q+QDiA1BGRwBzGLB2pyAWB14POaASIzUFP/AYMlR+j//+g2MqPQbTI94OgCGQlugAEwiwkz9nBZYAkGi7DGi/7r0LIyCUQxCR/FCDDPhQjRy+AGiXXooXAGLIsHVjEI0UYBafwHx+fwB7bQwvUHgg7uXxfCS9FKdfgzwOyLCRAX4BZS8xawW/cWT/EcAUv0FuEWNCEISyUZxAVRUWIgQIYogHiANAB0IotNDIE+qzI+FCYQAAEFYT4BACIwycPoskA9oIYCyRrD' $GraphicsCaptureWrapper_x86dll &= 'oztNQbxgGnh46EJQAVx1/Isd0jjDchSgc0AMUArQ2wF040Dm//9TaDTwEv8gdQhW/1UwvngNxItVMAYM6Ohg7RDUYTJs/OjHHLFdkuRqSAi42SEYuDDTqvAl4I9MgQkNSJELyXTYGIkOJCDSxgRAjfEBxOsOhABRVuiB6VCnCkMgBMPC6Go8uPY1QQWWQQV9kZ6wG41NULhQM9vgIaBgnhi7AMdF7CwAAADoANHm//+NReSJAF3kUGh0mwAQAI1VuMdF1B8YAAAAjU3gx0XYAGCXABCJXdzoAEARAABZWTldEOAPjKcA3It15ACJdeCJXfyF9gB0dYsGjU3sUQBopJoAEFaJXQDs/xCLReyJRSDshcB0WgAw6MwA5f//8P8FTM5AABCLzrpIAAwzAMDwD7EKhcB1iBRoUAEV82hgAAZRAFDo6y4AWw0BI4kgD8dF/AIAaoXJAHQGiwFR/1AEGPD/DQFEAHId6xMUiTcAHwEBH/Z0DkCLDlb/UQQAsegEbRsAQMfoTC8AAADCCAD/deCNAE3U6Bbs///MAQIAagy4Kl8AECToswAfoWgBJsB0ACiAeDQAdCKLBE0IADUKi0AsiSIBAg2LTQwACAWLAEAwiQEzwEDrQHjol/f//wAYbRkCD2oBAECAPwDHQAJ4gVP/FShwABAwUP8VLAADgHuL2EDoIP7//8aAUosQdeyLPYEZg8cUAIsOgz8Ai0EQAIlF6HQHi8/ogK7k//9XaDQAvQBTVv9V6IXAeYAWg33sAHQIAZ0AnxoAADPA6GoVgIrDhwqJgAqLVQwLAFiAQP8AAOiK+P8A/+vYuKotABCgw2oguFQBcQYFcaCLXQyLfQF0JQJ0qB+F24NyAwNA/4M4kgeAOOmTgYSx9kE5GA+EhAADgggzyYkATfyJTeSJTegDwDrBXItFCIlF4ACNReBQaNkuAIAQUVH/FVRxgDcAfegAdFCNTdwI6Cb9RT7ciwaLCkBAO9SCEoPAFIkg' $GraphicsCaptureWrapper_x86dll &= 'RdiDOACAIMjoALLj//+LRdhQUYI//3XoAEDUA0DcIYI63OieGQJAjC1LAkBFBYhABYvXBD+LCMvoi8Bl69q4qwGAIsNVi+yLTRSAi0EEOwF1CsEpAEEIM8DrB0CJBEEEQDhdwhAAamhIuIgBSOUAFQR6GACLXRyJTayJXV68iEkKgwBNgkkDgUld0cBA6Ir1g0lOAAMOhAIDDYSL0MdFxCgBQAVqCVkzwIlVALCNfcjzq41FwMRQUv8VJAAIgRICA4ASi03QM8ArAE3Ii3XUK3XMAjkAME20D09FCAAz/zl9DIlFuAAPT30MO8EPjYLXwBI7/g+Nz4FjAFUQA8I7wX4FIIvRK1W4gD+NBAAPO8Z+BIvOK0DPhdIPjquC0Q8EjqNFdItduIlYInxCAYm4gKYCfbREiZCmPomIiEYBuJKMRgGwkEYBUCzjAABIMI1NwOgz+6lgMV28oz7A510G4V0lIUC84l2+4eVd/3UusAA+IC4BPsBCO8DoZK0XAj6bKwI+pQKXsaACi02sJD4gMw0DFvKAoRWJAYAzBQJhFoA0INIzyeh1ADTrtYi4nDCBYlC4vGE+BvHgCmQ+HItdIIlgTaSJXbB/PmA+W2lhPpbzYz5MZT6gODPA0olV/GoJhD4gToZZoDRBPLyJVcCEPgEhPbhQaNsyABAmUuA9Y2XAADM+DIm0TaggPgwhPsAmrCA+ahAvPhQnPqwAWD8+rA0yPqg/PjQ+tOhB+VUhPrAjPrQwPrAiPsy63yc+wCA+4C0hPrRiO5C06LsVIj6pKSI+RaUCpaACi02kJz4KvwMWgTMBmKQBgTNhPYkAMzDru7iOACwigFUUgItCBDsCdRWApACNQgxQUYlKCBvjbIOBQoWBgAVRUaEEQMAAA8WJRfyNAEX4M8lQaDwzEYGaiU34YzWLTfyiiwADzejP4OLJAgwYRRT/oBZFCIPsRAVnCItAN9JTi10YAFaLdRxXiUXEoI191ItFwCHAoAYs' $GraphicsCaptureWrapper_x86dll &= 'agkAYYNEyIFEzMcERdAlRMiIVfhQDGj+YA+FRIB9+AACdUAV6z+LRcSLEYGjdAKJwOvAi01C2GIBCIt9vCC4B4CLRdwrwokHICMxQAHgK8FiViDjB4tATfQjyIkOIBhfwF4zzVvoDSUYwAkAFItGBDsGdRnAjUYIUP919BHgLaCVwIhGMHMSRnESBl5UDgVze4N4eAMUdXUGc3wKcw2LgLvxJTYBEDMBkzo0ARQzAbvCOjUBGDMBcSc2ARwwARgIi4ABKDJ4XcMzCMBdw3QIdQSDyKD/w4tAeOEMUSJp0vyiAVZXMTqFQANSPQB/M/aNeDhX/1QVAOANWXADFlICgKS4oMFadR2QAQiRASBqAf8V4IAARoMQ/gd9SjIC68aLJLCY4TaIlFAAK/EAO3UMfgT33usCIKAVHFZR/3X8COh/JVVy9oPEDBhGxoBSBTUFi8br4AIzwF9eIhdiAoAhUgjwCXRqsglkmwlVs/MLpAl0N98H0Qci0we4U+gDvwcAABAH9vcHUl4CCFtdRRJTWxKXEVQSD4SNYp0QM/8QhfYPiBEcjVg4dlNPE0MTIJABAgagCFehhRNHO/5/dBPDnwvJfBNHJL8LAABlBXUTIluHE4tVCDArEFdIi30M4QiF0uAvAlWwLwJgL/ZQAAYQK30BUAERi0gwD69IICzB4QKJY0KF/6R1BCACXVMbDTjAAygUiw2yBYHRCiuBS9EK4gQShI84iGEJD5CVwYkOpQnrFHADqAbHB3JJ9pAABpEAAlvQKV9eXcNqGLS444FmUqUZQRacUF5IxkA0NFdQGFAKKACLcGiLzot4bAALz3QciwJXVhBS/1Ak9BCJcGgYiXBsgxSwHItQFAEAAyqLSHSLeHACiYClzwtIdHQaEv9ApQJXZgOJcHBIiXB0Q2lIEHBTBAGAC4M5AHQU6ChB4AfrCLj4N8BRM6r2JAIYIAIGJgIFIwIEGzgoAk3siXXsglHABOgB7v//56cM/Nlg' $GraphicsCaptureWrapper_x86dll &= 'X2ITjUXsUIEwAo1JGOje7SkCotkvAhTouyoCtiECgSJjjU3ojUcoAMNAO8F0FjkwkqGmog+hdOyJMCQCR8C9CuQrAoMsAkXgO/hQdBM5NzJnZsABiUI3JWkIjUXcwAENRcQBScIBVujyIX1tMiJAAAkjwGcDwhS4FA1g8BspEAGNRfAIM/ZQEAyJdfBQhOhRsSF1/LjYENFQx0XgfMADiYDTdcDoOXXwfCugAMAIClCAAX6BAXXoiwgI/1EYkG4DUOsRKfEOxthwuqHABsP/VHXwkcqBYHHM7GeLCgkgLggiLsl1BokAD4kO6xyLAY0gVfhSaATwc1HHDEX4UTIQ1k34iQcBYl2Lxl8zzV7oHDUScF0Qz8JoDFNWSFeL+YAkffwgAIsICovZALyNUwGKAANDhMB1+VZWACvaU1FWaOn9KaAPVSFxDPjhVIk3FOswgBVCkAr/dfhAi/D/dhBToDpqigCTAiuQAo1N/ESuUIk36CXBi8dCOosA0TPAUzPbV4kAGo16RIlaBIkAWgiJWgyJWhAAiVoUiVoYiVoAKIlaIIlaJIkAWiyJWjCIWjQQx0IcV9GwB1nzAKuJWjyLwolagECJWmTHQmDRNAjHQjgh1V+JWmgAiVpsiVpwiVoAdIlaeIlafImqmsJlmuJkmgJkmiJjKppCYpoSPJrRPImakpxQAIiaATxbw2AucA+FUA3gF9J7oEQ1FbEhoyI69nBAzujpCeAMaKjQAlbonhSD0e5wbwQAVosx9AEKyfcBfvMBw4B5BCAAdAn/MaRBw1YAi/GDPgB0Df8wNugzIIDAATYAXhLD0RiLN2AEH41OEBToy9ZBpHUNVgBQ6OofAABQ6JLwUADHB6ECX15iWohRU7iQ43+L2SB2CwAhAKH4wCE78Hd9AGoHWjvydxuJEHMQA/YQYIlTFAjo/h5APMQMM8AAZokEHus4i86AC8o7yHY2uWAUgH9XA8nonQywEIBzEIv4i0X8QAMBkB2J' $GraphicsCaptureWrapper_x86dll &= 'O1eJ3rwAQxToxR4AAIMAxAwzwGaJBD4AX15bycIIAGoAClo7yovBD0IAwolF/I1IAYEA+f///392t+hAGtX//+hoABDMAFaL8YsOhcl0ABSLVggr0ehrAAQAADPAiQaJAEYEiUYIXsNVAIvsi9FWi3UIAFeLehA793cNAIlyEIN6FAd2AC6LEusqi0IUAIvOK88rxzvIDHclARYAHXYCixIIjTx6AFILM8DRAOnzqxPJZvOrAQKWcusNUVH/dQAIUYvK6EgDADAAX15dAKQAYlOLBF0IAGQQVwP2VgD/dQxT6PgdAIAAi1UUjTweANIAhdJ0DTPAi8oBBkyLRRADwjPJAF9eZokMQ1tdCMIUAADFV42OlCAAAADoKwBxjU4AKDP/OTl0BeiALAsAAI1OGIIFohKAd41OFIIFBoIFUhCCBfrUgQUMggXupYIFCIIF8AqBHQSCBQLkgAU5Pl90CIswzl7p1wAGAo1q/4BoKmAAEGShADwAAFCD7DShQMAAABAzxYlF8FMAVldQjUX0ZKMBAQ2JVciL2YtNAAyLfQihKM4AABCJfcCJTcRRAFf/MoXAdAn/QNCJA+kXAoBdowEBe/CB/vABBIAAdT1oABAAAGoAAGjgmQAQ6KaJAA1ozIAEUOhfAAUAhcB1B4kz6eECAQBRTcxR/9D/AHXEi0XIV/8wpOheAhGF9gIIwAEIIEXox0XogihqAAToG4AHM8CNfdBGqwAAgAzHReCBBsc0ReSBAYtAFgA5SBAAi0AE6we5XJcBgDPAUFGNTdDoADH9//+DfeQHAI1V0ItF4A9HAFXQiVXMhcAPBIQewBiDyf9IOwDBai4PQshBjQA8SldS6GkNAEAAO8cPhABABysARczR+IP4/w+khPLAGFFQgROigBMAi03gi0XkK8EAiU3Mg/gEcjABghd90I1BBA9HAH3QagiJReBoAvjAPI0ET1DoPREAuItFzMG4yWaJgExHCOsQagSAk8LAQBNq' $GraphicsCaptureWrapper_x86dll &= 'BOgWAGXCDwRF0AJOD0dF0GqgAFDobRyADfhALBBRg8D8gApQ6CgVQB6FwCIvQIpoBJpgABBX6AwACQA+NkCNTezHRewBQlGAi03I/zH/0ABaMBKLReyAV0AaiwgIUP8RwAkZg33sCAB0CEAL6L3S/wD/V+jAGwAA6UTf/gFI7ADHgLYAKAB0FoEHnoAH6wwo/3XoQF6PAAmJMwCLVeRqB1471gB2D4tN0I0UVTHAfQDo9AABgN115BBmiUXQQD05RegRgRfo6F7AD4vDixBN9GSJwFMAAFkBQPaLTfAzzegSwAwAAMnDzAEAQKJAg+wMi1UIgE6LBPm+wBB/i8aLTwIQASv4O8IPgooBIAeNBBGLTxSLANiJRfSDyweJgE38O952QLnhgSADyehHCIEn/Acgi9iLRfRgKhCJAEcQ/3X4iXcUAHY/izdWU+hXAvzgEEX8i86NFBpFIhZCgAAAgNGLxhDR6ivC4H+0jQQACovzO9gPQvAEjU4kjXcZ66JXCFPoGoAHiR+Lx0GikhAA6O/QoI+XEYAAzIH6QTVyFFYAi3H8g8IjK84AjUH8g/gfdw1BwGxSUejlDiAeWQbDIFABAP8VIHEAjhChHQKSQHPoPt/AEgD4hf91FoX2dEASjU4J6AgAJmowDFboqkIHYQ5dwgIEYYyLTQiNSQQM6AMgBicCaJSbACIQ4R2DwQQAj+jzwt6hAwwAoWigdAA9cATGQDQAMyAC5AWEresFw+QFY4FRaYEQZoEC7GuBZfCLRQyJBEXowHJRUMdF/CmBAug7AkDrYEbk6BSh2YAaACAEuNxBQAAQw4tF6O0/7JvhP+BdyUAPIkBotGADhLim4A/o3RoAwxcDgI2hc1oFAACAeCA0AA+EUCABg8AAOA9XwGYPE4USXAA0UInCAP8VAIJwwR1ZD5SFYMABE4QSoAeFHGAGM/aJJLV4oaqFdKAAxkWA/AJQi8/oIyADBI2N4QIz/zvIdIAMizCJOIv+' $GraphicsCaptureWrapper_x86dll &= 'IwUEg70hBQB0C42NMQEB6JjPggoggQCFMPYPhLGAzMSOjU0C4CWPB1FXx4VEZcAFS8GRhUghCGB/x4yFTCEBAAD/UCBAEgyInaAHAxxV4ItNAOQ7UCB1BTtIACR0ZolQIIlIAiRCA4N4eAN0F0HAi4lILIsNggVFEOSJQTCCA41IGAGAGASNdeBWjVAAHIPADFFSUOhJYRKLNcIDhUBBGMYAKDvwdBKDPgBAdAeLzujkQRYGWSIWhVBDJKEZUCMg6FQC50A20KAKBoF2neLgwiQIg71BBcIgAQEI6JHOYFMsjUWICeGSGxfBmeiNVYgBIJqLCFJQ/1EoScMacCiAJJTBIFo9ZaEFtKEF7RagBYALtAGABVFW/1Aoi0UAtDtFiHUUi0UAuDtFjHUMi0WAxDtFmA+EjVAJAWIEsQGEyQ+EgwHgAGoLWY11iI2AfbTzpcdF1DIMIHAox0XcY1/YADQAAmAA0EFL0A6LOACLD4tJFImNbKUQC3RwOOjpkAGL4gAEVmqwZLRQV//RgIXAeSeDfegyUOTo6AFPg72BELIOEhHApc3//+nIoEIzDQJI4DLo/3AoixEQUf+SvMIujb18MYACq421YQCgBWoBkKtqAKvjAlAEsAJAUosK/1E4IR9egXAEi0WIiYVooAJAi0WMiYVkggCAGImFVIAAJh8PheMJkSSQhFEASHyLsBKAgQC4iFAAweICiImNWMACiZVwUABghckPiPoQHJAWiJLycAADiDEDO40BBggPj+BRcww3O40RYQYPj9HgAIvKjYKQ8YUPr8+JlcEQEItSBCsSATvRdGQRUQMS6EOQEBMMiE2hAYniL7BmjoIgBA+kr7XRCouFYQgDYg8gjTSGi4XxCFBW8FHoAxWBFhEDESFiARgDyAMyA4MEg+8BMHXW6TLRCGAt0YsQeDCL93AND6/ynImV8QETCuwJiY2BBMw71uAwQxzonlYZogEkOb3CFPeL8w1MtU3hADmSEKME' $GraphicsCaptureWrapper_x86dll &= 'D0zCAMGG4RAUshP2D46JgRXIwom1oQyLlaEMMxnEiZWhAusGi3IAgTU8LRRRDXEDUQ1yCjvKCH0ii+ICK9FSA6rB8S0NXwKLsh0BMx+h0gIDwoOtAQcBswYcdZpSDMEGUgX3fR8EK/7AEA+v+gO1AYELV2oAVuizE6NysaICxoCgcAsBJSmkagAUKVI8xyz6cTCBzCzYyv//gL2hUaAAdA3/tTNTCDBTGFnowIALQKy4WEdxoFq4lkRQAEBBYUzorG7REG6yeRi2YPyha0CNVfiJdfggrQkIiUX48HhSiwFRFWCHkfI48EFP/1AcAIXAeBaLTfiLAMaJDotN/DPNaF7oIDBIyaBr4JPsJOgRxQXk+LBmi0WAFIsRx0QkBAEvpXAACEIEcAQQNDDQZjRqAzABGDJU4AAI/yAwUv9RGAAGBosE5V0AeVCNTCQI7Oi/AXmDbNCHbJQL92sDcAaRTwBSiwL/UAYImGnEiIXJdQMzEMDDgfmSfS2NQYAjO8EPhqnIMC5E6GzgMVmLyCACCxMYfSACg+CQWvzDUSzoShECobVTQ8f5iwBfBIvLixcrygA78XMFjQQy60AndiiLRwggh/BQdgtRVoBoJeAI6wgUK/EgRFPoxRGB0h6NBB6JRwSwcnekfu+R5JH84ZEgUOKRV6XikfjhkVX04JFx5ZHSKCEoTfzRkfiQkWCRAI0ECY0UA4lVgvxQygPKg330EJWA+FCNNBJ2YvKSUjdwCItNYQJQEqz/EHX86CMxAUX4M5DJg8QYkcuLzsCWifWU8vZgM0eLyvCUgOkrwTvQd4MRCRH9lDbpbnEtU+jX9cAVVpYFydAAkAVwBaGxpAxDyZaCx6AoKkAASbEdUVGi1le/0QSLAPE733d5i04IgItGBCsGKw7QKUCL0dHqi8fynAgAjTwKO/sPQvsVIBYoMBOLsA7LK02A/APQUWoAUmASjOhZUQehA1D/NsCiaOicEvAADkAIsN8KDePkHFAN' $GraphicsCaptureWrapper_x86dll &= 'QCyJDo0Ewgsg5Y0ED19h5cLpIuhhJMxovDEMFQQvwDTiIwMAIhsIkCuL0AEwG30Ii/Ar14mAdfyLyoPh4IAWiIsNEFApD4S2gV0A6QX2wQEPhKQBwUu/TRArdfjFAPluwcX5YcDFAPlwwADE430YANABxe11QOCDIOggxf3X4SdmOwDGdeyD4hx0OSArwrmwltBj4vwAK8rF/m8JxOIAdYwAxf11wsUI/dvB0wJ0FPMPAL3JK8GDwB7FkPh3X15BMwwAoAAAi3X8O8d0EGYAi00Qg+gCZjkACHQGO8d19It2xjgCowNfsAM0AbMLg4Di8HTDwekCoAsEdLtiC/JmD27BCGYPYcCZcMgADwAQQPCD6BBmDxZ1MAEiCwYgC+nrjGHgBEhfA8HEBPUSD7wAVYvsXenH/v8A/zsNQMAAEHWAAcPpjAoAAACwAOsN/3UI6MYOgAAAWYXAdA8BMAK/BDDmXcODfQgA/w+EDMX//+kEVwsCXmr/aO1gIAAQZKEAAABQURBTVlehAaIzxVAgjUX0ZKMBKollIvAAjMdF/AEY6JgA////WesIuIgATAAQwzPAi00Q9GSJDQEZWV9eMFvJw8wBAABXi0UACFaLSDwDyA8At0EUjVEYA9ABAAgGa/AoA/LrABWLSgw5TQxyAAqLQggDwTlFAAxyDIPCKDvWAHXnM8BeXcOLwMLr+Vbo2ADPALQQIGShGABcvrzKAAAQi1AE6wQ7CNB0EAB2yvAPsQAOhcB18DLAXoDDsAFew+inAxgAB+hABgAA6xjE6JOAB1DozoBNAX5AAzLAw+jHAAawQAHDagDo0IAphFDAWQ+VgApNgI+EFMB1ghBBgwUH6DhJAATr7QAW6C6ABOhOKQACAAYAbOg/gjN1ABmDfQwBdRP/QHUQi00UUACQ/wAVaHEAEP9VFAD/dRz/dRjoTkGBPFldw+gOA0wMJGjEgGHoVQELw+iC2wADhcAPhFKAA+UBSMgBC+nCgAKA' $GraphicsCaptureWrapper_x86dll &= 'MQDTQAB1B8YFwAAYAWjocAUAQKiADABMBFQywIAomwMGCsANkEHBDevpsAFdASeARD3BgAwAdATBA1YAi3UIhfZ0BYOA/gF1YuiICUIhICaF9nUiQyK/DKGCRnUPaNCBA7CDAwB0KzLA6zCDyYj/iQ1BCYkNyEIBRsxCAQEKiQ3UQgHYKUABxgXBGwHAX13DEGoF6DDAGMxqCGho2KzAE0iAPQSNuMBNWgAAZjnAMcCqSF2hPIABgbgBA1AARQAAdUy5CwFFgQeIAHoQdT5AjrkBwQYrwVBR6LL9A0CbQSUng3gkAHwGIQAUQL3/sAHrHwCLReyLADPJgQI4gBXAD5TBi8FQw4tl6AQIMgCm8JMKpoFuhAjCQA+AwVfQCTPAuUGVh4VOQVsAAHQGgH0MAHVaEgHONEBEwQEsQUZZaYRYgz2BRf/ABUCJjikA0esLg1N2wAJZWQQzyUB1RE0Ii8ELQguBD8fAI/fYWRsAwPfYSF3D6WYbA95BBvDB0sIJ9kUIAAFWi/HHBtSWwAAQdApqDADAAQeAWYvGXl3CBAEMAItFDIPoAHQzoIPoAXQggQARgQAABTPAQOsw6FYN4CTrADDAAA+2wOsOH8BSAQxBZ1nrEIMYfRAAQF0gA1DoDwFgLVldwgwAahC0aPjhNKCAIgBJhSEtCoQgUtShfHz8//8AiEXjswGIXecRhDiDPbgBJA+FxRmAAccFgQFACQDoroFABYTAdE3oz6A/lOiDgQCigABogKBhZGh8gADogCBBgTh1iCnoVoMFIGh4oQNacKEDXKIDAwoCAAoyJttjDsE46D3hdNt1CEPobEAKi/CDPkAAdB9W6JljFXQRQG0MagIAHYs2i8LO5G/W/wXcIAnBIgAPil3n/3Xj6BoBQAlZYpVLQmoH6Ep+YIXMICEYrSARlhAHAAChgQeFwH+ABDPA63BIo0IJIPZGiXXk5Z9i+yEhI+CJdfwDIgJ1SG/oGaAa6JXgKOhe94AA' $GraphicsCaptureWrapper_x86dll &= 'QxmBBWUGN4AAaiVCSZPiWTPJAC1E8UujCuIcIiAEi8YNFIuAdeT/deDoQYEGWYEB6NOAD8EWx2BezFBqDGhAwRbfYBiLAH0Mhf91Dzk9gQEWfwczwOnc5w8Ag/8BdAqD/wKAdAWLXRDrMYAAVFNXgRHJgQ7woBCF2PYPhEG9wwKQwA3GAjqMxgKHoCPCAsAJdSdJwIgjU8Ge6G/gAoVK28VLsGEtU1YBA2oJQAeF/+CP/wN1SKVjCDVHC3Q1QwJEghAA6ySLTeyLAVFg/zBo8U+gOMFXDAHBA4r6//+DxBg5QXsz9gcmbyUgZFaLvDXYwGdAE6JiYrPO4wgbhUOAaQwjrIC3Behoi0AnZw2rIAuDxAxFBAQNEADhAYPsKMcEBeQEOmoK/xXIYnABRA+E74BVwOUzAMCNfdgzyVMPAKKL81uQiQeJAHcEiU8IiVcMAItF2ItN5IlFAPyB8WluZUmLAEXgNW50ZWwLAMiLRdxqATVHAGVudQvIWGoAEllPB3U5gAcl8D8A/w89wAYBAHQAIz1gBgIAdBwEPXDBABU9UAYDWAB0DkABYAAHQAEDEdBigw3oETmLVeAAM9sz/4lV9IMAffwHiV3siV2Q6A+Mh7ELB1hmCgCNXdiJA4lzBACJSwiJUwyLXQDci0XkiV34iaBF7PfDAHANdOQEgAKDfdgBfCSiA0ZBvwOxA0Xki4ED6ABqJFg5Rfx8HTwzyfAQpAKRAQgRfdwQi1X0oVEViw0IgVAAg8gCizUMgQCs4f4zFgFFowECiQICEonSAffC0GAAD4Tie9ABg8gEkwKRQpICKIPh76FkGBMDI9BBMwM70A+FS/ACM4DJDwHQiUXwsCMgVfSLRfDgioPgAAYjzoP4Bg+FgioAAjvOD4UicABRYgmDyAjTBQPVBfZAwyB0eYsNQgrIAiAiAboAAAPQoWHCBtqD4P0DA6Fto0MiC7ICO9p1TtAGugLgwS1N9CPCI84AO8J1MDvOdSzD' $GraphicsCaptureWrapper_x86dll &= 'kgOzJUCD4NuzBUMEM8AoSQTrC8MBEgP3RQDsAACAAHQQJQ3QL/4DArIC90XoAKAACAB0YP8GTfAGgEmLxzPJwe9gAwAABACD5waj4AGABoHPKQAAAfeE0SNiBPfXIz1SBwNTADIBPAF2D4Pnzr/DAIMBUDYzwHI2oEwsFXhQMHI1fIAAaAlABADA/xXAoABQGP8VtGAAQm2B7CQJgBRqFzUzdAVqAkBZzSmj8MthBuxJUQAV6FEAHeRRADUS4FEAPdxQAGaMFSQIzGEADfzSAB3YSWIABdRiACXQYgAtQsxgAJyPBQCQAosQRQCj9OAAi0UEBKP4cACNRQijBIlxAYXcsFnHBUAwASABAAEAocEBo/wxMBDHBfBQAIELxwUe9KQnYFVyAkALBFhr4MAAx4AE8AChJvMAQovStolMBfjwAMFK4PAAgPQAaNyAR+gK4ABEkCISg+wMjQBN9OhUuf//aIRAsfEI9FDoHtAQxsyQSaBoOQWQkAPhpwV2ElaJEotNCM0pEGoD6PNRCQQkzNUwCI2iDGowrdDQAHBKiImFjOBUiY2IUQAklYRRAJ2AUQC1fAlRAL14UABmjJWkSWIAjZhiAJ10YgCFknBiAKVsYgCtaGAAEJyPhZzRWUUEiVSFlIAAjYEAoIAAxwNyB8ETi0D8alCJooXxYY1FqJEIRpAIAxADwAjHRagVAAAQQMdFrOETiUW0SP8VcLAMi/CQAokcRfjFC+BQsyONRfiXoCLBI3CBDSCqdAjgDgIE4VxeycPHBQxGzhNXA8VoNVkwyv8CNREBi0QkEIlsSCQQjTAAK+AFyzEERfwwy4ll6P91MPiLRfxkYpEHRfBHY8wTYiArNuhhYAv/EHUUiQazX1ZoCSXAzGhhBOiAQUbEHBfwrFBHghwUsBsPV8AAUGYPE0X0/xWC6FENRfgzRfSyDEa84ACwB/8VuIMAjRRF7HAN0EIC8I1NoPwzRewzoAnBwHwBwiNWV79O5kC7' $GraphicsCaptureWrapper_x86dll &= 'Ar4ACP87z3QEhSDOdSbolBFtyDsgz3UHuU/AAesOAVABCg0RRwAAwSDgEAvIiZID99E0X4nyJl4CJgFsEoPuPQFvsKyiOKhQB+Al8WtEaBDwE/8VmBABw4myAOitoRXDuBiwAEjDuCBRAOjvYQdIAASDCCSJSAToiufVAALQAMO4bCECAFNWvhymABC7AUEAO/NzGVeLPhEQfQqLz/R014PGYAQ783LpsEGxAiSPsQJBAL8CuwL/JTzxQ1QlSFIATFIAUFIAVFVSADhSADRSAATBAyWqAFIAGFIAJFIAHFIAqkBSADxSADRSAERSAKowUgAIUgAsUgAUUwBVMgVkUgCgUgAQUgCkVVIAYFIAHFIA2FIA8FVSAPhSAIhSAGhSAIRVUgCUUgCsUgCMUgAYi1AAgOIzgj1Rgz1SbQHQPHxcgfm0AgBAwHQIgfm1cAB1IEwPrl38kCqD8IA/qIF0QqkEMCkQdQe4jsDMycOpwgJgKHQtqQgAMUABGpFDARDApdAAkwAAuLYAwMnDqSAQAAAAuI8AAMAPRMhAi8HJw7iQAFjJAMOLTfRkiQ0AAQAAWV9fXluL5QRdUQBM8DPN6NAA7///6d3///+oi03sABzBARzOABwQUGT/NQFejUQkAAwrZCQMU1ZXAIkoi+ihQMAAABAzxVD/dfzHBEX8AE7/jUX0ZIqjAVLDHGSJRfAxNRJlMjVF7BQc/yVYAHAAEJCQi1QkAAiNQgyLSuwzAMjoy+7//7goAKYAEOl4/f//FQgO5AAOrgAOi0r8VYAEpAYTUQsTmAAOhxUBDlABDjQADo1N7MDpQcP//8wBAIgUqtSAFF2BFOiBFAqCFFDk6WzFgxgPkBi4lYAYKwZBIYEdFKeAHSbOAGyBGfbcgA1F3ECD4AEPhAxAOIMAZdz+i03Y6d6lwAXDkR/e7QUT1EAC1LhIAROBBBOpAA3RDKqqxgygwQx8wQxNwgzQ5OmvxMMBp8AB0Q6qbkEMqEEM' $GraphicsCaptureWrapper_x86dll &= 'G0QZfVAKqtxACkRGGTpCGajADNTn+0pa6AAHHQIUAQcqygsHtAAHAMYQ9uw1gAnUgQmjgAnBHcvbS88dQXjMQQoQqUAKeVFCCtzpoVAK0EAKolFACotK+EACmMEMcEXBDEXCDMDpbdAMqKvBP8YMZMEM0MEMEcIMaLTpOdAMoME/xgwwScEMMKrADN36CjvY1QAHEwEHkAEHwAAHgTgmIjBIQSvp6yAFQKt1IAWWywi84R+AA2MmwqvBBCJcb8sE4IADpcIEVYESm8EEbKEJSOEOjaJcQGzpw9pBAXhBAVScwkEBUEEBkUEBTZjo6U+gAwwTijwABFWgCU3mCkPhCsjhCvDW+coPYRMmZhPTiwMheFIJgQO0rIADtoADufRoziABFUAOYX4fAB8AHx8AHwAfAB8AGQBgtwA0AHBgAJBgAAEAyACoAIDJYAAGYAAHYABVYQIuYAMaYABAZARKULgAADBgAKzgAcJVYADcYAD0YAAGYAIQJWAAGmAAPr5jBaq8SAAAeGAALL3jAZiquuMAUuAANmQBPmADKhpgAHhkBErgACi7VWMBimAHmGAADOABZlXkA4TgBsZgANxgAHDVZAga5ACs5ADKYAYBAFSUtuMA8uQC4OQCAJVkCdRgFchgAJS54wGqfGABqGAB3uAACuAAqoTgAPBgAL5gAJzgAaqKYABkYACi4AFI4ABqLGAAfGQHlmACAQCcFWQOsuAAbGQBZFkAO6DsBAAQaAEfAAMAAQIgAwQFBgfEAAcAw+QAwwAGBwAB4wHDAP/gAeQAwgBAAOAH4wPCAOAB/+QAwgDyAfMAYgDxAHQAYQD/MQDxB/MDYQDxA3MAYgDyAf/zAGIA8QB0AGEA9APzAWEA//EAdABhAPMB8wBhAPIAdAD7IQT1BwTzB2AA8gdyAGIA//MH8gBiAPIHcwBhAPQD8wH/YQDyB3MAYQDzAfMAYQDyAP90AGAA9gfzA2AA8gNzAGEA//MB8wBhAPIA' $GraphicsCaptureWrapper_x86dll &= 'dABgAPUD8wH/YADyAHQAYAD0AfMAYADzANd0ABIO9Q8F8w8F9A9xAP9iAPQP8QBiAPMPcgBhAPUP//IBYQDzD3IAYQD0D/IAYQD/8w9zAGAA9gfzA2AA8w/zA/9gAPQP8wP1AHQAYAD1A/MB/2AA8w9zAGAA9AHzAGAA8wDtdAAF+Q/zBwT0B3IAYQD/9AfyAGEA8wdzAGAA9QPzAf9gAPMHcwBgAPQB8wBgAPMA7XQABPgH8wMD9ANzAGAA3/QB8wBgAPMAdAAD9wPzAbYC9AF0AAL2AfMAAfUA/3QABT/7P/QfcABiAPUf8AD/YgD0H3EAYQD2H/EBYQD0H/9xAGEA9R/xAGEA9B9yADAA//cf8gNgAPQf8gNgAPUf8gP/9QB0AGAA9h/yAWAA9B9yAD9gAPUf8gBgAPQfcwAFBvv4D/MHBPQHcgBhAPUf8wf/9AB0AGAA9h/zB/QBdABgAG/1H/MH9QB0AAT4B/MDA3/0A3MAYAD1H/MD9QB0AAPb9wPzAQL0AXQAAvYB8wCWAfUAdAAG/x8EBfQP/3EAYQD1D/EAYQD0D3IAYAD/9g/yAWAA9A9yAGAA9Q/yAGdgAPQPcwAEBfcH8wMDf/QDcwBgAPUP8wP1AHQAA9v3A/MBAvQBdAAC9gHzANYB9QB0AAX/DwT0B3IAP2AA9QfyAGAA9AdzAAME2/YD8wEC9AF0AAL2AfMAdgH1AHQABP8H9ANzAAK2A/UB8wAB9QB0AAP+Azv0AHQAAv0B/AB1AAgHmcBPBgYgWFAoBQWgUMNzADEABQQEA/0AdQBhMQAEAwMC/wFzAE+zAAUEBAMEAwMC8AYFBQQBsAXwBTgBGAADAgIBBwYGBf8BjAWcDbwdfh0+DQ8FBwEDAAIBAQAAAQIDAAQFBgcICQoLEAwNDg8LDQ4PAP4BCw8JDQEDAT8JHwkNgw//iweHBoMCgz+JH4cGgw+LB/+HBocfiQ+HBoUPiweFBoUD/4V/iT+FBoU/' $GraphicsCaptureWrapper_x86dll &= 'iQeHBocfiQ//hwbFB8sDRQPLH8kPRQPFB//LA0UDyQ/JB0UDxwfLA0Uh+c0/CAnJP0MDxz/HA0cD/8k/xwdHA8c/yQNFA8sfyQ//RQPHP8kDRQPJD8kHRQPHB//LA0MDzz/JH0MDxx/JA0UD/8kPyQdFA8cH6wGjAe0P6Qf/owHnA+sBowHrB+kDowHpA+frAWc47T8KC+k/oQHpP//lAacB6z/lA6cB6T/nAaUB/+0/5welAek/5wGlAes/5wP/pQHpP+kBowHvH+kPowHpP//pD6MB6z/pD+0D6wGjAe0P/+kHowHpP+kBowHrB+kDowH/6QPrAaEB8z/pH6EB6R/nAf+lAesf5wOlAekf6QGjAe0P/+kHowHpH+kBowHrB+kDowH/6QPrAaEB8R/pD6EB6Q/pAf+jAesH6QOjAekD+wDRAP8H//kD0QD5AfsA0QD9A/kB0QD/+wH7AB1+/3/XAPs/8wDXAP/9P/MB1wD7P/UA1QD/P/UD/9UA+z/1ANUA/T/1AdUA+z//9wBzAP8P+QfTAPs/9wfTAP/9P/cH/QH7ANMA/z/3A9MA//s/9wDTAP0/9wHTAPs/+QD/UQD/H1N5+R/7D/cA1QD9P//5D/sB+wDTAP8/+Q/7A/sA/9MA/T/5D/0B+wDRAP8PUXn/+S/7B/kA0wD9P/kH/QH7AP/RAP8H+QPRAPs/+QDRAP0Dz/kB0QD7AfsADA3/P/8//9EA+x/1ANUA/R/1AdUA+x//9wDTAP8f9wPTAPsf9wDTAP/9H/cB0wD7H/kAcQD/D1E5//kP+wf5ANMA/R/5B/0B+wD/0QD/B/kD0QD7H/kA0QD9A8/5AdEA+wH7AAoL/x//H/wICfsP9wDTAP0P9wHTAP/7D/kAkQD/B/kD0QD7D/kAP9EA/QP5AdEA+wH7AAgJ//8P/w/7B/kA0QD9A/kB0QAB8QHptQAICQoLDA0ODwAAAQYHBAUGByEF8AYHAgMJeAABzws8ATQL' $GraphicsCaptureWrapper_x86dll &= 'fAseBAUdfhs+AQ0PEA4ODA4MDMIKAQMMCgoIBQcBA3AKCAgGDQ8FBwEDCHgGBgQdH40HhQOBAQb4BAQCvR+dD40HhQOBAfAEAgIAjYeJBYWXiQf/hQWNp4UPhQWJD8kDzRjVHx/JB8kDwQHdD+p/DAwIEAwICATBAAgEBDPGQ4QBBwDEAYMBBgf8AAHDA4MBwAPEAYIBgAD/wA/DB4IBwAPEAYIBwgfDA/+CAcEDxAHFLcEfww+BAcEP/8MBggHCB8MDggHBA8QBgQH/xA/DB4EBwQPEAYEBwwfDA9+BAcIDxAGBEMUfBMMfgAH/wh/CAYIBwx/CA4IBwh/DAf+BAcQPwwfBAOIP4wDBAOMD/+MBwQDiAeQAwADmD+MHwAD/4gfjAMEA4wPjAcEA4gHkAP/AAOUH4wPAAOIB5ADAAOQDf+MBwADjAeQA5ZLjP+MfBf/kH+EAwgDkH+EBwgDjH+IA/8EA5R/iA8EA4x/iAMEA5B//4gHBAOMf4wDAAOYP4wfAAP/jH+MHwADkH+MH5QHkAMAA/+UH4wPAAOMf4wDAAOQD4wG3wADjAeQABekf4w8E5A//4gDBAOQP4gHBAOMP4wDAAP/lB+MDwADjD+MAwADkA+MBt8AA4wHkAAToD+MHA+QHf+MAwADkA+MBwADjAeQAA9vnB+MDAuQD5AAC5gPjAf4B5QHkAAV+63/kP+AAwgD/5T/gAcIA5D/hAMEA5j/hA//BAOQ/4QDBAOU/4QHBAOQ//+IAYADnP+IHwADkP+IHwAD/5T/iB+UB5ADAAOY/4gPAAP/kP+IAwADlP+IBwADkP+MA7AUG6B/jDwTkD+IAwQD/5T/jD+QB5ADAAOY/4w/0Ab90AGAA9R/zB/UAdAAE+Af98wMD9ANzAGAA9R/zA/UAbXQAA/cD8wEC9AF0AAJb9gHzAAH1AHQABv8fBP4F9A9xAHWJ8h/zD/MAdAD/YAD2D/IBYAD0D3IAYAD1D//yAGAA9A9z' $GraphicsCaptureWrapper_x86dll &= 'AHWN8h/zB/QDv3MAYAD1D/MD9QB0AAP3A23zAQL0AXQAAvYB8wAB6/UAdAAF/w8E9AdyAGAAn/UH8gBgAPQHcwADBPYD/fMBAvQBdADAhvUP8wX1AP10AAT/B/QDcwB1nfAH8wG79QB0AAP+A/QAdAAC/QED/AB1ACAcHBgcGIQYFDEAGBQUEHUA4TEAFBAQDP0AdQAxAP+xhP8B+wH9AHUAdYj/A/8D//8D9wP/AfsB/QD/j/uR/57j/5T6lAgIAAIAdAF3k/9zAHmOU3f1AHMAe3h5N3MAB3kyeyF8HBgYEBgQ7BAIMQAxCf8PAAoAQwsDDwAGAJ0AEM5PAAIQoQDwygAQQMsIABCAMAHSEAAQSsQxAKC3AHShtwBVAG5rbm93biBlAHhjZXB0aW9uAfADYmFkIGFsbBhvY2EDAfIAcnJhAHkgbmV3IGxlEG5ndGhxBnN0cgBpbmcgdG9vICBsb25nAJcBAAAAQzpcUHJvZ3IAYW0gRmlsZXMAICh4ODYpXFcAaW5kb3dzIEsAaXRzXDEwXElAbmNsdWRloAAuQDAuMjYxMHAAXABjcHB3aW5ydIJcUwBiYXNlLmEFEEMrKy8ABFJUIJB2ZXJzoAk6MlEDgDUwMzAzLjF/Bx9/B38Hfwd2BzQDLkZvGHVuZKIQUAhXAGkAAG4AZABvAHcAAHMALgBHAHJAAGEAcABocAFjRRIBQ/IAdAB1kAFlrfAARJABkQBjMAEz0ABWMRAAOwJGMgRtkABQ8XAFbwBscAx/Bn8GewbrHQL7AUmQAGUwBgUAfxIPfxJ/En8SeBJHcmFwAGhpY3MuQ2FwCHR1cjQbOlxfQgBaMjVMTlxDbwpk4CJcUBxcX1VFFlq2BnUDIHQDIEFQLElcRQE0AVfgAHBlBHIuoAcAAHZlY0h0b3J3J0NvYApyAGVtZW50TVRBUFVzYWfRFm/QDmJ1MBBz0hFkUBVxFZUAQrcCAAAARGxsR2V0AEFjdGl2YXRp' $GraphicsCaptureWrapper_x86dll &= 'AG9uRmFjdG9yAHkATJ4AEGJBCAAQIAAM7EAAEAKAABz6d+xUdxMA5kSMMoj9X0QAyEy0lwAQ8qoAFW8I0olOmrQASJU100+caKCAABDSEAAQxAAGVKifBxbYABYyCJ5QAwAOAf4BQACADQAAAIARAQSAVwCoB4AYAAsOAANUAA8CBQAPlCvqlMzpAOBJwP/uZMqPLFuQATMBAMADBkYDAQwPknC6gohMfQBCp7wW3ZP+tgB+ILHyHH1UGwAQjmUIACsr0QAZxOVGV5dbTABCtiAoIpFXNADdKajVMKR/JgBAg7vXW65OqQCeqyR2o1+NUABGnT6erj2bxgBwPxCbWLxr9QBdqZEC4os7ZgDVW/nDefcxwgBOpGRjLvXTBwBgQK45LC59RABQgE6LZ5nUzwCeZtnN8q4ioQBelZY6KJNEwwC+EtCzqfI94wBOuNGGlfRX0wDBG+goNqw8YABMt/Qjzg4MMwBW90epUc95PgBao6USic+m3wDowBDG6Yym2QBbgCGFiTRu7kDiDgEBgAyAhwJBgJPHBAeAC4AFfAGAzcUdABALHgBUECKAAVWAAYWAAbUFgAHlgAEVHwAQNgeAAYSJMgBAwAAQhJCiABAXwAJoccNqbQYAATgWCADgwBfRBWxhyBtHYKdowQHAiABAxAIAAFSjwACJB8sGwIv/IsMAEBSd68cdgTgkwAMsxATBB8UGHv8AAMJIwADBDIzBAJYQhUTJBizAwrjG0w1WBMBwyR88wBc8wAvIUKEAEBDAyrzEBwStwEhYwATJJQbAABDAClPFBIBFAEzADJDADCBByAuYyQAQBdAemK3ADojIFOUKpOwMBGwRawUAYW6sYAJMbBMFAPilYBmY4AbYxHMfgGAD9ekFIOAUOOAI4QBhGe0F9WEDvGAGSGAtZRHhJXEL22EoaRjsaA1hC0DkB2ED1gdhNOADYGQClGBe8ThqSOAPTOAKHOEAZB58feABZGEc5A3pLukU5T8I' $GraphicsCaptureWrapper_x86dll &= 'W/g/YQ4I7CzlE+TsK1zwwgAQMOAE4QBxJWEDYepaxwAQ+GACZRO42sjzEfT8G2koWGgq4RT+kOAB4QzhUu0RYQ/pB2FlW+FiZUMEdEPlXGjgEYS+ynRvbAvhN2E15QUJ+AW14Qv84DSo7BthW5TgArb44DZxZ7BohGEF0OgBpWEjJGAMuMXzFdhtIb1gWAzgFWUy7QVhMmTkC79havEr4WzhCHFBYQusYACu4GAI5YjhOvToOghwDvc/L3A08AL4cAm/AbB2PA8apPAAEDAPvwIAAOgHMA//B/cHNVkAACtWXTAzMABvMACZMADLWTAAGF4wTTAAiDAAspUwANkwAPYwACpf8F9VMACIMAC8MADjMAANVmBwATAAUTAApjAA0A0wAO0wALCEAAOAA1iA+KLwDLAANLBjICExE1MAANMwAD9UKAAAezAApjAALlWoAAAzMAA2MAA5MAAKpDAArDAAFFYAAIIcMAB9VwAAjTAAXNBKMAQAZ3ELiwAPnrBbAACHcADxBh0xaRhDVEyRDcENLnRloHh0JGRpcQ4QAAFkG001AW1uMQFxD98DQCQzAXgACmEAANIKdgN5ZMIUcDAw8AUALmlkYXRhJDUHIQHwePI7LjAwY2YOZyAC8ABxNC5DUlTQJFhDQTECdDsBkAyoAAB4OwFaMQF8OgHaSbIDgDsBcgKEOgHQm60AAIg7AXICjDoBVHICXpAwAfIQMwFyAqAwAWDaKzABcnENAAGdMAYAN9nzACRyMgdwG1xxAzMBTHN4pAJwgwB0dwF28G9sdG3BErGBMYJ0ASB6enpkYuARABgCpjQJcnRjJElBVTIJHDoBWjIJIDkBVK1zAiQ6AXMCKDABKICYDi4CCYAbAABQsQAACtRxGmVDCiSzAADKzHcbMjEC8LTwJLEEVTMBM/JPtfodNPKPtlgAANzAXzQBNgWulOexAzQQsE4ATLEj5BLwiawA2ABC9ABzsl7KMADJMQJic/IAANBw' $GraphicsCaptureWrapper_x86dll &= 'F7IMwHNyYyQwMXIYMAEe0HIXMgFyCg0AIgWTPhlfAQcAdVJxAvFAdKb9s0CEcAB9ArVBdQD5WPEBVpgwA3FbOHBi3DACva4b8wCxXXECzvQAPPBvWtjwAd30APFw1PAARNYc9AEwUdDwAKvwAHEJOfEFDKe/irUH8QiMXduzAjEMOL8CugK2sALxAFq+OANsPwM6A/o0A/KbNANxAaA/AzoDP16zAs3xPtCwAjFnEKi/mz8V3QsAc3AEtQDxLHv4AHUD73EEMQCxDHEATHAGsQJxGXuxZzEBXLQH8QDxiTEBbCcwAbFeBQC/J/sAvCi9+wD48AD2D7wM/Q+l9A/N8QDMvwK6AsZaswIxEp74vwK+An0AtQM0qfMrzkxwAL8DNxYdX7MD+QFNtRNgsAM5D9Qt9wWUbfQFrP8F+gVH/wX2BcAp/AXTLvcF9PQFDKoD/wX5BN23oHtfABD/AAAABAAKAQAYAgQ4IKoAEAZABWAAAOkwABAi0AWTGQMALFQAbAGMXmwADghEAm4Jnq8YvoCpDL7VMgNfCAALuAAbvQEn+BBfAQAFUzUHBAQDwgWFdasAEAaAA4EBmgeECTCACYlP8jeLB+wVOINXgRVkgBWJU46HtmCDFYFpkIAVgQugjBkvgUWNU4kjgQG0jEnJQWuDIYEtCYAD8IAPgTE42qyXm3iARYEFg4ADhQvt2QGOwAnBRZnEC8EBwRi3wQDBgsEEYMAbzVRwwAQpySqHR8sDgcwDgkz7x4rVP4DAFMZRwALCUcw6NcEf/sQP2MQBwQMET7gAEBfAAMUDwQHQyAdpwQEnUdsH9MQHAQDnC8ACxQXUyAnTUgAQ5vLAAMEo8K/AOMAAwQacCMHDAcU2AQNdG8MEFNzA1wZYxAGArgAKEMFbcMATULAAEGYMwADBGGitwxjBAmzXwATBAsEJ7MACZMAMwQntwhTC0xjhBuhkCOIM9ARtYQHgeAPlFMxgCWEKLFdgD2EKgQKU7BsM' $GraphicsCaptureWrapper_x86dll &= 'YACG2hHjBKRkFmEB2GQG6QnWROQX5QGY7AFYYAbpAWrA5AO0eBUeYA/hALCrYBVpB4xsCaxkEdh4N3I4cAO6E2NT5RrpMFxT7BJhIQUS6w5c5BJLlhfkAeQIEOgjtMN3Empc+BWseAM8bAphE5G6EGMPhGhEZi1kPbjoXHaM7AthCCDlG3gWZQok2rFjCgjgAGUKsPRj4QS2JGgPZQgoZC3lPNjkKWqM8BtrZAQQdBNhDNRtcAwEZEVlDGTkA2bMsmVjlg5kAHix4BhgAOgBYABYNwAAqjYACAC8NGA8MwAAzVngAHE1YMxgAAjgATEB4AHjKgAA2i0AAADvMAAA9ywAQAD7LgAAI2AKMlVgAEBgAE9gAGVgAHZVYACJYACfYACvYAC9VWAAyWAA3GAA9WAAD6qzI6gCoLUEoKMGINyACAAJAAoAC+AfAA0AR3JhcGhpAGNzQ2FwdHVyBGVX4ABwZXJfeAA4Ni5kbGwAQ0BsZWFudXDUAQAAR2V0QnVmZmVgckluZm/RAIQBTQxvZMIB5gBuaXRvwU0CZEZyYW1pAgMBBE5CLgFUaW1lZINRAYQEQ291bnTxAEBSZWdpb25yBUl/kAFlCbEApQIvAUMDiQFQwHJpbWFyeS8DBAYrFQGxbba3ZcawAFxxUAAA5LU3AdAwAeBWcDAdeALysABUcAIoWXgCVLewKnACBDgBnhUwAQAwATg4AWq4AJQANDABFPgEtrnwKFXwBAQ4AdgwAQAwAVBVOAH4MAFMMAHM+AQ+ULsAAMjwBHw4AWhVMAF4MAG4OAGSMAG0VTABdDgBvDABcDABpFU4Ad4wAaAwAdQ4AQhWvHAQMAHsOAEsMAHo1TABmDgBUDABlLENOAFshL2wDTABZLkIMAFgVTAB3DgBsjAB2DAB9FU4AdQwAfAwAfw4AfyVMAH4MAGIOAEevnAGrzABDwBwBjAYcDAAkLEYtQAAyCBwyTAAMI+AsKCqgDEBLrABGjAAQDQC' $GraphicsCaptureWrapper_x86dll &= 'qkowGjAwAKzwAMIwAKrcMAD0MAAGMAEQMABaGjAAPjAHAQCqMA94rTAALHAJ8mu6cwBScACqNrQAPrABGjAAeDQCWkpwAChwFgEAirADmFUwAAzwAGb0AYRwA8ZVMADcMABwNAQadACsrXQAyjADAQCU9CHydAGq4HQBALQE1LAKyDAAVpTxJAAAfLAAqLAA3lVwAApwAIRwAPAwAL5VMACc8ACKMABkMACiVfAASHAALDAAfLQDlqswAQEAnDQHsnAAbPYpAENyZWF0ZURpAHJlY3QzRDExAERldmljZUZyQG9tRFhHSdMAAAAALQBTbGVlcAGwSkVudW1EaXOocGxhhTpz0EtEoQODpAQjA2QzZDExwkoAYXBpLW1zLXcAaW4tY29yZS0Ac3luY2gtbDEwLTItMAICGQJudBB1c2VyMAJzcGGVMEdzcQIxdQJMAcBGAERlc2t0b3BX4GluZG93kHAxAZhNcEEAmQLkAEEMZAJVIFNFUjMyUwSIBQBfTXR4X3RyeRBsb2NrsLQCP18AWGxlbmd0aF8AZXJyb3JAc3QAZEBAWUFYUEIgREBaAInzAnVuAeICTVNWQ1AxNAEUCRAAX19DeHgB4lFIYW5kbGVyDZBiIlABMARfZXhjCGVwdJBLX2Rlc0B0cm95ACGeAWMYb3B5MGR0AXRlcghtaW5QFABGAG0oZW1jsQFIkQBzZQZ08WLBBlRocm93QkUFBAAANQDkBF9KaBMINEAFbW2gASXBVQV5cGVfacARdQgQX2xpc/AEVkNSQFVOVElNRfYMVwAAYWJvcnQAPAIA8AJ2b2tlX3cIYXRzUQZ7AGlzFndAGdEgOtIBYWxpFGRfUhplYAtfbm8nEQaRDEAUbm/wRwBfAGNhbGxuZXdoEAAZAG2gAG9jAAAAQQBfc2VoX1hmaWxBA0EHGXACbxBuZmlnsF1fbmGBEBh3X2FyZ3aSDSppkBxpkAZ6pgFlboB2aXJvbm1lsGcEADYa' $GraphicsCaptureWrapper_x86dll &= 'Am9uZXhpQHRfdGFibFAKPmgAX3JwY3NxBpQBZih1bmNCEyQxE2VjFHV0TAMfsAhydF8zABgwAQAX0ACCAAAY0ABmcmUwBTjzBmEaJAA5twBfZVoucnQ8LXKgceBy6SscAmhlDGFw2i31AVO1AGluLWNydC1zAHRyaW5nLWwxAC0xLTAuZGxsAAAAMgBJc1ByAG9jZXNzb3JGAGVhdHVyZVByAGVzZW50ABEAAFVuaGFuZGxlAGRFeGNlcHRpAG9uRmlsdGVygAAADwBTZXQWPAAMAEdldEN1cgZyAIwEugBVAFRlwHJtaW5hdABgAxIEAAUAfURlYnVnCGdlcgV1AABRdQBlcnlQZXJmbwBybWFuY2VDb5R1bgFVDQ9VSWQApYEHFVRocmVhZAAUBAAXARVTeXN0ZYBtVGltZUFzgEwCZYEEAAEARGlzDGFigAYCFkxpYnKAYXJ5Q2FsbABIAABJbml0aWFsAGl6ZVNMaXN0AkiAEABhcGktbQhzLXeBom9yZS2qcIM9dIIfcwOnMQKnwY0UZXJyb3KCkY27t6EpAxWNFGSBl5olbANpQGxvYWRlcoEUMg2YOmbARVoTc3lzaShuZm/aCGnBZ2xvEGNrZWTKCSgAQyJvR1RFeADAcEZyZGVlBF0AFkFpgXJBrGRkgH8AYAdADEPAQAx0ZcEJg2hlZE1hIHJzaGFswIAGAABNdWx0aUJ5dABlVG9XaWRlQwBoYXIACwBSbxBPcmlnQpdMYW6wZ3VhZ4AbBKUAwHwEUm9AGkFjdGl2wmHCqWFjdG8AIAAAh0QgQB8Ae3AAAEZAIOhVbmlGLQDAHEEGwSMYAAAJQIjGOlB1c0BoRW50cnnCigAYGQBMgFzENkV4V0gAAAJCDkFsgAsAAE9MRUFVVDMy8VNQY29tW2GO7k0IAALfgPhCnImk1Al5DWhgFgkEAEcAbWVtbW92/8AfHwAfAB8AHwAfAB8AHwC/HwAfAB8AHwAfABwA/wAA' $GraphicsCaptureWrapper_x86dll &= 'G+UAAQABXwYKAE7mQAa7vwQXALEZv0R1hpjnAeEP1JYAEGEBAC4/QVZiYWRfAQCwb2NAc3RkQCpAaQNVQIBzQH5fY4HgqGdlZF9zdGB8nkCiWCAF6ghmBWFj4XmAX2RlbmllZHwFSGNsYUAFbm+gBnb4YWlsIcMmBvEFImx8ChhpbnZgh2Aacmd1Dm3g0sgF6h5sb2dpHmMkCiMf8wmhE2ltcBxsZYEJKBpyD2xsZRhnYWyAH+EAdGVfMcAbaWduagh/A3RfRG91MABmX2LAdmTuc/8N8go0AnKRGAUL+QH/fg8/An4K8hzUHX8SfRCgFXHgV2ZhY78C/wXyBW2AZXRob2RfY/AlA/8P+AJ3cm9uZ193A3i/BfMNZSVlfyr/JF/IcmVnYGFlcioofy8AcnJheV9uZXeAX2xlbmd0aD8TH7gF4ZDwlvkEPQV0eXCSZVASZm/8CT8kFSGKQLAAVFACZEV2MBoCSCKcckBVRGlyAGVjdDNEMTFDBGFwcaBGcmFtZSBQb29sQAQBQEcAcmFwaGljc0BAV2luZG93ZiJVYElJbnNw0APSM0bDISRidkA0NUDpAGwDAFY8bGFtYmRhAF8xPkA/T0A/PD9GAHwxd/QGIKZ1cABAQFlBSFBBSOAwQFpAQEEwvynyDYf2MXE/pC9iYXNlPQMD/SLxEkA/JGFiae9/EXIRRQ9ECUkgpQ8RDxF3DxEPEW0DWMwKfwpzCkmAVW5rbm93bq8E/68Efw//BH8P/yD/IO8P7w+v7w8/Cz8L/x1BtiIysCKcQkLPIs4i/A4/JB8i/68wLx8vHz8PPw8/Dz8POzD/fw1/DU8wfx1/Ps8Nzw3PDf/PDc8Nzw3PDc8Nzw3PDX5a779CnwTtH3oRSUTE7xN7AgJttcZAPzE/P23wYWtlXycBuQOiBm85A285Ky4yM0BQQVD8QVghCv8p/ykvHK85rzkBmxykugBvd3NAd2lucgB0QEBVSUlucwBwZWN0YWJs' $GraphicsCaptureWrapper_x86dll &= 'ZQBARm91bmRhdIBpb25ANDVACTgQV2luZAjYVjxsAGFtYmRhXzE+AEA/T0A/P0ZpAG5hbGl6ZUNhAHB0dXJlU2V0AHVwQEBZQUhQAEFIMEBaQEBpKG1wbAV6AAAA1JYEABABBy4/QVU/ACRtb2R1bGVfgGxvY2tfdXAAc8BlckAkMDAONf8ABU8AAgJiIAAAgBgtwAE4wAHLBwFAAAAAKlDQBQJAAWjQBQkECw4FxgWQQAKg0AAABDQFRwbY1QAAkRFICjQFNEABVgBTRABfQAFFAFJAAklQAE8ATsADSUABRkPAAgEAvQTv/sEVA7/EDcUBBQCAG8IuCQCSAAUCAcATdAByAGkACG4AZ0ATaQBsAIJlQBZuAGYAb8AIom7CCDAANMAAOcAAU0MAwCUACMAFUEAOb0AAZAB1AGNAEVZRQA5yAHPAEG/ADwBxwAkuADPAAMEBwQxSFAAZwAxDQAdtAHBUAGHACHlAMGFAA2VVwiNVwDdaQF9TQAhmFcATd8AGcsAGIABEVUABdsAAbEAGcMILbuPABwEAegApwBTFLcEJNnPAIsEzcEAIRSIAAKpXwARhwARwwiggQjdVwQFXIh9koAF3IAcgVABH5ARo4AJjIgJDreIBdGAcYxFBoB5JYgpYWAAcYA9hJXSiCm59IAVsKBptCSsJKxLhJGPXogGhPeEkTOACZyIKISb2cGAloRpnoAkhH38lbyXoZgAf4ApP5AjhHqELD2UnoQH/Fu0WXwB4AGo/IAAuYChsIAABAE58ABduQ+k8/wvnCwEA6iwB6eZG5Rlz4AJJAKpNoAxP4EpUoDJOoABqOuAfWeAEdeAA5SFuXeABdOIB4RPhPGWgEiDVYAJvoABzIiVs4gHhEV0hPmPiFmEHY0Rq4AlzW2IIoVZyog9hA2agAGlf4gJhKSEMYwejFHJgAWl3og7hBmEhaqACYSHlCm314gxp4Ah5JgmhYqET4QK7YQ5hNWLgDyFMZQR34gD2' $GraphicsCaptureWrapper_x86dll &= 'aCQOIwhmIg5jI2Eeoy14IQAsIkJtCaN9oxVwv6ABoWYlGiELYQ1jFmeiMX5tZhzjG2EGYUYhFSNpbaugBCEPKKACeGAAKeIb9eUmYiIKZiIU4yohDSOAq+ECoQIhYj1E4pRW4ixRr5EAACQimVSiEm4NoAts4g7nfAkE6f0B4QA8P3htbCB2CGVyc0D2PScxLgAwJyBlbmNvZABpbmc9J1VURoAtOCcgc3RhgPoAbG9uZT0neWUAcyc/Pg0KPGEAc3NlbWJseSABAARucz0ndXJuADpzY2hlbWFzAC1taWNyb3NvAGZ0LWNvbTphAHNtLnYxJyBtAGFuaWZlc3RW+9kGoQQvtQTAAM9mDwAPAP8PAA8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwA/DwAPAA8ACQABf4BxATAAKDAzMGgwdjAAgTCcMLcwyTAA3TDkMBMxGTEAIzEqMUMxSTEAXTF7MZYxojEAqDG0McMx0zEA6DH1MRUyMDIAXTLAMs8y/TIAGjMuMzgzSDMAcjMpNHU07zQAuDXWNQA2HzYAZTZ0NqA2tjYALjc7N2k3djcAjDeZN683vDcA0jffN/U3AjgAGDglODs4SDgAXjhrOIE4jjgApDixOMc41DgA6jj3OBI5LDkARDldOWw5gDkAjzmjObI5xjkA1TnsOfs5EjoAITo4Okc6XjoAbTqEOpM6qjoAuTrQOt869joABTscOys7OzsASzt4O4o7ozsAyTvYO+o7GjwAPzxRPIE8pjwAujwnPVg9cz1Azz1eP4w/wY4MAfAPYDB3MJ8w3gAwDjEVMSIxLgAxPTFNMW0xsgQx9zAOLTJBMnQAMpcynjKpMrgAMr0yzDLoMjsAM6szGTQyNF8ANG40jjSkNNMANB81TTVXNXoANbw10DX5NQgANl82bjanNroANss29DYHNxYANyQ3MTdLN2oAN4A3oTewN8AAN8w32jfvNxcUOCqwD1awD5M4ogA4' $GraphicsCaptureWrapper_x86dll &= 'vTjIONY44gA4+TgXOUg5dwQ5lhAPCToqOjsAOo06uDrpOgQAOyU7PjtaO4wEO52QDb07xjvhADv8OxQ8KDxTADxyPHk8iDyPADydPLc8+jwEAD0fPT49VD1bAD1yPY891T3dAD3nPQU+KD5JAD5RPnM+jj7UAD7+Pgg/LD9PAD9lP2w/jT/6Ej8CiwDcYAAFMBAAMB4wKTA0MD8AMEcwYjB/MMEAMNIw6jDyMPwEMCCwIHUxfTHsAZARAjIQMhsyJgAyMTI5MlQycQAyszLBMtYy9QAyDjMeMykzUgAzmjOiMxU0NQA0UDRkNHg0jAA0oDS9NNg09AA0/jQONRc1IgA1TjViNXU1jgA1mDXKNeI1/gA1KTYzNkM2UAA2WjaGNpo2rgA26Db7Ngo3IUA3NTdbN2WQI5YAN6M3zTfYN/MAN/s3FjgeOEEAOGQ4hziqOM0AOOc4Gzk6OY0AObE5AzsIO1BAO3o9iT2rMg9YsD7bPjqxDTDDmGAAAOcwOTFRMWkxgIYxlTHXMQYQDIBAMtcy8TIMMgsASDPIMw80nDQAyzT/NI01MjYA+DYjNy83dDcIgjeIUBvMNxE4AE84Wzi5OJ05APc5uzrBOvE6AD07rTsLPE08AF08gzzyPJY9ArYwBxo+QD5PPgBmPmw+cj54PgB+PoQ+ij6fPgC3Pr4+xD7WPgDgPkg/VT99P1iPP9pxCcC0ePAnRwGQN4MwpDCpMMIAMMcw1DAWMR4FcApbkAqHMZ8xCAAyGjLcMhkzM0AzZjNwM3xQFWQQNLw0wnAK1DTdEDTjNOkwFQc1FQA1HTVTNVw1ZQA1cDV4NYI1jRA1ljWc8CjCNcwANdI12zXhNekANe41AjYHNjsANkk2UTZXNl0ANmo2cDaCNosANpY2nTawNr4ANsQ2yjbQNtYANtw24zbqNvEBEBD/NgY3DTcVEDcdNyUQLDo3P0A3RTdPN1mwPHkAN4k3kjetN8NAN9k3pTi+sCviADjx' $GraphicsCaptureWrapper_x86dll &= 'OA45UDlVADl7OYo5kzmgADm2OfA5+TkKADoWOiI6KDouADo6OkA6YzprADpwOoM6lzqcADqvOsI6yDrOADrUOto64DrmADrsOvI6+Dr+QZAuCjsQOxawPCIAOyg7Ljs0OzoAO0A7RjtMO1IAO1g7XjtkO2oAO3A7djt8O4IAO4g7jjuUO5oAO6o7ZTyYPM4BsC8nPT89Zj2DAD2tPek9Nj5qAD6cPtA+7T4UQD8+P3I/pnAX9yA/AGAAADHOITAISDBvEBfkMAExLAsxAAEAqAyxzDF0ijEByviwANA21PAQiOA25BAp7Dbw8DwA+Db8NgA3BDegHDogOiRwDSxQDQBUOlg6XDpgOiBkOmg6bPANdDoAeDp8Org7vDsAwDvEO8g7zDsI0DvUsEjcOxw8CiAQO4CwCgw9ED0AID0kPSw9RD0ASD1gPWQ9fD0AjD2QPZQ9mD0AnD2kPag9vD0AzD3QPdQ92D0A4D34Pfw9ED4oID4kcDw8MCZEPiBYPlw+YDAmiD4AjD6QPqg+rD4gsD60PrzQPeQ+APQ+BD8IPxA/AihQPjA/ND84PwA8P0A/RD9MPwBQP1g/XD9kPwJ88E/GsgCQP6Q/tD+4PwC8P9Q/5D/oPwDsP/Q/AKAAAADQAQAADDAQMAAUMBgwHDAgMAAkMDgwSDBMMABkMHQweDB8MACUMKQwqDDAMADQMNQw2DDwMAAAMQQxGDEcMQA0MUQxVDFYMQBwMYAxhDGIMQCgMaQxrDHEMQDIMeAx5DHoMQDsMfAx9DH4MQD8MQQyHDIgMgA4MkgyTDJkMgBoMmwycDJ0MgB4MnwyWDZgNgCUNpw2pDasNgC0Nrw2xDbMNgDUNtw25DbwNgAQNxw3PDdENwBQN3A3eDeENwCkN7A3uDfsNwD8NyA4NDhIOABYOGg4eDiEOACkOLA40DjcOAD8OAQ5DDkYOQAgOUA5XDlsOQB4OYA5oDm8OQDMOdg54DkAOgAcOiw6ODpAOgBg' $GraphicsCaptureWrapper_x86dll &= 'Onw6jDqYOgCgOgg7HDssOwA8O0g7aDt0OwB8O7A7wDvQOwDYO/Q7/DskPAAsPDQ8SDxcPABsPHw8jDywPAC8PMQ87DzwPAAQPTA9PD1UPQBYPWA9ZD1sPQCAPYg9nD2kPQCsPbQ9uD28PQDEPcg90D3UPQDcPeA95D3sPQAAPgg+DD4UPgAoPjA+RD5MPgBUPlw+YD5oPgB8PoQ+iD6QPgCUPpw+pD6sPgC0Prw+xD7MPgDUPtw+8D74PgAAPwg/ED8YPwAgPyg/PD9EPwBYP2A/aD9sPwB0P4g/kD+YPyCgP6g/sIDovD8I0D/Yg+YAALAAFABQAAMIgOckMCwUMDCA5UCC5lQwaEAwcDCEMIzAc5wEMKBAdLwwxDDIQUB12DDgMOjAdQQAMQwxIDEoMSwlQHY8wHZMMQASwAAEAEyAAZQwsDDcADAIMTgxXDGMAUB52DEQMjwyXAAygDK0MuAyEAAzPDNYM4wztAAz4DP4M9g0EAA1uDUINrg2+AA24De4OPg4IOA5mDmEOoARPwA/AA8/AD8APwAwAA==' $GraphicsCaptureWrapper_x86dll = _WinAPI_Base64Decode($GraphicsCaptureWrapper_x86dll) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($GraphicsCaptureWrapper_x86dll) & ']') DllStructSetData($tSource, 1, $GraphicsCaptureWrapper_x86dll) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 50176) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\GraphicsCaptureWrapper_x86.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_GraphicsCaptureWrapper_x86dll Func _GraphicsCaptureWrapper_x64dll($bSaveBinary = False, $sSavePath = @ScriptDir) Local $GraphicsCaptureWrapper_x64dll $GraphicsCaptureWrapper_x64dll &= 'CrkATVqQAAMAAACCBAAw//8AALgAOA0BAEAEOBkAEAEAAAAOH7oOALQJzQAhuAFMzSFUaABpcyBwcm9ncgBhbSBjYW5ubwB0IGJlIHJ1bgAgaW4gRE9TIABtb2RlLg0NCgIkBIaUJUqz0EQEJOAFA1fNJ+HTEQIHIOHYAgch4cYRAgcl4dYAB6TFJQTh0gAH2Ty34PsRAjMl4IQAB17NLZTh0QIHJAQH2+ABB4jQRLMCB17NJgIXMFJpY2gBZxXTUEUAAABkhgYAz18Ep2iFCfAAIiALoAIOLABaAAaEhAk2WQGAAgWAAIODBQIAzAAGhBmFAwAggA4Brn0CD2AABgMaBQOPBwMF4BC8AADUgBa0vgAEAAiAKwAAAQBwYQEq8AAAkAYuA8LQIQELnwAAOJjVsJ6HgOkCVAQAcAAA+IIrQRMALnRleHTAAY0PxTnBPsQxhjYAAGAuoHJkYXRhgAhcwxScAF7EAAgAwJJALoMJ2ADgEgABASwOwADAOHHMCcAucAMKwjjAOgAKCMAAytATcnNyYy+BHMJCADbBCdLRCWVsXm8ACoEcAqzBPNrOCUIfoLs/AD8APwAMAEiNDQJZQDzpfEYAAMwBAABAU0iD7CBIIIvZSIvCYAPdiAAAAA9XwEiJCwBIjVMISI1ICIAPEQL/FT5gIAcAi8NIg8QgW8MgzEiDeQgACQUYAomgAg9FQQjDzIDMSIlcJAhXYgkIjQWXoAhIi/lIAIkBi9pIg8EIAP8V9V8AAPbDIAF0DboYgRCLzwToGwAQSItcJDAoSIvH4Qpf4AqNBRHhD0jHQYJjSIlBCSAQBWJBAokBSIs2wcAMYQQ5BAIAC0j/rCWbIAvjArFvBz5rBwCD7EhIjUwkIADozv///0iNFcy/pgEiAQLzUKAIbCG00YdyITIADkAL46ADWEiJA6cibimR8wfyW6Bl4AeL7wegByjgBgExgBb/FVvABGUKQEgIiwWDAINIM8RIRIlEQCaN' $GraphicsCaptureWrapper_x64dll &= 'UQiApCiaAeAIK+EIQA6JAWENuI0F0+EBYRohBSAiDpKAIw4RiyYOi0yACDAzzOiuQGHAD0BbUsNsF9WGchc2IwnHSop9H5XzB/Zd4gdvQe8HSIsRSMfilUgAi8pIiwJI/2BGEGFKgAB0JBgBS0CYi9m4wDbgNjRdIJEAAEg78Hdj6NACTyEGyEyLxjPSJOjhgAEz0sABSIUAwHQrSIt0JGAAiVgEiRBIg8ACHCBCEI1CAYdBwBhmiVRZHEBCoU+SWKEfX8ODQHz9okJkUaWlQt1OYDBDAXTS/mIDFahlA8FhA+YeAUUX2cdBCN3MuwCqi0IMiUEMSASLSuAXSxBIhckAdAZIiwH/UAgDah7mG1VXQVRBVqBBV0iL7MQ9lGClAcI9RfhNi+GL+hhMi/GEDCQMiVEMwEiNWRBIx6H54F4GRYGnYBNV8DPJ6EKQgBNIi03wAA91AAhIiU3gM/brCiRgBOijFAFMjUUK6NAMrwA8/xBIi0B16EiJdeACA40AReBIO9h0GkgQgzsAdAAMy+hiA5EPoQGJM0iL3usAFUiLG0iF9nSADUiNTeDoRcUBgIXbdHNJi17ABEFgHXggSYsOQQ8MJOhUkAhJx0JbSYuC1vAE/9dJi04REVgPhNyDC0wJOkQJTRdACTAAgQKzAwIz0v9CUAAyTejozpAa6bqdUAEzICZQA6AGDgACBdAP6CECi0XoM9sFMSA3sCDolU0AAACL8EyLfeiL2IBI/8tJjRxfoAGAGg+3C/8VrQApMIXAD4QwB4Aw6wIAg8b/deYz201Ai8xMi8OLoArODOheUBfhDSODyP8A8A/BQxiD6AHID4WnAAPoU5AFwicaw8AnUsIAEgt0BegCXNEAg33wAHQJERAL8OgcEAtJi8YFAAL4gTc1PQAATACNXCRASYtbOAhJi3NwAONBX0FAXkFcX13DQAcBAaEoi9hEi8ZNA8FQPUgcD4RosS+wBQAZTYX/dA1Ji9DX6CxMgFxR' $GraphicsCaptureWrapper_x64dll &= 'YAHQByImsAD/Fa5QeccAkhaxnRWasADpM9AByfANiWORMxVHIAFwJwBMi9xJiVsYSRiJcyCBNRBYBSW6A9ZF4BPxSIv6SIuKSXIrO3AVTY1DkRlikKBFScdD8hoRGlyAJCAzyUiL03EsWCDoChAIcRIK8zErIPz//4tOECTHiUoP8UYoYQ8+PENfUJuxObE3MGBfczBVVtQvEbABBZa51i9Ji/mISYvAcGSL8UXQHiSL0CApz0thBAWQAssRB8B0FEyLTSIYMQhMi0dgCVcIUIsP/9AcMX4hA40V8SlFwCrAUTFF4DMI/+srBygITIsJDTQoluBLgB1B/9FIcWAjSIl9wDFwAxAvSJA72XQXxzFF+3EawaABiTvrEkiBGWIxvi5lAdAJ8BDxHxABkNUfFDc7YxB4EBBQX14GXTAQc0SLFeiFAIQATQBMi9no3UIEk+RC91WDwfBMOQAwJpTI+gECC4M260rBNLfDQARGNQWY0Aw0BYk/BSiLFVg3B2n/AYsVikT3AUn/AYsVSPcFoin/AYsVIPcBCf8B2IsV4DC29AHpIg38AYrQ9wHJ/wGLFbz3CaKp/wGLFYz3A4n/AeiLFVz3AWn/AfAN9wE2Sf8B+hEp+QEykUiJpnzALact28ixH/qAHBWTK0IgKVKgJ00IiQdgM5IrECSB+w4AB0CAdRbo6PZyZ70T4LySJUpIIDyB+wWB0QEZTIvH6MNDaxas0FACAikDAg4BAaUEAvYDAtOgBAIIAwIoAUAABAL1AwI6oqkEAudHAgJXJgb0AwLU+ZwEAsYDAgug0AMCqvMDAvg1CKUDAgImBiryAwL3NQiEAwIRAaoEBALxAwIOJQZjAwJqVAYC8AMCNWDPAgJCVQMCDDYI7wMCzDUIIVcDAmDHBALuAwLrFQQAVQMCDQYC7QMCwkUK31khsoH7AKsEAuwDAsmlFQS+AwLHBIUS6wMCCiAFAp0BAkyLz4tQ0+gQ+KIB9cUFgtH3t4Hs' $GraphicsCaptureWrapper_x64dll &= 'kLODSBEgICIE0MZzTSVIi4wkCpjBVtDCkusFSIsRMJ1IgcQBA1vD64Dw6+7r7DPS4E3OM+QEOIWBJyBVV4XBJwA+tE27AAAASDPESIlFIPDHRegAAABMjYB5CEiNBQ2BAMABBJBIiQFIi/JMIIvxSccHATwzyYBIjVXo6EhGAGgAi03oSIXJdCsASIsBTI1F4EgojRVbA3LgAVL/EARIiwEoTdhIi10I0L8BACTrDzPbAQAg4EiJXdAzwCCNewZIxwEWAEkAiUYQQPbHBHQAE4Pn+0iDfeAIAHQJASfo8/X/Av8AGAJ0EYPn/YhIhdsCFtDo3AMWKAF0EAAs2AMs2OgWxgAVAA/oAw/o6LYhAA9Bx0YYAWJJOQA3dCJJgz8AdEAISYvP6JsAGkkAiTdIhfZ0DEgAiw5Ii1EISItAzv/SSYvGgGrwQEgzzOigNYGHXAAkUEmLWyhJiwBzMEmLezhJiwDjQV9BXl3DzADMSIsCSDsFagCAAAB1F0iLQgoIAAZlAQYKSYkIAPD/QRgzwMNIBItJACsBSP8gzAjMzLgBQ/APwUEIGP/AAB/MSIlcACQQV0iD7CBIIIvZg8//AA15GCCD7wF1PYOpg8EBAG45AHQF6O70UYBrjUsIBAffAAe6giABzYvL6OI4gQMAXCQ4i8dIg8QAIF/Dhf957/8gFWtUAACBMYtJChCBJgqB0ItQGEmA/+K4DgAHgII/VYsNINgGKNEGB0I2YGwwSYNw1Qc4BQbMBUAbxQXFRQGARUBDKIPIgYFCAYPoAXUFgDQAKMOFwHn3/xUsmVNANMFMCMRMAkkgi9hMi0TBZ/lJBjvAXQFhSTtACHRSMoNmv35AYw2EZrrpAAN0GQMGlgEGwAICBgKRAQMMSIk76HOA////M8DrVwMJVcIFQQQJjAEDNMC3S0XAVbnBXujdMwFeyAwzwME0QHnX6I/8AYBpiQNI99gbwEj30CWBN+sKwAeJQAO4AkAAgEFpMAPD' $GraphicsCaptureWrapper_x64dll &= 'aMBCAfBI/wjDEEyL3FNAM2BIiwgFsbAE40QkWEhki9pA4d97Qd8AoEgAi9FJiwhJx0MBAuRNjVvox0QkhDj/weuLShBMgCiATIsRSYlD8EArABhIixJFiwlF1osAJ4AAEkAN+EL2ABICKAEXIEH/UjCFQMB4HkiLTIEWwyhIiQtBAVhhXqwyAUAOg8RgW8NIjQJUYErI6Eb5//8BY1UISIl0JCBVAFdBVkiL7EiBRuxgXQAMBfmvhYj4BEmLIBD6SIlV6ABFM/ZmRDk1s4J6gC4H/xXdUWA3RMdFIj3HRbwgJwAN4BsvoAPABshIjUVCuOAAsEyJdeCQ0KQfGKIDMXmiA9igAgDgTI1N8EyNBSRefSEDVbCAe6DoAKUhAACLTaCFkMkPiOIiEV3woIoioGCED4SLAh516ChIiwPgkujgNqN8G8JlQpLowArglsB0Z4mihJDxoWsFecHiDRLo4DIFbWEBi1XwADPA8EgPsRVWqcABdRoACqAgCVlhA4iNDYLAAOhzQQCLVIveQBMzIgbXYIjoICj+//+QoAgNJ6FhAoXb6xRgEKCEA0ILgQNMOXWgQpSgjOgTgQ9Ad4tN+OEvZCwxYY6cJGErwI4gI8COQo5eX10gMlXQaOi398ExzOFkpIHRzvCBnsBkYTQYVWEzA0oMYK6muwCMSIlN4MjHRcAiuosKhrtgV0A2x0XITghiLr3qd2Ig0MAD2CMF4brhJ1Ij4Cf/EMBGdoK+iflgAMcDQQRgCsHCYAjgQB1hCJnjNmoIgEyNFXBRwD3/UBhgCCbiLkDOLYEDYKTDrTEwwQFDH8tBUAIeyCBQxPZAJmQBXrhgAcAf4GfgGlggUnAAEEiJeBhVQVQAQVVBVkFXSI2UaKFAU6BDU16tJSAAJ0Uz5DPSM8kA6Hk/AACFwA9EiByAF0G9AABSQSCLzejVL+EF2EUQi8Uz0mB66Oc+ESAaQzhXwAgPV8AA8w9/Q2jHg6hDQdoAAMdDYAJA' $GraphicsCaptureWrapper_x64dll &= 'AURoiaOswkyjAHfBALjXwwBBLMAAyMMA0CMFISFfoAHB4sAAQS/AAPBhA4iCo8FzSIs9Qb/hJgQdOsEAhf90GkipoNQtHuET1UEB+iFzCIsdG8ADTI1zECBIjXsIvsFpiXUg78dF8wVCMA8AErHBABMAIBLHRRckAKHBDGX/YAD3uKIFIJBNi/xgqVPgbQL3IYFITIlkJEAv0ABQS/BEMEUwohxEJDYooR2AAQ8DQwJPRTMAwEKLVL3vM8kQ/xWlTpAFA/5JIIP/AnytAB1rTACLff9MOSN0FTkhaWcr0AHAAEBRy+gSWsEAiTsAAvdMOaInAQLP6EYCAicBAgjP6DkCAj9IixuB0DpIizhNOSYheijO6CCAAU3geI0VNB54wzvX0AuwXR0Wsr4hAyUPYAAhgRNxBowCHREzoBLL6M9ANIjozD2gisDp+6IWjGUH8CNwZw3cvZEEQEkQ/xXqTYEgedoz4ATHQAHgBMCxAeUEVLMc5gSA4QR94ARBEIv06ZpCV00HTRCFyXUPgAXnSYsAzEmL/EmL1OuOSnEWQBizNA1xdPEcdE0XUAEfQEfQB7BHAhXgNPcQDYQQDUmLyVT/0LEohAIgTTAZTbDnSIv50F5ACTLRCAiDwxhQGOdIO9gMdBURFYBay+jg7AUhQ89gW+sPSIXSwTB6jU3n6MpQAYBFhGUHgkUH6OIp4FHlsYwnwTXULHNFgTFwRROgjHFFe0DkjEFdQcpc8jYPwC9U85AEcAxkhxlyDKlzeAwTAjIJEALMzLBrSYlbGCJWAWGD7HDwNu6pQyZsAEj6SIvx0J6LCAVnvIEVwA+EfiFgJUiLSChQRw+EAnHBADlYGA+EZyuQAJAE0AEoNTAtTI2ENeTAE02Jc7BgAQK4AERJjVPQ/1DKOMESWjIEDRMxBcB/oFhIiUE8MAYD8AAAi1A8RItAQIMCuCE4A3Uni4jMgYAAhcl+HTmYcTgQfhWJSABvBde7BbACiBEBiUhU' $GraphicsCaptureWrapper_x64dll &= '6w4UiVBBAcJAAUSJQBJUFKEFskECSFCJFg7BOAEBoQIBVIkPKWAKWAQDRo0wAUiNIEgYSIlMoH2NSGI4gQA4SI3RdJAAQLBIg8A8kjZwURmxAhWwACgBZgzBADkd/Wq68HEh4GP0gAARdyCxsQMw6OVQXiJk5HABlOsXkQDakABMjRASUWIC6Gv4QSAVcgSNBnpAAXA6SDv4dCZISDkfczW56hECTMtgASF+XHAAiQ8QA3EEVOsFoRMgIXARAQcg5OiMwgIVvWEIsAIAiNRKMOEYyeIzdDANUAEGQOJg4olSKP9QUEXhGNjwGkiLdPEOdMnRhD16IQSDx4AMkJkVEQkSFgknQQaJN+uNUKD2oCyAB1DoEzABipDwHENiA8Eg6EFNFfAAM/UAZrBWkOsJpDPbUCHOcpJSF7ABTL4QkAlAQhsqIQHQCMdACFKk/wWSuQlSaGtwkQwCSIlUa1GPEg1PEg2jHw0QDf9UUEDRDBfCB1TRAgUysYEEiZDBXaEKKOhkaOmiCj2YgQGgB6BrEDaqBxejB1ACM6sHKP2hB0exLa8HowegM9AEgSNoiwU2ogeIAWWjB+2m6KAHRBDJcaInEjACSMZAWLDZBQcCCUhKIDEGtD0G/1DBnltZopfrAtCoMAZgIUHBRijzdrJyg8RwMIZeZVKfMBA+UO8yd8MAQ9XJADbJACnJABzAALF5pkA0iFE13KU4iAlwP4R1CAGxRejrICaIvTaGr4ATAZrzhZCg8eEYyI0V17IcVdh15fAMukbQAfPRAWgBgASy4A7JUEJ4GwKGt+dBLdOFNNMnUg5QY5TQCm7u29AKtABisQB6CyR/C38LrXUL52ApegvPcwsffwslcQvRfwsz0nkL/+aldwsbfQu27XcLqrEAibW5bCSgkHQkGOBYo3CQEtIF7bbhXvjz+8HhPiyAeFgAQEJgYwIM0U3ZugAKSIsFyLYAAABIhf90BotIVABBiQi4AQAAAATpgQAg6Jb2' $GraphicsCaptureWrapper_x64dll &= '//9QhcB0eACQowGQjcBMJFjHgMAAaAEABOh3ABBIi1wkWBBIiy2DAT6LA0gAg30oAEyLeBgAdAlIjU0o6DQQ5v//TAAQSYvWIEyNBa5xAUjLQQD/14XAeQQz/wDrDUiL10iLzgDosfn//4v4SBCF23QKAmToJCMQAACLxwFcQEiLAGwkSEiLdCRQAEiDxCBBX0FeAF/DzEBTSIPsADBIi9nwSP8FJN+1AVYN0AEGhckAdBRIiQtIiwGQ/1AIkAAdDcEAFhTrEAEJtwIn0+gLBQK3wwBOMFvDzMwASIlcJAhIiXQAJBhIiXwkIFWASIvsSIHsgAISCAUbowADM8RIiQBF+EiL+kiJVQDoM/ZmOTU8bgAAAHQH/xUERSAAAMzHRYKZx0WEvCwBGo0Fxm0AA4CJRchIjUW4gAMAsEiJdfDHRdCkHxiCDlhsgg7YgApK4ICN8ACM1XCBDFVCsICZoOjMFIB9TUCghckPiN0CQl2g8EiJXaAAF+iAkIB1BUiLxusbgLUATI1F6EiNFclCbwKq/xBIi4AHiQuAAQDZXIAk6Oi25CT//wGQvrQBEU3wADPA8EgPsQ2nQQAHdRpIi94CK41CFcEDSI0NsIAB6JShNMJShIEEiQ+BUwoHyFJ1gAXrFUiJTh+BagBvwFlRCAEf0oaQQQTBfKDoaCGBEAEAb034SDPM6FmAJAAATI2cJAFUAEmLWxBJi3MgiEmLe4CE413DAD2A0Ojj6v//zMhhAhDCYUFUQVZBV6WAeSABXovxAGMeQSUBQDctgHhYAHQnAUEnDkSLQFBEiYoBQAcAQgf/dAXAsQyJCoOxgAQA6M/zkYGxD4Slg3TYs8BqhUKxAsAA/xVIQYEFRMi6AQz/FUJAA0wEi+CBoVDolf3/FP+QQaFQwDpMi3kgIEyLNZmAD0mDAH4oAHQJSY1OgCjoUeP//00AAkWAcc5AhUmL1IO4kAHAuBZIg3wkUAABQ7VQ6E4gAAAzqMDrIkQF' $GraphicsCaptureWrapper_x64dll &= 'C0MFOEAFCwAZAsKoQNzrAjPANUS+dEG+fADYRL5BXGHAq0BTVleERoAIBYR5oESoRCQ4SQDRkIvyi9mABfKyw0oCLMJKJkiF0nQM0ItIUIlB/NbCBkz8UtlBJaTyQyXKQyWtDwAFQyVBBOAzKMdEJKmBXABIAAEwAQFMYBgDYR/gfwAz0jPJ/xgVeELAAyAcMAB1GAczwCKJAR0g6Ee2/KQpIDoDgIShKUsgDCmpKQPipimAoWiLVBYkwHzqKSDkKSDo/o4e5ymgAuIpIOjooAKJ5SlY9eUpTCQ4oVGiy4FTg8RA4ohewX8AzEGLQQRBOwEAdQdJiUkIM8CAw//AQYlBBIIiqMNIiwArWKBScIBSAHgYTIlgIEFVJYQvYAAk/J6GL1BBAIvZQYv4RIv6gESL4UyLtCTgMpHgF7QkqGMpYbEKMiBNhfZ0DQAyQYmqDoADRIID9mNXDgQycaAA6BPxBDKAAeAEHEvgBAMyA6JVjD5pV4aRoAFMi+hAMygoAAKAD1fAM8APESA2BYEAPGAUTEiNVCRhIG/N/xVKYAUBC3MBQAdEi0QkNEQrAwAFwSQrTCQwRTMAyUWF5EUPT8wARTPkQYvURYUA/0EPT9dFO8gID407IAY70Q+NAjPgAEGNBDlBOwjAfgYgH0Er+Y0ABBo7wX4Ei9mAK9qF/w+ODSAEIIXbD44FgxdfsFFADYmIxOMhUaABiZSQyIMBRIEBuMyDAVI3gQGY0IMBKoIGgErUowEcQQOI2IMBDyWBAXhAcwUFIQFYVA3jP+CAycpMSIs95CKvICM5ZyhBlE8oKOid38HST6FMGmsFYXbVZ0wVTDlkJNIgRUybHEJMUIMCJEyahoACkAE4YK4FiUALXIuIQRdBOYACD4ACdJOCAkEYiQ6hYujPAGu06wogCQZgAARSUAFSxDofYWhcJGBgo+CignOgM3swTYtjYHn640J+XWFUYaMgUGXUZqNScGANeJxmUGBgUEWJYVDi' $GraphicsCaptureWrapper_x64dll &= 'RAGmtCS4IiVMvCQhRkAF3a5jUCvdYlAloRVCQSEowbIB5FNKDyMo7SEokO4jKN7tUxyZcAInKEQwCU9BcACqOBooPEEATBAKXPVCtr7QBPNCSDEs90J5AilQTCRERIAoPPA/SIArVCRARTPSAykw1EUzwNAokADHRWVRKEThAjvCYyngKBoGQRAo4CjZQSvaiwyMJIAhUQEIO8J+QAWLykEryPEoDCFxKckPjgQTDcetVXEMkHQpudIAgIQpq+nQAImYhCmewQBSHcAAqpFyAoiEKYOhAZCEKap2wQBYgSlskQBIhCm0R/f/T0sAAvpP3fdP1mj/T/xPGcIpSvxPUAHn4HigHQAI66yAKBIeoB2dAQHaAgEQHmIpOPBvKdpgYSmjIC5hKXBgKSApPHMwYCkmKVFoMCmD7IIotVMSSY1REPFT0P8V8TlCCQtoVABXlCjD8QI4AAjJmeYq31AOAAvAIhBw4QYFwFlEIVwzPGAKgAEBCSgBCRIjAAlwBDjDzCIFQQEyAUEIQFXFcECbg+wKaPAFafUFRfBIiwx1WCAoEJRgM8BNAIv5iU24TYvwiIlF5BCFiEXowJfWuECbtAd9IpzAYSshCBAPEUXEMADU/xUAqDsAAIB96ACEdQRgDT+LVcShFEACiReLTcgxQAMFYD9NEAEIi0XMKxDCQYkHoRcHi0Vg0CvBiQbjD6CRByCLTeQjyIGpTfDp4QxDG+IMaHRoQT4yrdogERVJ0CtAFRZAFQAVFKA4EAnJEDiVwIg0QzCBFbkSENAVi8EHkYFQbHAPAasAAE1Ei9DgPQ+EkvABgyK4MjoPhYUiCMl0MBFEi4AxLtOS0qrBUQHSdA+LiKEucoFqvjABTTABEPVMQQGpjUIByUEBkS9BiQlAAXaU0QOwKSgkBFEw0gJ7ZYQBMIEBCIuiWsSYwwuwdRACWYIHwHUEg3DI/8OLgkTwC/NNbJHxTXQkIGSfBS2wAqCL8kiL6VINl6ACEYFL' $GraphicsCaptureWrapper_x64dll &= 'D4SNQRrbSI2CeDB4z/8VNjexbCR1GRAD+6kwArj4aTEddSTCASnAAQIT/wQV9pAU/8OD+wcUfU+gAtCgAuu7SIiLkODAAYuY6FAAACvaO95+BPfbROsiIBseTGPwCs2s6NQgIeACoeACu3EETMaA4gXCBcw2oAPD+xWb4C1sZZtwGXDKfw1yDZZVsAR3DYN0DXR9Fg1WZHAFEA1ssAIpFw10o2AL3QoP99sSA0KTCKo8gAsphAsbgwvoAIhjIAJkC/8VGJACAhnr+5BqkAMI8ADVPz8MOQyhNo0UDJNABTB/i+pMgGZfQQxw0sQZ8DfAGUVAAYgKjrKfcDANzv8VkFo1VhpV0ANVGifCAYNRwQH/dGCUGkxAG/9Qwzvff4EaJ9AC6yq4rQ/dihpJwJ4rJ9nyDvinjRrwBSPwBYcaHVC1bPTk0Dc04CBVVk31GbUgBPAli/ICtdFF4SodITQCiRnRPQJsiR4xQJA/GABr8zXSBHQTYFUPr0hQwfThAqIwcEAE0AIA27ACsF5IjWhgEICXiRDWBfAEPIEEFUiLFUkpYAKLgkINggEOiQaV8QISAAQvkAE4mDEMWA+VwzDX0QNb0APrjhGgM3MIsgICiQdzRjuy+EEbXvFE99TVqt6mF2ANkAPgGtAAA0CIeLO7AFhIix3IpgAAAEiLSzBIhcl0QCdIi5OwAAB4hQDSdBtIiwH/UCBISIsFpgGEibhRAmCLHZgDvCgFvLiNDl52A14CMIsdaAEaAI1LIEg5OXQMKOhqAQIoUwAo6wlUM/8ACkgDHzADH0oVAx8zBx8oAh9zIEgAjUQkIEg78HQAF0g5PnQISIsAzujV1f//SImqPgAkAwMkMAEkKAskUrAGJN6lAiQoASQwVQskiwYSuQMSSAESOFkLEo4SgWsBEpQDEghVARJACxJpBhJvAhJEoCRISDvYARA7ARCoy+hIAhA7ABBOgyKqEAESUIsiI4YiKQESCIk9IgEDhdt0FYEB' $GraphicsCaptureWrapper_x64dll &= 'IRUEAAC6AIKUAMvo4BgAAOjdAiQBBlwkcEiLdAAkeEiDxGBfwwDMzMxAVUiL7JBIg+xQgMpQkgARADPESIlF8EiLQgmA3nUIM8BAA+jA6yBIx0XoAGtAEAABTI1F6EiNFQDTXwAA/xBIiwBN6EiJTejHRYTQfEEbjRUbXEEjFFXYQAzgQQyFwHi6REAHfkEHiAWCgjAABwAbSI1N6Ogt1AFAV4tN8EgzzOgESRSAB4PEUF3DAEiNVdCLyOjk0Nr//8zEAtjBAgAAAEiJXCQQSIlsQCQYVldBVgAwQABIiyoz20iDzgVAaUzAZYv5SP/GIDgcLnX4QAooRCCLzkyLxQENIDMQ0rnp/QBEtCMAAABEi/CFwHQqAcAVwNP//0SJdANFCoIISIvYSItQJUAZVEEN6IMADEiLQmxBUMdIiR8BU2iBwClAQV5fXsNAIAAoSIM5AHQF6BSJEMIvKMIEgHkICAB0CYBT/xXBMAnEBUBTQAYwSItRABhIi9lIg/oHhHYxwVuNFFUCQUYogfoAQBByAAdB+ABIg8InSCvISACD6QhIg/kfd4FAHcjoEBcAAABmEMdDGAfBC4lDEAhmiQNAFjBbwzNgwEUzyUVBbYDCMwDSM8n/FaoyABYAwHnEHNlDdnRESECLUxBIK9FaGyVJQRuiFmAMxwOCNsd8QwjkAGAGohlgDiAOSN7HwA0hAkAPow40og7jNAoY4TQg4DRUQVZBKldjNXlAR+rBETvXAHcSSIlREEiDAHkYB3YDSIsZADPS6zZMi2EYAEyL9UmLxEwrAPdIK8dMO/B3ACpIiWkQSYP8AaUESI08e02F9gB0CQ+3wkmLzgBm86tmiRRr6SL6ARO5/v8CAH9IBIvBwAdJO8YPggECA4PKB0g70XcQH02LxEADSdHoAEkrwEw74HcOAEuNBARIi8pIADvQSA9CyEiNhlQAgABJMOh6BcE+ASABTI0EP0iJSwEgJchIiWsQTIsg+EmNPAAC' $GraphicsCaptureWrapper_x64dll &= 'EmlIgIszSIvW6MqAIIQz0osSSo0EZeE6gGZBiRRvSD2lLQpOoC3AoC3xSIPuEaAt/h93ICLxSIvS0IF7LhWAmzEBK2FPC4EqQCrh4EfMSIvTDOhksAyiC0yJO0yAjVwkQEmLW2AAAGtISYvjQV9BiF5BXABU6M7PIWcl4kAgAS+BwQFx6OMi/SBvjUtIhFfMDbNkrcMBldCiA0VbhsMBqiDEAXfDARjEAWjDAbtAOcIBgUMJgBvCAXLBASiDOwBjnGSiAcQgoluAkEBVU4JDVcJDAI1sJOFIgeyYEYKEBbyNZZIHTYsA8UyJTb9Ji/iATIlFx0yL+uCJIrdiJgXGn0FP5E2BgD2L10mLD0igeoAJ/9CJBumTAFcA6NUfAACL2D0A8AEEgHVJM9IEQbiBMEiNDY9ZbYAD1oAD4JZrYAHBXYuBwQGFwHULxwbhBQzpUgAIQJTP/9BNJIvGowvoheIJhduAdQhEiSbpMCAECEyJZUAfVf8zyQToRIADD1fADxEgRd9JiwchEWBMAItoEESLcARPAI08Nk2L50mDIP4HdlhBwAmDyEgHuQoBHTvBoE7BRaAc16AI1+gGgQ6LgvjgAd9MiXXvIKMC16Cs902Lx0mLEtWhFGEeAR7tZkUAiSw/6zFMjS0AFFYAAE2L9E3Ei/wCBsdF92GDBAYgjU3f6C8kBkaJAGwl30yNdd9IgIN99wdMD0cgAYiLTe9ggg+EQeBUCEj/ycAS/0g7yAkiEv/AQC5GQbguQ+IY0A/O6IkOAQvHCA+EEuACSSvGSILRoCz4/w+EAuEDAwAs4QYE/P//TItAfe9Mi2X3UDxJBCvHMAIEcjJJjcRHBGAN70iN4BGgMwBID0dF30i5LhAAZABsEABKiQwCeCEKeAhMi3XfJOn1UAdJuLU8SYsiwHQED4Le8GRJjQJ/IDvPSIPJB0kAO8h2BUmLyOuAHEmL1EjR6qACCEgrwoE96kmNBCYU0wxgO03P8BXP6AKm' $GraphicsCaptureWrapper_x64dll &= '0ANMi/BIiX0FsRXPsRVPjSw/TQkgYovIEj1aSIt94YAR1+j3HEAN4A/zCRBLiQQuURRHiWxgfghKjRSSPTVUHEHyU4tH+EgrEBHvQYAv/x8Ph8KSE/gxgAroVxFgPWCKVd/c6KBvBWUFABzfMRQCGhBJD0fOFSvoKx0ppARV76AG/IIWm/r1QDeF0BcoYBJxeYAgsQaGwwEGwCc5TIltQiV/gA7QMlAxwC0wghAlsHyLREW/0ATH/xCQAjIQTDlt17BqjU3XiOidzPF4z+hxUAR06c4gQkwhXLNlA15ToizQSESJLkIDGEIDsmhAA+sN8ARhMCuQAySJHiIKDPnwAzltYv+yBf/oQbIFsDRN0gfhfloMERTE8T7CSgJd4UpbXcPoHcsbYX/wYwgxY7BrCki4W5MgYF3/kD4AQAqQHXcCY3B/A8l0S0iBgvlyGDpIjUEnIDW0dkqhMhrxBTAPFuJUEwCAJgyQKwFVjVgnEEiD4+BgdPjrCAjo7Atzf/8PSIsKwyF+QEFuX8Po7x7Jgodyh/EIMlSDwQiA6GrX//+L+AAGAiLRlx2Dyf/wDwDBDSybAACD6TABdRq6kXIRT1oPDQOYONCDgE9fw4XJwHni/xXjKoJyoQQM6ROgBLIA7DhMi+DJSI0F/sEckAHifGzoIOABoAM4cZtATzFDIAYRHgTGQFjwgMPleAO2egPo1ngDMAKwAzxliGRVwbAxZgFvIOhjMEKQBOsEi4G0MG8orwEaEUrlA/MYSICSGBdbJIHsk6YFD1UFhCQK8FIP+pAZiwWImgGCCg+E6QYAADjgWFgPhOCAADJSYK0ATI1gYEyJZCQAUEmLzP8VjCcBIaNBD5TFRIhsxCRY4A0F6bLQAnEHAkBBAGhIiw/HhBQkkPAFkTAATI01JNlS8Ve0JBJjiZwMJKDjpRENaP9QOEmAB4izEQSLfMADiQJ8YASF/3UF6TmxUgWcJIDgAgQFSwEFYZ4EB0iNlFICADH/' $GraphicsCaptureWrapper_x64dll &= 'FFBA8QRz8gQFr5khcGBIPDmM4gF1ECiLSECwAISwAA+EBrICA5MBSIlIPEiIixWA4AKDusAAASADdCKLhKIBiUIuUEACIQPwBF8AAolIClSgAlWQAEyLWjAPhAmRAo8JEwRJiwtMTItRwIowG0G5cZpEBItCMB5SGEmLyyhB/9LxCtMyjDX/UfADSIPGkstg4cQQ6Eg5HuPE1BEC8DoRFn9EB5AYTwfREHAVohDguw90iIiiBUShFTHTcpONRIwkkCAA6IsAK5AASDlcJDB0CkhCjcGURcj//4AfM1mgH4QkkRBxANACBoR+JPGIYACBxpETIQRyHJRJkgL/UDDKFTwhDIukSkjxapTAkaxv9gT/QQtxAIIKgATh6GAAU+ZyBC8RAnAEkBMRBTkjA3Uk1fAAxPMAlPEAFPAAMQmT8AChBA+EIVywAdAHYL6XAACEgCwhBQ8mEBcMkgcQjFIDDxHajGID8gECIQ3yEQKi8S2AFazRH7QAtBGzAAIBwAkySIsGTItwQXDnekhIOR8hGc/E6EEw3EyLz9G8pAsBgBpB/9aFwHk0SEg5nPIRdA7GFhKF4AKQURZA6N/GcBfARYTtD4R3sAZwNcTpaQKFFf6W0hPgBQWgX4QUFlJI/5B4JwA8BDngzRXWdgL8vAABTI1EJHBMiQBEJCiJXCQgQQC5AQAAAEUzwABIi1JI/1BwhQDAD4jNAgAAiwiMJMAAYIlMJDAgRIukJMQALESJAGQkPESLXCR4AkQAcjhIixWAlhAAAIO6AU4DD4UiMwCQRIuiAlKLsiLIAAyLgswCGLrQEQEMjQSFAAwARYUQ5A+IWQBhRYX2CA+IUAAIQQPEOxDBD49FAApDjQQANztEJDwPjzchAA1NY8hMAYBJYwD/SQ+v+UiNsgLgAEBMiwZMi1YACEyJVCRoSYsAykkryEg7z3QAWnYGSY0EOOsAR3NQSItGEEkAK8BIO/h2F0iAi9dIi87o5wBNDEyLAssA' $GraphicsCaptureWrapper_x64dll &= 'uesmSCtA+UyLxzPSgB/oAO0UAABIi0QkEGhIA8eHEUiJRjIIgHCelQEOgjtFhRD/D46SAHJJY8MCSACfaEUPr/NJQGPOQo0EpQFsSABj+EgDTCRwSAAD+U2L90yLfKAkaE2LwQRAggAyCEkD/4IvSQPxSYCD7gF14ek9gCYAi3JQTGN6VI0MBLUBIoArPExj0JEBbkhJiwF7+kwDe0BNiwZNi04Ae0wVAXvJBHtQBHs9c0aqSQd7EoA6SYA68IAvJEyLACXrIYd4yeic+xNJPEEaAzuxlMEFBoJBGwI4QYv/RTsA50EPTPw5dCQIMA9MAAHB5gKFAP9+Z0hj1kyLAPNMi2QkcIvPAkjBaEqNDDBMi8DCSYvU6JaAF0AXADw78H0XK8ZMIGPASGPOQUZoScADzjPS6H2AB0IdAE0D8khjTCQ4AEwD4UiDbCQwQgHDJGPWdbIAIyQBACNBO/99I0QrAP9NY8dND6/CAA+vfCQ8SGPPKEgDyMARNUIxFfzAkwAAxoL4wCzAD0QV7kADSItKQDMBAca0eJBIOZwkiEFACHQOSI2MQgLoAUFbkEiNTCRA6ACCw///kEWE7RTrEcMDcsEDM9s4QFwkWHQLSEBsUBD/FdYgwRWMJPBBwUYzzOh2AwAxjQicJADBg4tbMEkAi3NASYvjQV8AQV5BXUFcX8OAM9tIOVwkQAAQBcIUHsEU66xIjZSEJJBBxsjo4MlABFXIA9DMA8DMA7DAA8wBAABIg+woSIsRDEjHwe3AJAJIi8oA/1AQkEiDxCgGw8EHwOYYVVZXQQhWQVfACjBIu/8BAwB/TIvySIvxQEg70w+HEgJDeQHAJMNMKzlIi0kAEEgrDkiL0UgA0epIK8JIO8ggdiZIuSYBDAAAKIDoqaBnSACDhMEBIQ6NeCdIg+fgAEiJR/jrN0iNABwKSTveSQ9CAN5Ihdt1BDP/AOsjSIH7ABAAAAByD0iNSydIIDvLD4ap4AbruCBIi8vo' $GraphicsCaptureWrapper_x64dll &= 'XkEJi/iITYvGAEY/TSsgUhjobBGBESFQz0wrgAZIixborxKhBAAOSIXJdC1Ii0JWgBPRSIH6ggoYAEiLQfhIg8InAkgAYIPpCEiD+ZAfdyxIACTLBUAxYI0EPkiJQACgCY2oBB9IIHlwgAEQgCMCMGEzX15dw0UzYMlIx0QkADrinjMA0jPJ/xVWIQAQAMzoCEACzOjWBr8hLeIsjQ0VSwDgAP8Vzx4AAwMA4SsgCIsFyX6BFspMACvJTIvRTYvZAEiL2kmD4+APhITUYAioIA+EQZ8IQQ+/YFDKxfluANjF4WHbxflwANsAxONlGNsBQEkryw8fgEEQxQDldUrgSIPqIADF/dfBhcB1ewBIO9F16kGD4RAcdEZJ4B6NBeoCRgAbg+H8SSvBAMX+bxDE4m2MAALF/XXLxfXbAtKABsKFwHQc8yAPvcC5H8AJK8gBYI7/yEgDwsX4EnfhHwjDAAFJO9JAdBlmDx9E4CqDAOoCZkQ5Ag+E88EPAAN17aBAJgUQCWMDASAQ8HS3qAR0swGkGkkryWYPbsiIZg9h4ABwyQDkGSDzD29C8IAMEGaAD3XBZg/XwGAa4gphGubpdqBQwAupCjGiAEiLwiFXAwDpm1b+A10KAGaAF4TCUUgAOw15fQAAdRAASMHBEGb3wf8A/3UBw0jByRBI6Z4KgTRAUyA3ICBIi9nrDwFOJw/UAAAAJBNhASFgAeBYBHTnwEEgW8NIg4D7/3QG6K8LgT4s4b2gDmE+6OFl6wI3gIcDamICs2AEAAchZSBIiwQlMOJuSAgE6wUAZXQUM8DwQEgPsQ0MiYAS7kIywwawAev3ZHXoQndjBwfoMgegYBlM6F/gAcBVoA7CAgRAMsDrB+iZgAGwhgFCB2EGM8noLSB0sITAD5XFEGMJDyAYiITAdYEGEugCgwFIB+j5oAfr7OgH6DLnIALo4ocK5VZIiQBsJBBIiXQkGAGxQSBJi/lJi/CAi9pIi+no0NATAaAa' $GraphicsCaptureWrapper_x64dll &= 'FoP7AXURTACLxjPSSIvNSKCLx/8V0sAvSABbhlihUAEbMEiLbPF/CHQkQJEUX+nODUtxJXAHi0IEdBCAMwyTYFaxB+nPwAHoWtIOsHUF6M2iAncOPYABBWICNIIA7CiFyXUgB8YFxYfwXOgAGgagAxuAATQPFOgO1cMACZADA1EP6gYOcx8IgD2MkAMAi9l1AGeD+QF3auj5qgkSCSjASSRQCXbQAVzoMTAIwAhRCn7xACEJ8gB0LhAGM2YPbwgFmUOhCMj/8w8IfwVFAAJIiQVOL2AA4QBxAOAAV2AAxgUuIUEKAgjQJLngRwDoBqLgBrIaGEyLwbgATVoAAGY5BYmCqkAqeEhjDbyAABBIjRV5YQADyoGIOVBFMCNfuAtAUQBmOUEYdVRMKyDCD7dRFPBNGEgAA9EPt0EGSI0ADIBMjQzKSIkAFCRJO9F0GIsASgxMO8FyCosAQggDwUw7wHIhIFDCKOvf8BqF0kFTEoN6JAB9kQAKlXAoBnAAAmIpGMMzEpCK2ejjkE4z0jAPAAuE23UHSIcVXE6GYhhwDHUUQxABAACK2XQEhNJ1DIjolgzAAMvoj2AARwUPMCW0NoM9HsAC/1swN8Ao5uAtoTfT0BUIGWAB6MkAAbEGSA9EDtOQPsUDtjZI99gbmMD32EBBghzpsfE4DXBA87ABNwaNBRtCAWEo2UiJAfbCAdB0CroY8RbWAQTgSwNDBfIj0nQ5g+oBRHQoQQAWg/qgArgjoXLSBeje/MA9BegSr2AAD7azNUmL0JMCKNA0AE1QbpXB4gBWGEADNDN0MTN8sLJWIaNF8kyL8QAoTv0U//8gOoShrujV+wD//4rYiEQkQEBAtwGDPfXBSg/EhcVQAMcF5cAAIQgE6CBgB4TAdE/o0u9gIuiaQQDBQAAgISS2G2EADadgAOi8cZM4Kei9MAXgAsAPFSqG8wFv8QGW8AHHBYaQQAVwIwBAMv+AGQIiQFNAhP91P+gCjAEFi9hI' $GraphicsCaptureWrapper_x64dll &= 'gzgAVHQkcXFvYgp0ACnGBroBA4ChSIsDTIsIDfoaEGr/0f8FXpGgBDISYk8DPnQBPnyEJEiRFUFew7mwS2gA6MTwOJC1RNKFQCCK+YsFUfADhcAMfw3DAzFBMF/D/xDIiQU4gAHou/pBlBEggz3eg0ALdUg26M+QDeiqQCjo4iHgCscFw3ABAQCQDAJY4Aoz0kCKz+iCcpAAD7bY6NLAAtCLw+ujMwhAMQhACABIi8RIiVggTCCJQBiJUPAZSAjHMY8wCXCY8Iv6IBrgMBAPORW0oAV/BzMIwOnl0AONQv+DAPgBd0BIiwXUAj/CYHUFjVgB66AI/xXsGWBD2IANQDCF2w+EroLGxu1jtKWACKABRKAB4B4Qpg2nAbIwCaMBg/8BdVo28AQyslOxAZawAUhhQM6VwejL4BkwB2CJMwd0DjUC/xV1YAcAhf90BYP/A3VKPGYFMxgHdCWQAyZF2QoQdQL/FTZWC+tYBjPbcQCzfHhAGECv8Y6gyjUsJF/48V7xgDH90FhDwBRgwcA6QSGGH0JdI3R4MTVNi0HQIMpJOIvR6KBSsyJ1ZUBTBEWLQJnaQYPj+IBMi8lB9gAEEJEAdBNBi0AITWMAUAT32EwD0UgJkNwj0YDTSosUEDBIi0MQ4HNgAAj2AEQBAw90EA+2CXAAufCxPCPBTAMIyEwzsAbJW+kQjvgQAfAL4B1sJBhBDAogQQwQUJvJD6KBAPFudGVsgfJpgG5lSQvRi+hiCQCB80dlbnUL0wCNSP8Poov5dQBeJfA//w9IxxgFGHWxrHALxwUVA6AAEbE9wAYBAHQAKD1gBgIAdCEEPXBhABoFsPn84UAiIHckSKDxEQAwAwAPo8FzFESLBQRvgSAzg8gBRImkBWSgAOsHMAFbgAABMKVBi/FFi9FFAIvZg/0HfEBBCI1BBzEKi/JEi4DLD7rjCXMLcAMaAnADLOACMCh8DbgB4SyNSPoPokSLiNK4JMAAO+h8QgNIRIvb' $GraphicsCaptureWrapper_x64dll &= 'IB9bdEEW4DD+xwVVkABhCMcFLk+QADE8IGg8oAAPuhDnFHMfQALvxwWKMKcBIaAAxwUjUABj4B1BAhsPg9H5sAUBANAnuQBIweIgSAvQSACJVCQgD7rnHAAPg/wAAABIiwBEJCAkBjwGDwSF7QA4iwXpcwAAALLgg8gIxwWK1gAoAwBQiQXUACQAQfbBIHRig8hQIMcFvQAcBQIwuwUAErkAStBIiwWjAQAWRCPJSIPg/RBIiQWVARo7yXUCNwLCIsI6wnUlRQAkfgAWgw2DAAVAoQAo28cFcQAKBgGISIkFYgAK6wcAJFkBAAgPuuYXcwxIUA+68BgAGkcBgA8guuITc0oHTz9BAIvLQYvDSMHpABAl/wAEAIPhIAaJBcF/AEuByQApAAABSPfRSAgjDQwAOkiJDQUBAAY8AXYLSIPhEr8AB/ZyAygVcxVDAigANOATcwkAAzUG2gANgEJcJCgzwABIi2wkMEiLdAAkOEiDxBBfwwDMzMxAU0iD7AAgSIvZM8n/FYSfEwGhy/8VngAEEP8VCBQBB8i6CQgEAMAAGCBbSP+EJfwBEYlMJAgAGxg4uRcAdYMThcB0CAe5AgAHzSlIjaQNvgBb6KkEyDiAeBSlgIAFjYEFg8AIRYAHNYEHiwWOAQOJqAX/foMUQIAFAwAJGMcF2YAIATvHBdNFgAQBgCTHBd2EBLiSCAEsa8AAFA3VQQ4YxwQBQR7HBYsNHVNAPYApBCAFBQEABUgTBQUADqQ6QCj//v8k/5BANjjDwEFWV0WANEBAQv8VX8JBsyL4gA4z/0XATY1UACRgSIvO/xU9I0EGwDo8SIuBBI1MMCRoSMeANUAKAEyEi8hBRjBMi8YBBgJwAQMoM8lIiVwgJCD/FROBVMeDEP8CfK5AHEBfXhRbw8AbSEEKIOjKALH//0iNFZ9Zy0FJAQQrQKrMuEE7AGlAM8A5BZxxAJGVwMDDxwUugwEbAQYBQRYIVUiNrCRAIvvAD4Hs' $GraphicsCaptureWrapper_x64dll &= 'wICxi9kJRGVyEkJlBIvLzQQpuQG+6MD///8AM9JIjU3wQbgc0AQABAFsgQP/FW0hAAtIi53oAUuNlY7YAAfAgUA+/xVLQQYRwBE/SIvDBY2N4OuBAU89w4AG6IEGwT2BFZUBAiDBlRdCF4XIgg/ATCRQSImFQRrBIjECBUG4mAEegoaFiA2BKh9BJkQMiUQkYFlAG1AVQNnAAVRBRf/oFeMQYB3YwCugSgAKCYFHjUVADkQkSP8MFdaAAyENQP8V0wFAAYXAdQ2D+wGAdAiNSAPouoA+IEiLnCTQgCVIgcLEYSZdw8zC4C3hKWAYVUiL7AAzwGQFBNhvIAS7MqLfLYSZKyABO8N1d8AaMBBIx0VgCmEQbxFBoRRFEEiJRWAo8VEhEsBIMWEB3WMBjZRNGOMB9eEBRRiiIqDB4CBIM2ABM8AVcDPBSLmgMgAAIAkjhYABM6cNSA9EwQBiRlKhEOB3UEj3wJ0FYoPBAYPEMGAWwBQoAIP6AXUQSIM9BMs3IBJ1Bv8VKxcgDQJHgAQoYASNDRHCgYAB/yX6D0Ac4QGSAeAB6dAiPQUFYAEn4DbkAOAJ6OdgEUiDUAgk6OYDAQLlCAUeYWIEYU4hZYBoHU9LCYEIPUjAAOsSSIsWA+FEQBBowSKDwwigSDvfculBFzChh6pfawcjYwccbAcsdAeQ/yXCDkAuJYSiAKqGogCIogCKogCMogCKTqIAEEAg/yUSogCqVKIALqIAQKIAcqIAqmSiAFaiAEjoBcygJCj/JfaiAOiiALoNq+IIIgvmogCgIgLKYgGqTKIApiICQOIFaqIAqnSiAG6iAyCiAFqiAKp8ogCWogBYogBiYAdgzMywAcPgfOAsi1DESIlY4GBooEpwIYDFeCBBVkEmSYsAWThIi/JNi/BASIvpSYvRwJFJAIv5TI1DBOhAAPf//4tFBCRmBPbYIj9FG8lB9wDZRAPIRIVLBEB0EUyLz01AkovA1kiLzei0ol/BKgtg' $GraphicsCaptureWrapper_x64dll &= 'wQAKdOBmi3wkSGmhLEFewCxLwhEEAGaQZg8fhKKN/+CGAjMIAOgDJXIgHsHxEFUhI8rqSItVwABNaGjoVLLBrLjDlgJTIAOhV2sFRSDHAA4AVAeA8wRTAQUoAAXHCEVQzWGwjQXKNSnxBkVY4Dhg4gKLTUBwSIsB/1DAE0UFwEBVMABNSOhr2hEAD8dFKCECx0UwAN3Mu6rHRTQLGAAAgFABE0yNTVAQTIsAujIBjU0oXOg08ArCC8EAl6FZgyB9OAB0CfAAOOgEG67BAU0oSIXJEHQF6D3iFF1ISACF23Qsg8j/8AAPwUMYg+gBdVAU6P79oQHIcFEzCNLo/cAA6wuFwGB5B/8ViRAW6xAoJF1bfw5Q0XMO4jQtfg54dg7wY1UwAE1AiOiD2X8ORTRXERU3fA4yAaENTKENdQ6vsCl7DjOteQ5VwgxdQCl/DugWeQ4VeA6hDCN/Dn8ORVDVcw76M519Do2ggGAArg6Y2K8OcEU0BUAvHTIB0Q1hk9ENpQ7Er6sOSKypDmxq/K8OpA4rogGkDio7wAClDrawI68OQFOKIJHgAOkHu+F9imixAFS7uLIASLEAX4AMQCMlMBAwg+ABUFANg4hlIP7wCEDoP4EOK1IwEANwEQMtEQGNinmhD+lxkQRKNK4zlAKH+rpXA3uxAF8DjznfATUFKSEW6TMzBVCxAJfX9z8FXgOSEG2fAt8H3wHfAQPfAd4BjU0g6GWzYaBRCIlNIL8CtAvv+tZyDEDyGLB4NgQQUhsGRyJ33wHZAY2KMHEEF8lxBI2KkYzpe/EFXwsHmAgQIAFQATPJgTiBwIjAD5TBi8FzARkTA4pN0MWgAukD7YT//2kBIOjx7BOsZ3QEFAbCAmLrxQKyCoscAYsQZZCZEdNMjQ0Cl7AETItFcItVwmiwJmDoo+qTBHEMkXjBHWN58Z/bdIDFaMvoVuAnukG4wQAh+xAEYsHDBQ0PAA8ADwAPAFMPAA4ArMRzALx0AN7L' $GraphicsCaptureWrapper_x64dll &= 'dAAFAMhjAIDJdABB2a1xAAd0AHUCenQDZnQAUox8BJbFcwAQdAAqVXQAQnQAVHQAXnQAaKV0AIB0AAbM+wT6/AXUQMpzAPR0AHJ0AAUA5jqEDAUA2Md0D3QABQDUBstzAOL0A0D0AAUAqsp0BBJ8Aa50AWB0A6ou9AFSfAj29AYK9AKqaHQAfvwJHvwATvwAqo50BHp0AKh8DJJ8BwrgzCWU9ATctLIABACoygWQAwDIDHjU9MYDHCgEHDQEHAUApNzFAw4IxwMO/AQ+qlAEDuoEDuQETmoEHqo+BAcCBAceBAfcBAeqxAQHqAQHjAx39gRPqQUA6MMLD/4ED7gMFyBQYACAAQgHcGNNgwOQjAMFAPxhiwcABhCMB0UAAQIDBAVkBgcEAwcAhAMDAwb4BwABgwcDA4AHhAMCA/8AAYAfgw8CA4AHhAMCA4IP/4MHAgOBB8QBgQHBAMEfww//gQHBD8MBggHCB8MDggHBA//EAYEBxA/DB4EBwQPEAYEBf8MHwwOBAcIDxAGBEMUfBP/DH4ABwh/CAYIBwx/CA4IB/8IfwwGBAcQPwweBAcIfwwH/gQHDB8MDgQHCA8QBgAHGH//DD4ABwg/DAYEBwwfDA4EB/8IDxAGAAcUPwweAAcIDxAH/gAHEB8MDgAHDA8QBQjjFP/oFwz8FxD/BAYIBxD/BA/+CAcM/wgGBAcU/wgeBAcM//8IBgQHEP8IDgQHDP+MAwAD/5g/jB8AA4x/jB8AA5B/jB//lAeQAwADlB+MDwADjH+MAv8AA5APjAcAA4wHkAAXpH/3jDwTkD+IAwQDkD+IBwQD/4w/jAMAA5QfjA8AA4w/jAL/AAOQD4wHAAOMB5AAE6A/94wcD5AfjAMAA5APjAcAA2+MB5AAD5wfjAwLkA+QA9gLmA+MBAeUB5AAFfut//+Q/4ADCAOU/4AHCAOQ/4QD/wQDmP+EDwQDkP+EAwQDlP//hAcEA5D/iAGAA5z/iB8AA/+Q/' $GraphicsCaptureWrapper_x64dll &= '4gfAAOU/4gflAeQAwAD/5j/iA8AA5D/iAMAA5T/iAWfAAOQ/4wAFBugf4w8E/+QP4gDBAOU/4w/kAeQAwAD/5j/jD+QD5ADAAOU/4w/lAe3kAAToD+MHA+QH4wDAAG/lP+MH5QHkAAPnB+MDAtvkA+QAAuYD4wEB5QHkAP4G8T/kH+EAwQDlH+EBwQD/5B/iAMAA5h/iA8AA5B/iAD/AAOUf4gHAAOQfcwAEBfv3B/MDA/QDcwBgAPUP8wPb9QB0AAP3A/MBAvQBdAC2AvYB8wAB9QB0AAX/D/4E9AdyAGAA9QfyAGAA9AfZcwADBPYD8wEC9AF0ALYC9gHzAAH1AHQABP8Hs/QDcwACA/UB8wAB9QDddAAD/gP0AHQAAv0B/ADJdQAIB8BPBgYgWFAoHAUFoFBzADEABQQEDgP9AHUAMQAEAwMCH/8B+wH9AHUAMQADAgL+Af8D/wP/A/cD/wH7Af0AM3UAMQACARCVdRAJCiALDA0OD9sADg//84v3ANkAMQDze/cB2QDzAf/7ANcAUwDzB/kD1wDzAfsA/9cA9wP5AdcA9QH7ANUAdQD/9Q/5B9UA9Qf5ANcA9wP5Af/XAPUB+wDVAPsH+QPVAPUB//sA1QD5A/kB1QD3AfsAVQj5/Q8ICfkP0wD3D/cA1wD/+Q/3AdcA9w/5ANUA+wf5A//VAPcP+QDVAPkD+QHVAPcB//sA0wD/D/kH0wD3B/kA1QD/+QP5AdUA9wH7ANMA/Qf5A//TAPcB+wDTAPsD+QHTAPkB5/sANxz9HwoL+R/RAPkf//UA1wD7H/UB1wD5H/cA1QD//R/3A9UA+R/3ANUA+x/3Af/VAPkf+QDTAP8P+QfTAPkfP/kH0wD7H/kH/QH7APazAAYHCgsODwYHAAgJCgsMDQ4PwAABAgMEBQGYA3j/BWgHfAs8AzQLfgk+AxoJPjMLHgEaBAUNfwEPDg//BX8DDQd/CQ8FDQk/CR8FDf8HHwsPAw2NP4kf' $GraphicsCaptureWrapper_x64dll &= 'gwaJf4kH/4MGix+JD4MGiQ+LB4EGkX//iT+BBok/iQeDBosfiQ+DBv+JD4sHgQbPH8kPQQPJB8sD/0EDzQ/JB0EDywfLA0d4zX//yT9DA8l/xQNHA8t/xQdHA//Jf8cDRQPNf8cPRQPJf8cD/0UDy3/HB0UDyX/JA8MBzz//yR9DA8l/yR9DA8t/yR/NB//LA0MD73/nB6MB63/nAaMB/+1/5wOjAet/6QGhAPM/6R//oQHrf+kfoQHtf+kf6wPrAf+jAe9/6R/rB+sBowHtf+kf/+0D6wGhAfEf6Q+hAet/6Q//oQHtf+kP7QPrAaEB7w/pB/+hAet/6QGhAe0H6QOhAesD+esBDA3/f6MB6z/lAaUB/+0/5QOlAes/5wGjAe8/5wf/owHrP+cBowHtP+cDowHrP//pAeEA8R/pD6EB6z/pD6EB/+0/6Q/tA+sBoQH/B/kD0QD/+x/5ANEA/QP5AdEA+wH7AMwKC/8f/x8ICfsP9wD/0wD9D/cB0wD7D/kAkQD/B//5A9EA+w/5ANEA/QP5AdEA8/sB+wAICf8P/w/7B/kAP9EA/QP5AdEA+wH7AAYHz/8H/Qf7AfsABAX/A/sDB/8B/wD3ABAODgwOCAwMCjEADAoKCMN1ADEACggIBv0AdQDhMQAIBgYE/wH7Af0Aw3UAMQAGBAQC/wP/A3//A/cD/wH7Af0AdQAxAAT4AgIA/RC7UvmF8wB7hP/5Y/MBtQD7WfcAPQb/B/9VP/kA/0v/A/8B/wD2HwwMIAgMCAgEMQAIBGYE9hBkAAcAdAB1MQD+AfMAYwDwAHQAYgAgAPAD//MBYgDwAHQAYgDyAfMAYgD/8QB0AHUL8QfzA2EA8QNzAP9iAPIB8wBiAPEAdABhAPQD//MBYQDxAHQAYQDzAfMAYQDv8gB0ACEE9QcE8wdgAPIH/3IAYgDzB/IAYgDyB3MAYQD/9APzAWEA8gdzAGEA8wHzAP9hAPIAdABgAPYH8wNgAPID' $GraphicsCaptureWrapper_x64dll &= '/3MAdUXwB/MD9QB0AGAA9QP/8wFgAPIAdABgAPQB8wBgAN/zAHQAdUnzH/MPBfQPcQD/YgD0D/EAYgDzD3IAYQD1D//yAWEA8w9yAGEA9A/yAGEA//MPcwBgAPYH8wNgAPMP8wP/YAD0D/MD9QB0AGAA9QPzAf9gAPMPcwBgAPQB8wBgAPMA7XQABfkP8wcE9AdyAGEA//QH8gBhAPMHcwBgAPUD8wEfYADzB3MAYADyAcO2AAABBAcEBQYHFQBgAwFwAAQ4BAcC4QN4AQIDBwF8ABgCPH8EHAAYBHwDHgAMAx4EDgPbB34DPgIEPgQOAgY+Aw/+AQUPBAcBcAV/Az8BBgJ//wIHAgYDfwIPAgYCfwMHAQb/BD8DHwEGAn8DBwEGAx+DB/8BA4N/gwOAAYY/gx8AA4N//4MfAAOEf4MfhQeEAwADhR//gw8AA4N/gwMAA4QPgwcAA7ODB4QDBQaIf4M/BIQ//4IDAQOEP4IHAQODP4MDAAP/hR+DDwADgz+DAwADhA/DA7eAAcR/wwEEyB/DDwPED7/DAYABxX/DD8UDxAEDxw9twwcCxAfEAQLGB8MDAfvFA8QBBtF/xD/BAYEBxT//wQOBAcQ/wgGAAcY/wgeAAf/EP8IBgAHFP8IDgAHEP8MB7AQFxx/DDwPED8MBgAFvxT/DD8UDxAEDxw/DBwLbxAfEAQLGB8MDAcUDxAH+BdA/xB/CAYABxR/CA4ABs8QfwwEDBMYPwwcCxAdtxAECxgfjAQHlAeQABGfvD+QH4wACA+UD4wEBu+UB5AAD7gfkAeQAAu0DA+wB5QAgHBwYHBiEGBRhABgUFBDlAOFhABQQEAztAeUAYQDwEAwMCP0D7QHlAGEA8AwICAT/B/sH/QPtAUPlAGEACAQEAOUgCIAJCgsMDQ4P7QDD7QPtARAICAAKAOQD/6Rs45/gAGSe433gAaEA5HN/4gAlBukH6WfpZetD7DkYwBgQGBAQCGEAYRMe/xwA' $GraphicsCaptureWrapper_x64dll &= 'ixcPAO0FgKAAZIAB4AKwVuMABQDAktzjAWDd4wCoo+MAlFgQ4wBE5AAgofMCJCii8wLwpuMArEdV4wBo5AAQ5ADQ5ABVAG5rbm93biBlAHhjZXB0aW9uAeQSYmFkIGFsbBhvY2GDAuIBcnJhAHkgbmV3IGxlEG5ndGjhBHN0cgBpbmcgdG9vIGBsb25nACcDCwBDADpcUHJvZ3JhAG0gRmlsZXMgACh4ODYpXFdpAG5kb3dzIEtpAHRzXDEwXEluIGNsdWRlQAEuMCAuMjYxMHAAXGMAcHB3aW5ydFxBUwBiYXNlLiUGQwgrKy9ABFJUIHZIZXJzoAo6MpEDNcAwMzAzLjH/B/8HD/8H/wf6BzQDLkZvdQxuZOIR0AhXAGkAAG4AZABvAHcAAHMALgBHAHIAoGEAcABocAFjEgGiQ/IAdAB1kAFl8ABWRJABkQBjMAEz0AAxqxAAOwJGMgRtkABQcAX4bwBs+BT/Bv8G+wYdAvX7AUmQAGWwBv8S/xL/EgP/Ev8SLkdyYXBoAGljcy5DYXB0DHVyNxz0Bl9CWjKANUxOXENvZCAlglyQHVxfVUVaNgcF9QMg9AMgQVBJXAtFATQBV+AAcGVyLgMgCHMFdmVjdG9yCfcpQ28gC3JlbWUAbnRNVEFVc2EUZ2VyAmOQFG0AYjUwEXPSEmTQFvEWRGwAbEdldEFjdGkSdqIeRmHxBHkAWFqk8zN0/zVyAJh0APoAd+xUdxPmRIwAMoj9X0TITCgCmnMB8qoVbwjSAIlOmrRIlTXTsE+c8Kh/PHI8p38BpXEAeHQ/PB1zAGx0ACp8dADgdAD8dAAYHlVzADR0AFR0AGx0AAEAQACADQAAgBEAAQSAVwAHgBhVsAAOMABU8AAF8ACUACvqlMzp4EnAgP/uZMqPW5D2SwljAEYD/ACScLqCAIhMfUKnvBbdAJP+tn4gsfIcAH1UGxCOZQgAACsr0RnE5UZXAJdbTEK2ICgiAJFXNN0pqNUw' $GraphicsCaptureWrapper_x64dll &= 'AKR/JkCDu9dbAK5OqZ6rJHajAF+NUEadPp6uAD2bxnA/EJtYALxr9V2pkQLiAIs7ZtVb+cN5APcxwk6kZGMuAPXTB2BArjksAC59RFCATotnAJnUz55m2c3yAK4ioV6VljooAJNEw74S0LOpAPI940640YaVAPRX08Eb6Cg2AKw8YEy39CPOAA4MM1b3R6lRAM95PlqjpRKJAM+m3+jAEMbpAIym2VuAIYWJADRu7uIOAQGACgzwEAJwEscEB4D2C7AA+U1ASV0PAA8ADwCbDwBxBdD7YgUA+HJzAfwIc/8B83QvAQ8ADwAPAHcPAA8AcCepfwgCAPQJEFV0ABh0ACB0ACj4C88MX6ciQXAoAOACAOgA7KkwAJe7ATApDwC/DwAPAA8ADwDvEzMt1HB5XqAAHzAADwD3AsD4AdA/vAIxBLmBsh3xfnwCsNaIAAAFfwIA2Kf/BmkFAIDS8AWhMoIOABin8AQ1FfkEmKR7AliwFkkPAAAAcT34o/cAYHf0BLAw+gRA/wMCAGAcADLYuAbQ1X8Q8QOApQF7A+G3aJDZAAYA/wAAAXBAWQAYIKYHuAEAAQgsIADSAACAoQAAKHaiC4wFNgIQngFeFZ7wQQCD4KUAAHgQT3Bm2wcrCU8Iow8rAScGkwEzCBso3BM/MKQPP0sBAIFdGIgN4NiTHzhJjI+405MTqKiLExiuqYCRgU+AdUCADdCABQ5IjI0RAImXuNEAAErAgB2okIHQ1YMDDFeNv4CvCQBQgD9ggGH4O8wFBQCgwWLQY8lJWKdlxwPY2Hfg1MAfwFRYa9RcwQoHwACwzFTFBnA/yBbBitGXwY8JANU2+KC7xzbBX5jAFuFfBQADwADSwMgVYNbTz0DAecrFa8R82XdIyEeYwJ3RFbB3yFzCk8AwSMAW1XHJLYjfyKLBkNEX4Ur1E3hwA2ExamhoD5jsEIDggfFiwFlsLrDXY3ftBNhsDohf4B9/aP9oZQ7hC/DwToj34Ud/' $GraphicsCaptureWrapper_x64dll &= 'RRYA4PRndTVhZPEfu+Fm9RhQ6BZxCuWh8GgI2ekfoNDgo+AG8GxKZQOv8WzhBQkA5VQI/FRA7RPdbCOwYBR1Ju1NcPAV4Rr2yOwC5YoY6ALqqGC24bOC8PBagNoAAAXwH1bI9BPhCmjoCBj0gpiFaDEY4XKAA4CU4FkaOGABzOFa4AA9UwAkAFNgABNW4BdcAFQAFmAAeGAAyGAAGZBdAACnYAAjXmAGQWAAsV8AAONgAK0aaOALUWAjABHgUgAIABAP4GJiAACHC+AJYQOz4ABHQ1RMDAAQYANgAS50ZXhQdCRkaeEQEAABUBPwBjMBbW5yTWMAAAI2dgJtbiQwMAAaljABykARMwF4AGDl0AMtNgJ5ZAN7sChAGgAuaWRhdGEkNQWyKXLzDS4wMGNmCmewd3PzIi5DUlRQJFhDQTECODsBVVvyEjsBWvIzOgFJsgNQqzsBcgJYOgFQcgJgOwHVcgJoOgFUcgJwMAEyEpszAXICgDABwQ4ucnENW/AAsEH8gAPzACQQDgAcAHzwG+APNQF2b2zUdG1BEexwAeQxEXMBIHp6emRiYBAA0AKstAdydGMkSUFVsgfYOgFasgfgOQFULXMC6DoBcwLwMAEwCeUwAXgzCiC2cFYAQPMAQwAbsQS8AADUMCIugmUzArS+AAD08QBl8xoyMQKowLMpNAEzrTEBwDABeB008jPDcBb/MRAzAeEiQA2wQ7ED4wVyRKwgBPQAYBLAcE6gQDlT9ABRFQBgMJqAcQpignPyAADwAACQ8QAOcEQE0DUyBXJzcmPYJDAx8kkwAdCxKDMBB3ILDwAPAAEGAgAGADICMAEKBAAKADQGAAoyBnABYAQBAASCsAFxAEKFMDYVMAJyAjAwUBUCMDEDDwYAD2QMAAAPNAsAD3ILAHAZJwoAGWQQAAAZNA8AGXISAPAQ4A7ADHALBFDY8DZYrQAAOxVxJWGAAGcwAAIO9kEgDATpBwBAsUsZAB8GABBkCwAQ' $GraphicsCaptureWrapper_x64dll &= 'gDQKABBSDHAxBhoocQEdMAbwBA+SCFBwB2AGsgSk4ANLBfERqXEEpgABEgYAABJ0DQASNAwAABKSC1AZCQNAAAkBEgACQArwpUAG0GACeN1AAOAwACQlrlAHCBAwBwLooeAAChcSUOBO0DE8KFwTEmF5wqAAeBckEpgQGeDqsAB8FxIS0Rrw0jArgBcSIRGCAQK6ZfACBEpEAEKABBkKAvESUKWxBjzgBWlGQABIMAAEcAKhKAAZCwMAoAtCB1AG9AhgNQICajAAkAReAp0CqgI9AoQ1Ao4yAmQyAgApCgAbdBEAGwUwFhswERuSFPASuOAQULESMVSzGweyG4AZFwIACLIEshoCWDEIJggAGGQXAAAYNBQAGPIOquB1GfDgBXrxa/mAAEQGr7ARCrgh4AQyBHgfUBEGrQQEOgQCPvEDGwQADTTQEAANsjMYKKAC4FQoACgxgAA9cQMOyUBmAAAqKD/gCggAkQIENAIyBBgCAnUlUBkxDQAjAHQcACNkGwAjIDQaACMBcAjwFoDgFNASwBBQ8D1VMAV8YASSMQWFgACMCTAAAgrhBOAKnAAAjQcCmQMAfAIR4TcAGR4xIRQAD4DSC+AJcAhgsQNGuOACsBoAOMWAAN4BMAAPsAAAEggKIWEMUDhASkENUHgBsg1QsMAGBAQGQvRAAgoMDv1gAAAIDhAG4AICEYAHKfBHtQmAAD2AAMkNBYAAW4AA0Q4YaQUABEQCZQMGLAIAfAqsDP0CAEYAAhoKGg4aAhpHcRfzHzEXCZIC8hFIo/AEIDMAKFGAAFjBBYGyB3AEUQIAIjAjmAEYCvAYMABUCTAZJbAZMrIccBHxElICqjAxIIhgAyjxMpGAAAgERgLBPBkoCAAAGnQVABpkFACAGjQSABryEPIGLrggAnIc8QLBwAAIGUADAsIAOALQRxlSGXA5dAuwOQmwOQgAABkyFfAT4BFKwDEG7KACOPnxCbFTgHUwAAYIQhegUDkCLAQK' $GraphicsCaptureWrapper_x64dll &= 'AAEwEJEwECkEAAiwAHQCdARuAbAgBgAMcgjwBoDgBHADYAIw8QemOJAC8T04RYAATjAAql+3BECyBFazBLuBFYAECrYAugJ4sAQBsRAZLAwAHcQTAAAddBIAHWQRBAAdcCYdshnwF+jgFdCxBZSQA2B4swVaoTAAsqEEIAWpJwVdAAkKAQIAzQQCwHIEuAAyAnASMQ8KFTAPFDAPEwAZ0rszD/EE5GADsiLxBPExBAqy8wT59wRQtwCZCQr2ACUFAgB4BK4AMgIAAAAZEwEABGIAAEAwWgAAKAAAeB4ABwAQwgnwB+AABXAEYAMwAlAFA2xYAGwBFAgAFCBkCQAUVAAONAcAABQyEHABEggAABJUCgASNAkAABIyDuAMcAsAYAEMBgAMNAsAAAwyCHAHYAYAUBkPBgAPZA8AAA80DgAPsgsAcPBhAACMsgCoADiZAASiAAPDAAMAEAgQGCAoMDhAQAQICAqxABAMCAwOugAGAhGA2aBnAACNAgAI9wAIAA0DBFUCCkAOAQGrFwIACZICUCrYAL/gACpCABMoURCwAADpAAwESQJQACICAAOfDgCfDQgAEnIEnwYCAAYAUgIwARYKABYAVBEAFjQQABaAchLwEOAOwIEPABknCgAZARMAAA3wC+AJ0AfAg4WEgTNIswAAg4AzBGBNAAQCrgABCgAEAAo0CAAKUnAGcAEEg6WFqYEXeAUAEyuAF3jdrQAAWoUABpWBGwABjYEDEQCAFWgAAEwCOgACGSwLABpkKAAAGjQmABoBIAAAE/AR4A/QDajAC3CDI8AAF/OAIxQ4zQAE8oABE7QAAAASCjw/AACgQDK4IQAAgACdSCJSgQRgMiiACiECgroDAwQEBAYBABYtAKsKAAPAHFnAHF0dBQACdwACMRwUsQgADpwSNQQEnBIAPQwEogCEBiCgBCAKIATANgLBNVxQGcE1AFfBbUSAEGACScERKAABEAgAAhDAdBBSDPAK4AHDegEF' $GraphicsCaptureWrapper_x64dll &= 'AgAFNAFsAAHBZ8gNfIAMwkCJrQACmcEPgACRwyOtgCGgFgIIAgnBCyJAKoPAO8EPa1UAAPXAAIbLwAfBAQECAQDBo0vDocAAVMCgNAbCoREAFQgAFXQJABUQZAcAFcAEFTIRBuDBEYAZAGRXAABa08AA48ARAQA2ALNBW8AAxQMRyHDBDATABHtVwAedwAD6xAhwwAKxqcAAE2nDA7rAAsXIB0XBA8bIBwkaBsByDwAAGnIW4BRwEwpgxTT9wAjaWQAATifACcEBxKJQAcLIB6PAyMABMgtwwjowxToFwDlUwDk0BQAUEiHA3AkBAAnBEwgEgAAIcgRwA2DAsgQVBcA9ugAVAbgEAAbBSA0EAA00eAoADcBvwSPBHsUBAVYZ4FtgJRlgKBlgKBmhYA4ZMhXg4QMQYAC0gNJjBf8AAOEAGGAATFwRBAgIABDR7wRQMhPvBGDU/wThNBi6JWBFt+8HuBfjAEC5828DAQCA0/8L4gT/FeIQmqj9ELhvA+EG+LbvBrfiGuAF+QmY4AYRALjwFVYQATQMAMBkApj0I1Db/yMCACD/NOIZ0PAc6RmmuPQQ5RRAvPMnGOAGLfkKWOAyEQBI/zoAA9lgADC7YBdgDKhwDAEAtuD/JOIUcPAU4QLA4Aut8RcY/wriEwjgIiBgK8/xE+IO9S7wC1gS+Cj/Gb/zD38//w/xH/8scgGY/w/tcgFIfwv6CCC/AXMr/wi/fyt5DX8Eezv/I/oBcP8DaQIAoNB/CBj/FfYt+O//QXsGfwgCAKj/Dv8OcRp3/y5/AvgGwP82cxf/BgD+HHxe8WK5G/EcPyr8TP8P7foBMP8IAgDQfxb/J/EFz/AD/yQHAPUDlL3zC7GiVTEACPAAQDAAeDAA3CY78AAwAHA48BE2AAQAiHAAYDkAACQQOgAAbPAAyDcApADEgJu0L7AOM/CqQi5wDzEAALOwA8JVMADQMADfMAD1MAAGVr6wjjAALzAAPzAATVUwAFkw' $GraphicsCaptureWrapper_x64dll &= 'AGwwAIUwAJ8LMACRCAJQPgQABQAABgAHAAgACQAECgAwsgANAEdyAGFwaGljc0NhQHB0dXJlV+AAcABlcl94NjQuZABsbABDbGVhbgR1cNQBAEdldEIAdWZmZXJJbmbGb9EAhAFNb2TCAeYAEG5pdG9NAmRGckxhbWkCAwFOQi4BVDBpbWVkUQGEBENvCHVudPEAUmVnafRvbnIFSZABZQmxAKUCBy8BQwOJAVByaW1hvHJ5LwMEBhUB8TfDtx1UEsTwL3IwGcI3ARxBMAHocQAAkHgCPmUwAdBwAgjBeDwwAUip8LTAwDcB7DABADABsnh4ArbFsCowASg4ASrKMAFoMAEIOAYWx6vwBDAG6LgIODABKDABqoB4AlgwAcAwAXh4AizgyDAGMAu4OAYGyauwQzAGMHgCMDABcHACqlg4AVowAZgwAai4A1qEMAHo8Ql4AqYwAUjVcAJoOAHQMAGocQc4AZb0cQcwAfD4BBjKsAdlMAHguBJMyzAwMAaIVXgCWjAByDABmPgEelUwAdiwA8g4AZwwAQhVMBDYOAHEMAEYMAHQdfgE5jABELADDwADAKzr8RoAALx0AN50AAUAYBXXop4gDXIABnQAB3QANgrVdANmdACMfASW8B4yrlV0ACp0AEJ0AFR0AF6VdABodACAdAAGzPsEuvr8BUDwFbIXdABydADtBQA6hAwFANgwJHIPdADXNiPwEgEA4vQDQPQAdisFdAQSdAHltpIABACuyANwYMoDODQuywM4UgQ8BQD2x9UDHAoEvGgEDn4EDgUAqh4MHk4MHo4EjnoEB5aoBAcFAJIMd+DDCw8qlAxPqAwvyAwP9MY1AwcoBAc0BAcFANzFVYMDCIRD/IQPUIQD6lWEA+SEE2qEBz6EAwJVhAMehAPchAPEhAOotYQDjIw79oQnBQDojHMK/oQHuIwLAABDcgBlYXRlRGlyZQBjdDNEMTFEZQB2aWNlRnJvbRBEWEdJgwYAAC0A' $GraphicsCaptureWrapper_x64dll &= 'AFNsZWVwAAQAAEVudW1EaXMAcGxheU1vbmkAdG9ycwAGAEQHgQ6EEoMMZDNkMTEALmRsbABhcGkALW1zLXdpbi0AY29yZS1zeW4AY2gtbDEtMi0GMAIISQhudHVzZYJywAhzcGFyYQAFBcAJMcUJTgFHZXQARGVza3RvcFcAaW5kb3cAAJMDwQREIkluZm9BABydAoQDATGECVVTRQhSMzJDEYgFX00AdHhfdHJ5bG8EY2vAkAI/X1hsAGVuZ3RoX2VyAHJvckBzdGRAAEBZQVhQRUJEIEBaAACJQwx1bgECDE1TVkNQMTQBxCQAAF9fQ3h4AkYAK2VIYW5kbMBlcjQAACJABUARAF9leGNlcHRpAG9uX2Rlc3RyEG95ACFOBmNvcBB5AAAjxAV0ZXIIbWluwFEAPABtKGVtY8EGPkECc2UGdMCVQRtfc3BlY0BpZmljX2gDHAAIAAEAASFUaHJvRHdFBRYAACXFFHkwcGVfaQBHRSFfbARpc0ATVkNSVU7QVElNRUAzXwNrygQBQwRUAGFib3J0CAA6AMAQdm9rZSBfd2F0c8EXewBYaXN3AGpBiDiiA2FQbGlkXyI3ZQAZX5xub6EOYR4AK25v4hcAY2FsbG5ld2gQABkAbUABb2MAAAA/AF9zZWhfWGZpbIEGgQ4Y4ARvAG5maWd1cmVfBG5hoDJ3X2FyZxB2AAAz4QxpdGkFIA16RgNlbnZpcqBvbm1lbqAaNCoEAG9uZXhpdF90CGFibKAUPABfchxlZ4Af4AwkA2Z1bgZjwiVgNmV4ZWN1inSMBh5gEXJ0X0AyOWACABagAQIBYBRmcpplYAo24w0BNwA3ZwEEX2UqX3J0LXJ1YG50aW1lSVosBGg4ZWFwKl7sA4A3aW4CZyoEAgBSdGxDiGFwdCAlQ29ugBQIdAALYQJMb29rSHVwRqQbRW7gXQAEABEhA1ZpcnR1UGFsVW7ACmRhAlUqbgNJZGZHRkIxAAAgDwBTZXTW' $GraphicsCaptureWrapper_x64dll &= 'AwwAIWBvQ3VycuAuUHIAb2Nlc3MAVQAGVCVYRQIAMgBJcw+EAaBygIRgFVByZXMFwTUFYANEZWJ1ZwhnZXJlAgAAUXUAZXJ5UGVyZm/gcm1hbmMgG2AnIA5yDS8OSWQgGKcCYGBlJGFkgAIAF6ECU3lJYD1tVMAuQXOgFmUfIQGgZSCYYTuDBUxpYmByYXJ5Q6BRgBUA0kmGR1NMIEVIIARumIBydGxzdXBwwGK/tTmhBKKJYietNi0FcGMZvnTiEYqePwUgADIFZKEqhboObAMfbG9hZGCu3zSypQ6gc0pX8Lpz0T4/Ak04AmlRHFFUZWR6AiiIAENvdxdFeACQHj5G0DWkGVA3sBwBH0Fk9mRAImAaBxADA2dxAoMcAGVkTWFyc2hhASFRBgBNdWx0aQBCeXRlVG9XaUBkZUNoYXKRMW8QT3JpZ/IpTGFusGd1YWfgBhZTAfABJZAGQTAzdmGSLmFjO5BkkDMAFQjQByAhcACkAEYQCFVup0YAMAdjkQHxCAAAA3Aktg5QuHVzaBI4EiWQT0wgF7G0DUV4V1E8kQNB4lDAT0xFQVVU1WodFPhjb20fFlkYLkIdAoAA/2ArsinpI38CcgK/BhcC7UriPXFqbW924A8PAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8Auw8ABgD/AAB1AAEAAbGsH5OwJQLjAA8AAgAyot94LZkrfwEPAA8AAQDNAF0g0mbU//91DpjzAPEHCQDYmACAYTkBLj9BVuWKcIV1r5GDY5//AvQCVSBGcyBFAF9pbGxlZ2FsE5CVMERfY/BdZ2VAz8Iy1QP/A/kDbm8wgqBBPmZwk38DfwN9B6CVaG9eZHKU5gN/A3cDd5CRZ/5fA2P/Bn8RlqkIEX8C9wWgY2xhc3NQDXSmlUZlfwb/A1ZiYbEXcuhheV/goF8DuCUH/wL/+AYBgdCIOQb/AvQFEVV/' $GraphicsCaptureWrapper_x64dll &= 'DPd/BXEFkhxkcx0MDH8DdwPMYWMxYaC1bmmOD38Dw38TEAR2YWls8Yj/HP9/AzTKfwb/AnQjfS5/E3oTeGxvZ6DFmNB/AvwsdABfW7YAaW1wbGVtZW4AdGVkQHdpbnIQdEBAAAkA2JgABIABCDwuP0FVaAByZXN1bHRfaQBsbGVnYWxfZAJlAQ50ZV9hc3M4aWduAZoGlhl+b3UBAAZmX2JvdW5kFnMMfRA3VgQvcmFuwGdlQHN0ZAEsEScAdHlwZV9pbmZSbxR/PyQFsUAAC1QRgBZkRXYAWkhhbgBkbGVyQFVHcgBhcGhpY3NDYQBwdHVyZUl0ZRRtQIQFQIUNQFdpEG5kb3eGW1VJSQBuc3BlY3RhYhBsZUBGgWlhdGnAb25ANDVACQcMGwBWPGxhbWJkYQBfMj5AP0JCQAA/P0ZpbmFsaQR6ZQQ4U2V0dXAAQEBZQUhQRUHASDBAWkBAgdkS1geUmy8x030/JG1vZAB1bGVfbG9jaxhfdXBANEBLJDAwa1gk2SMxwCNPoyPaoz8aJEaxcwajlHZEaXIhwGgzRDExRBtGcoBhbWVQb29sf3j/XHimOxl48rM/PZ8enx6fHgeIHvEcsDxfYmFzZQf/JesI4YNAPyRhYt5p/3//fx8lGSVY/x7qFQBJVW5rbm93bgdfCv8h5QttYXJzaAJhIR8/MT8/bWH4a2VfRwJpCcM1/xHtEdgyM0DgBkAAWIt5/3n//nlfNV81XzVftZ9aAx//UT//d/93fx3fUpsLfwtBVfxJTVMiXw4PAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwAPDwAPAA8ACQAQEAAAgkMwAPCsAABYcAAqmzAA+LAA/HAAHBHQAAAErXMAWTAAMQKqXHAAmbQAnHAArjAACgwwArBwABgSAAB2FLAAcQBVMAAyBXAAlQW0AKxwAE4TAAAktTACUHAAiTAAcQGMcACgAhYAADRwAQRw' $GraphicsCaptureWrapper_x64dll &= 'ACqSMABwsACUcACWF6gAAIiwAJhwALgwACvxAnEA6rQA7HAADBjbswBxACy0AHEATLQAcQC2bLQAcQCMtABxAKy0AG1xAMy0AHEA7LQAcQAMthn0BXAALLQAcQBMtADNcQBstABxAI0b8AQwC6qQcADdMAC8sADgcACEOh0wDa4AAHxwAMreMAC0sACQHrATMABTMhRwAHcf8xeAcAAnUCAAAMAwAihwALZQIQAA0LAAuHAAzKcwAPECcQC1IjAcr3ABWXAAOyZwFbAAPHAAUpYq8BmwAFRwAAsrsBVWsDADcADDtADEcAC3UCwAAGCwALhwAAJQLQAAeLAABHAAipYu8BawAIxwALMvcAYlsAC0cAACMbAgsQBkACBwAKYzsA6wAKhZcAA5NnAKsAA8cABrKzAAsQlscACzMAAQsrOwAXAAijdwA7AAjHAABscwALESiDgAAF+WOXADcAFgcAAjOrMAsiRwAAY7sAywAAhwACraMABksADccADdPSgAAHSwAOBwAJU+y7AJsACYcAAoPzAFsADdcQA8MAAxCHEAVLQAcQCCxzAABLMAAMhwAM49gEqxAAFLz0EwArAAUtBwAGJCswlkcACAzkawCHABcQAOR/AIsABaEHAAZjAAsRt0cACVVTAAXHABrHAAzbQA0DlwAA1IMATxAnAAvU8rMAqwAMBwAN0wADS0s/ALcAAnUbAjsAAocACWOjAAcQpAcACXUvAQ1XABwHAA3jAAaPECcACsHFOzCXEALzAAbHABujBwAGkwADIXcACgtADVcQC1tAC4cADgtABxAMr1tAD4cABYVLAgcATdcQCIMABxAXEAnLQAcQDK1rQA2HAAY1X0EXAAmvwwAJywA3EAIFZzAVVxAEm0AExwAIa0AIhdcACfMAByLnAA23QB3JlwACxXcwFxAEJYcAaVMAVEcADHMAAUtfAaOXAA8FlwELAAcQAtWmvwFLAAMHAATTAAsQNQNXAAsDAAqHAB' $GraphicsCaptureWrapper_x64dll &= 'cQBFXetwALAASHAAfDAAsQZxAGxPXvAOcAFQcQAwAMybsABxAOQwALFOBF8wAhZgMAhwAVRwAANhANQA6LAABHAAJzAAsiTVcABvtAB4cAC0MAAxOwVxAPC0ANhiAABXWmNwA7awTHAAcjAA+NVwBJBwAJYwAABwAXEA2sIwACywJHEA6rQAcQCc0mTwE7AAcQC6ZbMAWXEApWbwBLAAyXAA7wUwAEgwPgdnAAAl1TAALHA6PXAAW7QAcQCqebQAkXAAr7QAu3AAAtm0AAO1INlnAAD3ADAssFkDcBVoA1gBOEEBWK6oAABZABx3ASy0AxxqlQQsrQAcywRGAQ7jLQAGvAAuAQ76AAZIr9kDDhNpAxYBDicEFgEOgl0ABpC1AABgAAdijQAD8KwA/wB6AAIEABBAASAAAIAYLcABOMABywcBQAAAADpQ0AUCQAGAes4FCQQrDgXGBZBAAqDAAjQFQUcG2AUBAJFICjQEBTRAAVYAUwBfEUABRQBSQAJJAE/UAE7AA0lAAUbAAgEA0L0E7/7BFQPEDcUBrwUAgBvCLgkAkgAFAcATAHQAcgBpAG4AgmdAE2kAbABlQBagbgBmAG/ACG7CCOgwADTAADnAAEMAwCUUAAjABVBADm8AZFAAdQBjQBFWQA5yVABzwBBvwA8AwAkuHAAzwADBAcEMUgAZBcAMQ0AHbQBwAGFVwAh5QDBhQANlwiNVVcA3WkBfU0AIZsATd0XABnLABiAAREABdtXAAGxABnDCC27ABwEAuHoAKcAUxS3BCXPAIo3BM3BACEUiAABXwARqYcAEcMIoIEI3wQFXFSIfZKABdyAHIABHVeQEaOACYyICQ+IBdCtgHGMRQaAeSWIKWABWHGAPYSV0ogpuIAVs3ygabQkrCSsS4SRjogGhPbXhJEzgAmciCiEmcGAlPaEaZ6AJIR9/JW8lZgD6H+AKT+QI4R6hC2UnoQGD/xbtFl8AeAA/IAAaLmAobCAAAQBO' $GraphicsCaptureWrapper_x64dll &= 'ABcfbkPpPP8L5wsBAOoB6YvmRuUZc+ACSQBNoAyqT+BKVKAyTqAAOuAfWlngBHXgAOUhbuABdFfiAeET4TxloBIgYAJvdaAAcyIlbOIB4REhPmPX4hZhB2NEauAJc2IIoVbWcqIPYQNmoABp4gJhKdchDGMHoxRyYAFpog7hBl1hIWqgAmEh5Qpt4gxp/eAIeSYJoWKhE+ECYQ5hNa5i4A8hTGUEd+IAaCQOPSMIZiIOYyNhHqMtIQDeLCJCbQmjfaMVcKABoWavJRohC2ENYxZnojFtZhzf4xthBmFGIRUjaW2gBCEPaiigAnhgACniG+UmYv0iCmYiFOMqIQ0jgOECoQJqIWI9ROKUVuIsr5EAVAAkIplUohJuoAtsQ+IO53wJBOn94QA8AD94bWwgdmVyAHNpb249JzEuADAnIGVuY29kAGluZz0nVVRGAC04JyBzdGFuAGRhbG9uZT0nAHllcyc/Pg0KADxhc3NlbWJsBHkgAARucz0ndQBybjpzY2hlbQBhcy1taWNybwBzb2Z0LWNvbQA6YXNtLnYxJwAgbWFuaWZlc+x0VtkGoQQvtQTAAM9m/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ACQAAV7F+APiiAKMIoxCjwBijKKM4owABwHkB0UzQqNio6KjwAKj4qACpCKkQAKkYqSCpKKkwAKk4qUCpSKlQAKlYqWCpoKyoAKywrLiswKzYAKzwrPisAK0IAK0QrRitIK0oAK0wrTitQK1IAK1QrVitYK1oAK0IryCvKK+wAK/Ir9Cv2K/gxK/osKAA0ADQXrCAAKDQoBChSKGAAKG4oeChIKJQAKKAoqii4KIYAKNQo4CjuKPgAKMgpGCkmKTAAKTgpNClGKZgAKawprCnmKjgAKiQqfCpgKpw/KsoH6QPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwAHDwAPAA4A' $GraphicsCaptureWrapper_x64dll = _WinAPI_Base64Decode($GraphicsCaptureWrapper_x64dll) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($GraphicsCaptureWrapper_x64dll) & ']') DllStructSetData($tSource, 1, $GraphicsCaptureWrapper_x64dll) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 56320) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\GraphicsCaptureWrapper_x64.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_GraphicsCaptureWrapper_x64dll Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress I tried almost every possibility but always crash with -1073740791 (Stack Buffer Overflow). No issues when calling it from Freebasic. Any ideas? Edited Thursday at 06:15 PM by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
KaFu Posted Wednesday at 04:47 PM Posted Wednesday at 04:47 PM (edited) Their seems to be an error in ASM_DecompressLZMAT(), script crashes at that point and I can't create the dll. Edited Wednesday at 04:55 PM by KaFu OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2025-May-18) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16)
UEZ Posted Wednesday at 05:00 PM Author Posted Wednesday at 05:00 PM (edited) 13 minutes ago, KaFu said: Their seems to be an error in ASM_DecompressLZMAT(), script crashes at that point and I can't create the dll. The DLLs can be found also on my 1Drv where WebP stuff is hosted. Edited Wednesday at 05:01 PM by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
pixelsearch Posted Wednesday at 06:10 PM Posted Wednesday at 06:10 PM @UEZ glad you created this thread. Could you please be kind enough and share again the preceding DLL version 0.4.4 (x86) ? Thanks "I think you are searching a bug where there is no bug... don't listen to bad advice."
KaFu Posted Wednesday at 06:14 PM Posted Wednesday at 06:14 PM (edited) Can't see an issue (like in: it crashes for me too, but I don't no why either). Maybe it's related to the InitRegionCapture() function itself? Maybe Freebasic captures something AutoIt doesn't, like freeing resources? Edited Wednesday at 06:16 PM by KaFu OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2025-May-18) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16)
UEZ Posted Wednesday at 06:28 PM Author Posted Wednesday at 06:28 PM 9 minutes ago, pixelsearch said: @UEZ glad you created this thread. Could you please be kind enough and share again the preceding DLL version 0.4.4 (x86) ? Thanks You are lucky. I found a backup file which is dated to 0.4.4 but what is the reason for the request for the older version? V0.4.4 is uploaded to my 1drv. pixelsearch 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
argumentum Posted Wednesday at 06:28 PM Posted Wednesday at 06:28 PM drop it like it's hot 7 minutes ago, KaFu said: Maybe Freebasic captures something AutoIt doesn't, like freeing resources? ..any resources that the DLL has/uses would need to be freed by the DLL, to make it safer ?. If AutoIt needs to free a resource, could it do a call to the DLL to free it ? ( haven't look at any code, just imagining ) Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
UEZ Posted Wednesday at 06:29 PM Author Posted Wednesday at 06:29 PM 13 minutes ago, KaFu said: Can't see an issue (like in: it crashes for me too, but I don't no why either). Maybe it's related to the InitRegionCapture() function itself? Maybe Freebasic captures something AutoIt doesn't, like freeing resources? It is very odd why it is not working with Autoit. In FB it is straight forward - nothing special. Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Werty Posted Wednesday at 07:04 PM Posted Wednesday at 07:04 PM May not be related, but in AutoIt after version 3.3.12 there were things that were broken, like stuff I was able to do in 3.3.12 didnt work in later AutoIt versions, but that was concerning ImageMagick.dll COM object, dont know if that also ruined stuff like your problem. Reference post https://www.autoitscript.com/forum/topic/199781-rgb-imgs-to-cmyk-to-tiff/#comment-1433227 argumentum 1 Some guy's script + some other guy's script = my script!
pixelsearch Posted Wednesday at 07:25 PM Posted Wednesday at 07:25 PM 1 hour ago, UEZ said: You are lucky. I found a backup file which is dated to 0.4.4 but what is the reason for the request for the older version? V0.4.4 is uploaded to my 1drv. Thanks for the upload ! For the record, just re-tested on a XP machine : 1) Dll 0.4.4 All examples work, from example01 to example 16 included 2) Dll 0.5.0 Only one example works (example02), all other examples throw a fatal error "I think you are searching a bug where there is no bug... don't listen to bad advice."
UEZ Posted Wednesday at 07:28 PM Author Posted Wednesday at 07:28 PM 23 minutes ago, Werty said: May not be related, but in AutoIt after version 3.3.12 there were things that were broken, like stuff I was able to do in 3.3.12 didnt work in later AutoIt versions, but that was concerning ImageMagick.dll COM object, dont know if that also ruined stuff like your problem. Reference post https://www.autoitscript.com/forum/topic/199781-rgb-imgs-to-cmyk-to-tiff/#comment-1433227 Made a quick test with 3.3.12.0 by replacing AutoIt3.exe only - same result. Werty and argumentum 2 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
UEZ Posted Wednesday at 09:10 PM Author Posted Wednesday at 09:10 PM (edited) 1 hour ago, pixelsearch said: Thanks for the upload ! For the record, just re-tested on a XP machine : 1) Dll 0.4.4 All examples work, from example01 to example 16 included 2) Dll 0.5.0 Only one example works (example02), all other examples throw a fatal error I changed for unknown reason the Extern "Windows-MS" to Extern "Windows" which is causing the problem when running it as x86 because obviously some functions require __msfastcall convention instead of stdcall. Can you please check for the latest x86 version for the examples? Thanks! Edited Wednesday at 09:16 PM by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
pixelsearch Posted Wednesday at 10:09 PM Posted Wednesday at 10:09 PM 57 minutes ago, UEZ said: Can you please check for the latest x86 version for the examples? For sure Unfortunately new DLL 0.5.1 makes things worse on XP, as a new error message immediately appears at 1st initial Dll call : English corresponding message is found at this MS link : ERROR_NET_OPEN_FAILED 570 (0x23A) The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines. Anyway UEZ, thanks for DLL 0.4.4 which did the job, no need to investigate more imho so it will save your time. I made a big mistake a few days ago when deleting all your previous dll versions and corresponding WebP.au3 Today I start again to keep your last dll's and corresponding WebP.au3 in separated subfolders (renamed in archive subfolders) starting with 0.4.4 ..\WebP UEZ 2025\_WebP_DLL_v0.4.4\0.4.4 _WebP_x64.dll ..\WebP UEZ 2025\_WebP_DLL_v0.4.4\0.4.4 _WebP_x86.dll ..\WebP UEZ 2025\_WebP_DLL_v0.4.4\0.4.4 WebP.au3 <========= unfortunately missing ..\WebP UEZ 2025\_WebP_DLL_v0.5.0\0.5.0 _WebP_x64.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.0\0.5.0 _WebP_x86.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.0\0.5.0 WebP.au3 ..\WebP UEZ 2025\_WebP_DLL_v0.5.1\0.5.1 _WebP_x64.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.1\0.5.1 _WebP_x86.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.1\0.5.1 WebP.au3 "I think you are searching a bug where there is no bug... don't listen to bad advice."
Andreik Posted Wednesday at 10:40 PM Posted Wednesday at 10:40 PM What is the actual implementation of the function? If you can share it I will take a look.
UEZ Posted Thursday at 06:50 AM Author Posted Thursday at 06:50 AM 8 hours ago, Andreik said: What is the actual implementation of the function? If you can share it I will take a look. Sure expandcollapse popup__declspec(dllexport) int InitRegionCapture(int x, int y, int regionWidth, int regionHeight, int* actualWidth, int* actualHeight) { if (g_ctx && g_ctx->isCapturing) { if (actualWidth) *actualWidth = g_ctx->width; if (actualHeight) *actualHeight = g_ctx->height; return 1; } if (!InitializeCaptureCommon()) return 0; g_ctx->mode = CaptureMode::Region; try { HMONITOR primaryMonitor = MonitorFromWindow(GetDesktopWindow(), MONITOR_DEFAULTTOPRIMARY); MONITORINFO mi{ sizeof(MONITORINFO) }; if (!GetMonitorInfoA(primaryMonitor, &mi)) return 0; int monitorWidth = mi.rcMonitor.right - mi.rcMonitor.left; int monitorHeight = mi.rcMonitor.bottom - mi.rcMonitor.top; x = std::max(0, x); y = std::max(0, y); if (x >= monitorWidth || y >= monitorHeight) return 0; if (x + regionWidth > monitorWidth) regionWidth = monitorWidth - x; if (y + regionHeight > monitorHeight) regionHeight = monitorHeight - y; if (regionWidth <= 0 || regionHeight <= 0) return 0; g_ctx->regionX = x; g_ctx->regionY = y; g_ctx->regionWidth = regionWidth; g_ctx->regionHeight = regionHeight; g_ctx->fullMonitorWidth = monitorWidth; g_ctx->fullMonitorHeight = monitorHeight; g_ctx->width = regionWidth; g_ctx->height = regionHeight; auto itemInterop = winrt::get_activation_factory<GraphicsCaptureItem, IGraphicsCaptureItemInterop>(); HRESULT hr = itemInterop->CreateForMonitor( primaryMonitor, winrt::guid_of<GraphicsCaptureItem>(), winrt::put_abi(g_ctx->item) ); if (FAILED(hr)) return 0; } catch (...) { return 0; } if (actualWidth) *actualWidth = g_ctx->regionWidth; if (actualHeight) *actualHeight = g_ctx->regionHeight; return FinalizeCaptureSetup(nullptr, nullptr); } 8 hours ago, pixelsearch said: For sure Unfortunately new DLL 0.5.1 makes things worse on XP, as a new error message immediately appears at 1st initial Dll call : English corresponding message is found at this MS link : ERROR_NET_OPEN_FAILED 570 (0x23A) The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines. Anyway UEZ, thanks for DLL 0.4.4 which did the job, no need to investigate more imho so it will save your time. I made a big mistake a few days ago when deleting all your previous dll versions and corresponding WebP.au3 Today I start again to keep your last dll's and corresponding WebP.au3 in separated subfolders (renamed in archive subfolders) starting with 0.4.4 ..\WebP UEZ 2025\_WebP_DLL_v0.4.4\0.4.4 _WebP_x64.dll ..\WebP UEZ 2025\_WebP_DLL_v0.4.4\0.4.4 _WebP_x86.dll ..\WebP UEZ 2025\_WebP_DLL_v0.4.4\0.4.4 WebP.au3 <========= unfortunately missing ..\WebP UEZ 2025\_WebP_DLL_v0.5.0\0.5.0 _WebP_x64.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.0\0.5.0 _WebP_x86.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.0\0.5.0 WebP.au3 ..\WebP UEZ 2025\_WebP_DLL_v0.5.1\0.5.1 _WebP_x64.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.1\0.5.1 _WebP_x86.dll ..\WebP UEZ 2025\_WebP_DLL_v0.5.1\0.5.1 WebP.au3 WindowsXP? Really? 😲 I found 0.4.3 expandcollapse popup#cs Copyright (c) 2025 UEZ The following terms apply to the use of this code (AutoIt scripts and both DLLs), unless otherwise agreed upon in writing with the author: 1. **No commercial use** Any commercial usage - including but not limited to selling, licensing, integrating into commercial software, or using in revenue-generating products - is prohibited. 2. **Modification allowed, for non-commercial use only** You may modify or adapt the code as long as it remains non-commercial. Even in modified versions, the original author must be clearly credited as UEZ. 3. **Attribution required** In any non-commercial distribution or use, clear credit must be given to the original author: UEZ. For exceptions or commercial licensing, please contact: uez at hotmail de #ce ;Version 0.4.3 build 2025-08-03 beta #include-once #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <Memory.au3> #include <MsgBoxConstants.au3> #include <WinAPIGdi.au3> #include <WindowsConstants.au3> #include <WinAPIConstants.au3> #include <WinAPISysWin.au3> ;~ #include <WinAPIDiag.au3> ;WEBP_HINT_ENUMARTION Enum $WEBP_HINT_DEFAULT = 0, _ ; default preset. $WEBP_HINT_PICTURE, _ ; digital picture, like portrait, inner shot $WEBP_HINT_PHOTO, _ ; outdoor photograph, with natural lighting $WEBP_HINT_GRAPH, _ ; Discrete tone image (graph, map-tile etc). $WEBP_HINT_LAST Global Const $tagWebPConfig = _ "long lossless;" & _ "float quality;" & _ "long method;" & _ "long image_hint;" & _ "long target_size;" & _ "float target_PSNR;" & _ "long segments;" & _ "long sns_strength;" & _ "long filter_strength;" & _ "long filter_sharpness;" & _ "long filter_type;" & _ "long autofilter;" & _ "long alpha_compression;" & _ "long alpha_filtering;" & _ "long alpha_quality;" & _ "long pass;" & _ "long show_compressed;" & _ "long preprocessing;" & _ "long partitions;" & _ "long partition_limit;" & _ "long emulate_jpeg_size;" & _ "long thread_level;" & _ "long low_memory;" & _ "long near_lossless;" & _ "long exact;" & _ "long use_delta_palette;" & _ "long use_sharp_yuv;" & _ "long qmin;" & _ "long qmax" Global $g_hDLL ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_Ver ; Description ...: Displays the DLL version information in a messagebox window ; Syntax ........: WebP_Ver([$sPath2DLL = ""]) ; Parameters ....: $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir ; Return values .: None ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_Ver($sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found DllCall($sDLL, "none", "WebP_DLL_Version") Return True EndFunc ;==>WebP_Ver ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_Ver2 ; Description ...: Returns the DLL version information ; Syntax ........: WebP_Ver([$sPath2DLL = ""]) ; Parameters ....: $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir ; Return values .: DLL version ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_Ver2($sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found Return DllCall($sDLL, "str", "Web_DLL_Version2")[0] EndFunc ;==>WebP_Ver2 ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_BitmapGetInfo ; Description ...: Gets some rudimentary information about the WebP image ; Syntax ........: WebP_BitmapGetInfo($sFilename[, $sPath2DLL = ""]) ; Parameters ....: $sFilename - file to load ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir ; Return values .: Struct ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_BitmapGetInfo($sFilename, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If Not FileExists($sFilename) Then Return SetError(2, 0, 0) ;file not found Local $iFileSize = FileGetSize($sFilename), $nBytes Local $tBuffer = DllStructCreate("struct;byte bin[" & $iFileSize & "];endstruct") Local Const $hFile = _WinAPI_CreateFile($sFilename, 2, 2) _WinAPI_ReadFile($hFile, $tBuffer, $iFileSize, $nBytes) _WinAPI_CloseHandle($hFile) If Int(BinaryMid($tBuffer.bin, 1, 4)) <> 1179011410 Or Int(BinaryMid($tBuffer.bin, 9, 6)) <> 88331643929943 Then Return SetError(3, 0, 0) ;header must contain RIFF and WEBPVP Local $tWebPBitstreamFeatures = DllStructCreate("struct;long width; long height; long has_alpha; long has_animation; long format; ulong pad[5];endstruct") Local $iReturn = DllCall($sDLL, "long", "WebP_BitmapGetInfo", "struct*", $tBuffer, "uint", $iFileSize, "struct*", $tWebPBitstreamFeatures) If $iReturn = 0 Then Return SetError(4, 0, 0) Return $tWebPBitstreamFeatures EndFunc ;==>WebP_BitmapGetInfo ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_BitmapCreateGDIp ; Description ...: Converts (decodes) a WebP image from disk to a GDI / GDI+ bitmap handle ; Syntax ........: WebP_BitmapCreateGDIp($sFilename[, $bGDIImage = False[, $bDither = False[, $iDitherStrength = 32[, ; $bCountColors = False[, $sPath2DLL = ""]]]]]) ; Parameters ....: $sFilename - file to load ; $bGDIImage - [optional] a boolean value. Default is False (GDIPlus bitmap handle). If True then output is GDI bitmap handle. ; $bDither - [optional] a boolean value. Default is False. If true pseudo dithering (noise) will applied to image. ; $iDitherStrength - [optional] an integer value. Default is 32. Valid values are from 0 to 64. ; $bCountColors - [optional] a boolean value. Default is False. If True then the colors will be counted and saved in extended. Use @extended to get color count. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir ; Return values .: GDI / GDIPlus bitmap handle and color count if $bCountColors = True in extended. ; Author ........: UEZ ; Modified ......: ; Remarks .......: For animated WebP images see below! Dithering makes only sense for images which are heavily compressed. ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_BitmapCreateGDIp($sFilename, $bGDIImage = False, $bDither = False, $iDitherStrength = 32, $bCountColors = False, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If Not FileExists($sFilename) Then Return SetError(2, 0, 0) ;file not found $iDitherStrength = $iDitherStrength > 64 ? 64 : $iDitherStrength < 0 ? 0 : $iDitherStrength Local $iFileSize = FileGetSize($sFilename), $nBytes If $iFileSize < 1 Then Return SetError(3, 0, 0) Local $tBuffer = DllStructCreate("byte bin[" & $iFileSize & "]") Local Const $hFile = _WinAPI_CreateFile($sFilename, 2, 2) _WinAPI_ReadFile($hFile, $tBuffer, $iFileSize, $nBytes) _WinAPI_CloseHandle($hFile) If Int(BinaryMid($tBuffer.bin, 1, 4)) <> 1179011410 Or Int(BinaryMid($tBuffer.bin, 9, 6)) <> 88331643929943 Then Return SetError(4, 0, 0) ;header must contain RIFF and WEBPVP Local $tColors = DllStructCreate("struct;ulong cc;endstruct") Local Const $hBitmap = DllCall($sDLL, "ptr", "WebP_BitmapCreateGDIp", "struct*", $tBuffer, "uint", $iFileSize, "boolean", $bDither, "ubyte", $iDitherStrength, "boolean", $bGDIImage, "boolean", $bCountColors, "struct*", $tColors)[0] If $hBitmap = 0 Then Return SetError(5, 0, 0) Return SetExtended($tColors.cc, $hBitmap) EndFunc ;==>WebP_BitmapCreateGDIp ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_BitmapCreateGDIpFromMem ; Description ...: Converts (decodes) a WebP image from memory to a GDI / GDI+ bitmap handle ; Syntax ........: WebP_BitmapCreateGDIpFromMem($tBuffer[, $iBufferSize = 0[, $bGDIImage = False[, $bDither = False[, ; $iDitherStrength = 32[, $bCountColors = False[, $sPath2DLL = ""]]]]]]) ; Parameters ....: $tBuffer - a dll struct with WebP binary data as content or pointer to the memory data. ; $iBufferSize - the size of the binary data (file size). ; $bGDIImage - [optional] a boolean value. Default is False (GDIPlus bitmap handle). If True then output is GDI bitmap handle. ; $bDither - [optional] a boolean value. Default is False. If true pseudo dithering (noise) will applied to image. ; $iDitherStrength - [optional] an integer value. Default is 32. Valid values are from 0 to 64. ; $bCountColors - [optional] a boolean value. Default is False. If True then the colors will be counted and saved in extended. Use @extended to get color count. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir ; Return values .: GDI / GDIPlus bitmap handle and color count if $bCountColors = True in extended. ; Author ........: UEZ ; Modified ......: ; Remarks .......: Currently only WebP images are supported - no animated WebP images yet! ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_BitmapCreateGDIpFromMem($tBuffer, $iBufferSize = 0, $bGDIImage = False, $bDither = False, $iDitherStrength = 32, $bCountColors = False, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If $iBufferSize = 0 Then Return SetError(2, 0, 0) Local $binMem If IsPtr($tBuffer) Then Local $tMem = DllStructCreate("byte bin[" & $iBufferSize & "]", $tBuffer) $binMem = $tMem.bin Else $binMem = DllStructGetData($tBuffer, 1) EndIf If Int(BinaryMid($binMem, 1, 4)) <> 1179011410 Or Int(BinaryMid($binMem, 9, 6)) <> 88331643929943 Then Return SetError(3, 0, 0) ;header must contain RIFF and WEBPVP Local $tColors = DllStructCreate("ulong cc") Local Const $hBitmap = DllCall($sDLL, "ptr", "WebP_BitmapCreateGDIp", "struct*", $tBuffer, "uint", $iBufferSize, "boolean", $bDither, "ubyte", $iDitherStrength, "boolean", $bGDIImage, "boolean", $bCountColors, "struct*", $tColors)[0] If $hBitmap = 0 Then Return SetError(4, 0, 0) Return SetExtended($tColors.cc, $hBitmap) EndFunc ;==>WebP_BitmapCreateGDIpFromMem ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_CreateWebPLossySimpleFromBitmap ; Description ...: Converts a GDI+ bitmap to WebP lossy image and save it to HD ; Syntax ........: WebP_CreateWebPLossySimpleFromBitmap($sFilename, $hBitmap[, $iQuality = 75[, $sPath2DLL = ""]]) ; Parameters ....: $sFilename - file to load ; $hBitmap - GDIPlus bitmap handle ; $iQuality - [optional] an integer value. Default is 75. Valid range is 0 - 100. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 1 on success, otherwise error -> -1 to -4 ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_CreateWebPLossySimpleFromBitmap($sFilename, $hBitmap, $iQuality = 75, $sPath2DLL = "") If $sFilename = "" Then Return SetError(1, 0, 0) Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(2, 0, 0) ;DLL not found Local $iReturn = DllCall($sDLL, "long", "WebP_CreateWebPLossySimpleFromBitmap", "str", $sFilename, "ptr", $hBitmap, "float", $iQuality)[0] If $iReturn = 0 Then Return SetError(3, 0, 0) Return 1 EndFunc ;==>WebP_CreateWebPLossySimpleFromBitmap ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_CreateWebPLosslessSimpleFromBitmap ; Description ...: Converts a GDI+ bitmap to WebP lossless image and save it to HD ; Syntax ........: WebP_CreateWebPLosslessSimpleFromBitmap($sFilename, $hBitmap[, $sPath2DLL = ""]) ; Parameters ....: $sFilename - file to load ; $hBitmap - GDIPlus bitmap handle ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 0 for failure, 1 for success. ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_CreateWebPLosslessSimpleFromBitmap($sFilename, $hBitmap, $sPath2DLL = "") If $sFilename = "" Then Return SetError(1, 0, 0) Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(2, 0, 0) ;DLL not found Local $iReturn = DllCall($sDLL, "long", "WebP_CreateWebPLosslessSimpleFromBitmap", "str", $sFilename, "ptr", $hBitmap)[0] If $iReturn = 0 Then Return SetError(3, 0, 0) Return 1 EndFunc ;==>WebP_CreateWebPLosslessSimpleFromBitmap ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_CreateWebPAdvancedFromBitmap ; Description ...: Converts a bitmap to WebP lossy / lossless image and save it to HD ; Syntax ........: WebP_CreateWebPAdvancedFromBitmap($sFilename, $hBitmap[, $lossless = 0[, $quality = 75.0[, $method = 4[, ; $sns_strength = 50[, $filter_sharpness = 0[, $filter_strength = 60[, $pass = 6[, $near_lossless = 100[, ; $alpha_compression = 1[, $alpha_filtering = 1[, $alpha_quality = 100[, $target_size = 0[, ; $WebPImageHint = $WEBP_HINT_DEFAULT[, $NoSave = False[, $sPath2DLL = ""]]]]]]]]]]]]]]]) ; Parameters ....: $sFilename - a string value. ; $hBitmap - a handle value. ; $lossless - [optional] an unknown value. Default is 0. ; $quality - [optional] an unknown value. Default is 75.0. ; $method - [optional] a map. Default is 4. ; $sns_strength - [optional] a string value. Default is 50. ; $filter_sharpness - [optional] a floating point value. Default is 0. ; $filter_strength - [optional] a floating point value. Default is 60. ; $pass - [optional] a pointer value. Default is 6. ; $near_lossless - [optional] a general number value. Default is 100. ; $alpha_compression - [optional] an array of unknowns. Default is 1. ; $alpha_filtering - [optional] an array of unknowns. Default is 1. ; $alpha_quality - [optional] an array of unknowns. Default is 100. ; $target_size - [optional] a dll struct value. Default is 0. ; $WebPImageHint - [optional] an unknown value. Default is $WEBP_HINT_DEFAULT. ; $NoSave - [optional] an unknown value. Default is False. ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: negative value up to -8 for failure, 1 for success or the struct with information (pointers, size) if $NoSave = True ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_CreateWebPAdvancedFromBitmap($sFilename, $hBitmap, $lossless = 0, $quality = 75.0, $method = 4, $sns_strength = 50, _ $filter_sharpness = 0, $filter_strength = 60, $pass = 6, $near_lossless = 100, $alpha_compression = 1, $alpha_filtering = 1, $alpha_quality = 100, _ $target_size = 0, $WebPImageHint = $WEBP_HINT_DEFAULT, $NoSave = False, $sPath2DLL = "") If $sFilename = "" And Not $NoSave Then Return SetError(1, 0, 0) Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(2, 0, 0) ;DLL not found Local $tMem = DllStructCreate("struct;ptr pPic; ptr pWriter; ptr pMemData; uint memsize;endstruct") Local $tWebPConfig = DllStructCreate($tagWebPConfig) FilltWebPConfigWithDefaults($tWebPConfig) With $tWebPConfig .lossless = $lossless .quality = ($quality < 0) ? 0 : (($quality > 100) ? 100 : $quality) .method = ($method < 0) ? 0 : (($method > 6) ? 6 : $method) .image_hint = ($WebPImageHint < 0) ? 0 : (($WebPImageHint > 4) ? 4 : $WebPImageHint) .target_size = $target_size ;in bytes .sns_strength = ($sns_strength < 0) ? 0 : (($sns_strength > 100) ? 100 : $sns_strength) .filter_strength = ($filter_strength < 0) ? 0 : (($filter_strength > 100) ? 100 : $filter_strength) .filter_sharpness = ($filter_sharpness < 0) ? 0 : (($filter_sharpness > 7) ? 7 : $filter_sharpness) .alpha_compression = $alpha_compression .alpha_filtering = ($alpha_filtering < 0) ? 0 : (($alpha_filtering > 2) ? 2 : $alpha_filtering) .alpha_quality = ($alpha_quality < 0) ? 0 : (($alpha_quality > 100) ? 100 : $alpha_quality) .pass = ($pass < 0) ? 0 : (($pass > 10) ? 10 : $pass) .near_lossless = ($near_lossless < 0) ? 0 : (($near_lossless > 100) ? 100 : $near_lossless) .exact = BitAND($near_lossless = 0, $lossless = 1) ? 1 : 0 EndWith Local $iReturn = DllCall($sDLL, "long", "WebP_CreateWebPAdvancedFromBitmap", _ "str", $sFilename, _ ;Webp filename "ptr", $hBitmap, _ ;handle to GDI+ bitmap "struct*", $tWebPConfig, _ ;WebP config settings "bool", $NoSave, _ "struct*", $tMem)[0] If $iReturn < 0 Then Return SetError(3, 0, $iReturn) If $NoSave And $tMem.memsize = 0 Then SetError(4, 0, 0) Return $NoSave ? $tMem : $iReturn EndFunc ;==>WebP_CreateWebPAdvancedFromBitmap ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_FreeUp ; Description ...: Release the ressources from $tMem struct ; Syntax ........: WebP_FreeUp(Byref $tMem[, $sPath2DLL = ""]) ; Parameters ....: $tMem - [in/out] a dll struct value. ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: 1 ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: https://developers.google.com/speed/webp ; Example .......: No ; =============================================================================================================================== Func WebP_FreeUp(ByRef $tMem, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found Local $iReturn = DllCall($sDLL, "long", "WebP_FreeUp", "struct*", $tMem)[0] Return $iReturn EndFunc ;==>WebP_FreeUp ; #FUNCTION# ==================================================================================================================== ; Name ..........: BitmapCountColors ; Description ...: Counts the colors used by the bitmap ; Syntax ........: BitmapCountColors($hBitmap) ; Parameters ....: $hBitmap - a handle to a GDI+ bitmap. ; $bGDIImage - [optional] a boolean value. Default is False (GDIPlus bitmap handle). ; Return values .: Number of colors used by the image. ; Author ........: UEZ ; Modified ......: ; Remarks .......: The result may differ from other programs for JPG images depending on the decoder. ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func BitmapCountColors($hBitmap = 0, $bGDIImage = False, $sPath2DLL = "") If IsPtr($hBitmap) = 0 Or $hBitmap = 0 Then SetError(1, 0, 0) Local Const $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(2, 0, 0) ;DLL not found Local $iReturn = DllCall($sDLL, "ulong", "BitmapCountColors", "ptr", $hBitmap)[0] If Not $iReturn Or @error Then Return SetError(3, 0, 0) Return $iReturn EndFunc ;==>BitmapCountColors ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_ExtractAnimFramesToDisk ; Description ...: Extracts the frames of a WebP animated file ; Syntax ........: WebP_ExtractAnimFramesToDisk($sFile, $sDestPath = ""[, $sOutputFormat = "webp"[, $sPath2DLL = ""]]) ; Parameters ....: $sFilename - path to webp anim file. ; $sDestPath - destination folder. If empty then script path will be used. ; $sOutputFormat - [optional] a string value. Default is "webp". Any GDI+ supported or WebP image format. ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: number of extracted frames on success, otherwise error -> -1 to -3 ; Author ........: UEZ ; Modified ......: ; Remarks .......: If output image format is WebP then frames will be saved lossless. ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_ExtractAnimFramesToDisk($sFilename, $sDestPath = "", $sOutputFormat = "webp", $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found Local Const $iResult = DllCall($sDLL, "long", "WebP_ExtractAnimFramesToDisk", "str", $sFilename, "str", $sDestPath, "str", StringStripWS($sOutputFormat, $STR_STRIPALL))[0] If $iResult < 1 Then Return SetError(2, 0, $iResult) Return $iResult EndFunc ;==>WebP_ExtractAnimFramesToDisk ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_GetAmountOfAnimFrames ; Description ...: Get the amount of frames from an animated webp file ; Syntax ........: WebP_GetAmountOfAnimFrames($sFilename[, $sPath2DLL = ""]) ; Parameters ....: $sFilename - path to webp anim file. ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: 0 for failure, otherwise the amount of frames ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_GetAmountOfAnimFrames($sFilename, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found Local Const $iResult = DllCall($sDLL, "uint", "WebP_GetAmountOfAnimFrames", "str", $sFilename)[0] If Not $iResult Or @error Then Return SetError(2, 0, 0) Return $iResult EndFunc ;==>WebP_GetAmountOfAnimFrames ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_ExtractAnimFramesToMem ; Description ...: Extracts all frames from a webp animated file to the memory ; Syntax ........: WebP_ExtractAnimFramesToMem($sFilename, Byref $iUB[, $sPath2DLL = ""]) ; Parameters ....: $sFilename - path to webp anim file. ; $iUB - [in/out] an integer value. Needed to save the amount of data in struct array -> frames * 2 ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: 0 for failure, otherwise struct array with pointer to the GDI+ image and frame delay ; Author ........: UEZ ; Modified ......: ; Remarks .......: You must dispose all frames when done. ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_ExtractAnimFramesToMem($sFilename, ByRef $iUB, $bDither = False, $iDitherStrength = 32, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found Local $iFrames = WebP_GetAmountOfAnimFrames($sFilename, $sPath2DLL) If Not $iFrames Or @error Then Return SetError(2, 0, 0) Local $tImgPtr = DllStructCreate((@AutoItX64 ? "int64 array[" : "int array[") & $iFrames * 2 + 2 & "]") Local Const $iResult = DllCall($sDLL, "long", "WebP_ExtractAnimFramesToMem", "str", $sFilename, "ptr*", DllStructGetPtr($tImgPtr), "boolean", $bDither, "ubyte", $iDitherStrength)[0] If $iResult < 1 Or @error Then Return SetError(4, $iResult, 0) $iUB = $iFrames * 2 Return $tImgPtr EndFunc ;==>WebP_ExtractAnimFramesToMem ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_CreateWebPCreateAnim ; Description ...: Creates an WebP animation file ; Syntax ........: WebP_CreateWebPCreateAnim($aFilenames, $sOutfile[, $quality = 75.0[, $lossless = 0[, $method = 4[, ; $filter_strength = 60[, $sns_strength = 50[, $pass = 6[, $filter_sharpness = 0[, ; $near_lossless = 100[, $alpha_compression = 1[, $alpha_filtering = 1[, $alpha_quality = 100[, ; $target_size = 0[, $loop_count = 0[, $WebPImageHint = $WEBP_HINT_DEFAULT[, $iDefaultDelay = 75[, ; $pCallback = 0[, $sPath2DLL = ""]]]]]]]]]]]]]]]]]) ; Parameters ....: $aFilenames - an 2D array of pathes to the image files and delay per frame. ; $sOutfile - filename of WebP animation output file. ; $quality - [optional] an unknown value. Default is 75.0. Valid range is 0 - 100. ; $lossless - [optional] an unknown value. Default is 0. 0 for lossy encoding / 1 for lossless. ; $method - [optional] a map. Default is 4. Valid range is 0 - 6 (0=fast, 6=slower-better). ; $filter_strength - [optional] a floating point value. Default is 60. Range: [0 = off .. 100 = strongest] ; $sns_strength - [optional] a string value. Default is 50. Spatial Noise Shaping. 0=off, 100=maximum ; $pass - [optional] a pointer value. Default is 1. Number of entropy-analysis passes (in [1..10]). ; $filter_sharpness - [optional] a floating point value. Default is 0. Range: [0 = off .. 7 = least sharp] ; $near_lossless - [optional] a general number value. Default is 0 Near lossless encoding [0 = max loss .. 100 = off (default)]. ; $alpha_compression - [optional] an array of unknowns. Default is 1. Algorithm for encoding the alpha plane (0 = none,1 = compressed with WebP lossless). Default is 1. ; $alpha_filtering - [optional] an array of unknowns. Default is 1. Predictive filtering method for alpha plane.0: none, 1: fast, 2: best. Default if 1. ; $alpha_quality - [optional] an array of unknowns. Default is 100. Between 0 (smallest size) and 100 (lossless). Default is 100. ; $target_size - [optional] a dll struct value. Default is 0. If non-zero, set the desired target size in bytes. ; $loop_count - [optional] an unknown value. Default is 0. 0 = endless. ; $WebPImageHint - [optional] an unknown value. Default is $WEBP_HINT_DEFAULT. ; $iDefaultDelay - [optional] an integer value. Default is 75. Delay in milli seconds. ; $pCallback - [optional] a pointer value. Default is 0. Pointer to a callback address for progress hook. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 1 on success, otherwise error -> -1 to -12 ; Author ........: UEZ ; Modified ......: ; Remarks .......: All frames must have same image dimension. First image defines the dimension of the animation. ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_CreateWebPCreateAnim($aFilenames, $sOutfile, $quality = 75.0, $lossless = 1, $method = 4, $filter_strength = 60, $sns_strength = 50, _ $pass = 1, $filter_sharpness = 0, $near_lossless = 0, $alpha_compression = 1, $alpha_filtering = 1, $alpha_quality = 100, _ $target_size = 0, $loop_count = 0, $WebPImageHint = $WEBP_HINT_DEFAULT, $iDefaultDelay = 75, $pCallback = 0, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If $sOutfile = "" Then Return SetError(2, 0, 0) If Not IsArray($aFilenames) Or UBound($aFilenames) < 2 Then Return SetError(3, 0, 0) Local $iNumberOfFrames = UBound($aFilenames), $i Local $tArrayFrames = DllStructCreate("ptr ptr[" & $iNumberOfFrames & "]"), $tArrayFramesDelay = DllStructCreate("uint delay[" & $iNumberOfFrames & "]") Local $tArrayAnim[$iNumberOfFrames], $tArrayFrameDelay[$iNumberOfFrames], $aDim, $iW, $iH For $i = 0 To $iNumberOfFrames - 1 If Not FileExists($aFilenames[$i][0]) Then Return SetError(4, 0, 0) $tArrayAnim[$i] = DllStructCreate("char path[" & StringLen($aFilenames[$i][0]) + 1 & "]") $tArrayAnim[$i].path = $aFilenames[$i][0] $tArrayFrames.ptr(($i + 1)) = DllStructGetPtr($tArrayAnim[$i]) $tArrayFramesDelay.delay(($i + 1)) = (UBound($aFilenames, 2) ? ($aFilenames[$i][1] > 0 ? $aFilenames[$i][1] : $iDefaultDelay) : $iDefaultDelay) Next Local $tAnim = DllStructCreate("ptr pFrames;ptr pDelays") $tAnim.pFrames = DllStructGetPtr($tArrayFrames) $tAnim.pDelays = DllStructGetPtr($tArrayFramesDelay) If StringRight($sOutfile, 5) <> ".webp" Then $sOutfile &= ".webp" $loop_count = $loop_count < 0 ? 0 : $loop_count Local $tWebPConfig = DllStructCreate($tagWebPConfig) FilltWebPConfigWithDefaults($tWebPConfig) With $tWebPConfig .lossless = $lossless .quality = ($quality < 0) ? 0 : (($quality > 100) ? 100 : $quality) .method = ($method < 0) ? 0 : (($method > 6) ? 6 : $method) .image_hint = ($WebPImageHint < 0) ? 0 : (($WebPImageHint > 4) ? 4 : $WebPImageHint) .target_size = $target_size ;in bytes .sns_strength = ($sns_strength < 0) ? 0 : (($sns_strength > 100) ? 100 : $sns_strength) .filter_strength = ($filter_strength < 0) ? 0 : (($filter_strength > 100) ? 100 : $filter_strength) .filter_sharpness = ($filter_sharpness < 0) ? 0 : (($filter_sharpness > 7) ? 7 : $filter_sharpness) .alpha_compression = $alpha_compression .alpha_filtering = ($alpha_filtering < 0) ? 0 : (($alpha_filtering > 2) ? 2 : $alpha_filtering) .alpha_quality = ($alpha_quality < 0) ? 0 : (($alpha_quality > 100) ? 100 : $alpha_quality) .pass = ($pass < 0) ? 0 : (($pass > 10) ? 10 : $pass) .near_lossless = ($near_lossless < 0) ? 0 : (($near_lossless > 100) ? 100 : $near_lossless) EndWith Local $iReturn = DllCall($sDLL, "long", "WebP_CreateWebPCreateAnim", _ "struct*", $tAnim, _ ;array of filenames with GDi+ supported images and delay per frame "uint", $iNumberOfFrames, _ ;amount of frames "str", $sOutfile, _ ;output filename "long", $loop_count, _ ;loop count -> 0 = endless "struct*", $tWebPConfig, _ ;WebP config settings "ptr", $pCallback)[0] ;callback pointer for progress status If $iReturn < 1 Then Return SetError(7, 0, $iReturn) ReDim $tArrayAnim[0] ReDim $tArrayFrameDelay[0] Return 1 EndFunc ;==>WebP_CreateWebPCreateAnim ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_CreateWebPCreateAnimFromScreenCapture ; Description ...: Capture the screen to WebP animation file ; Syntax ........: WebP_CreateWebPCreateAnimFromScreenCapture($x, $y, $w, $h, $sec, $sOutfile[, $fps = 30[, $CapCursor = 1[, ; $quality = 75.0[, $lossless = 0[, $method = 0[, $filter_strength = 60[, $sns_strength = 50[, $pass = 1[, ; $level = 6[, $filter_sharpness = 0[, $near_lossless = 100[, $alpha_compression = 0[, ; $alpha_filtering = 0[, $alpha_quality = 100[, $target_size = 0[, $loop_count = 0[, ; $WebPPreset = $WEBP_HINT_DEFAULT[, $pCallback = 0[, $sPath2DLL = ""]]]]]]]]]]]]]]]]]]]) ; Parameters ....: $x - x position on the screen where to start the capturing. ; $y - y position on the screen where to start the capturing. ; $w - width of the screen to capture. ; $h - height of the screen to capture. ; $sec - seconds to capture ; $sOutfile - filename of WebP animation output file. ; $fps - [optional] a floating point value. Default is 30 fps. ; $CapCursor - [optional] an unknown value. Default is 1. ; $quality - [optional] an unknown value. Default is 75.0. Valid range is 0 - 100. ; $lossless - [optional] an unknown value. Default is 0. 0 for lossy encoding / 1 for lossless. ; $method - [optional] a map. Default is 0. Valid range is 0 - 6 (0=fast, 6=slower-better). ; $filter_strength - [optional] a floating point value. Default is 60. Range: [0 = off .. 100 = strongest] ; $sns_strength - [optional] a string value. Default is 50. Spatial Noise Shaping. 0=off, 100=maximum ; $pass - [optional] a pointer value. Default is 1. Number of entropy-analysis passes (in [1..10]). ; $filter_sharpness - [optional] a floating point value. Default is 0. Range: [0 = off .. 7 = least sharp] ; $near_lossless - [optional] a general number value. Default is 100. Near lossless encoding [0 = max loss .. 100 = off (default)]. ; $alpha_compression - [optional] an array of unknowns. Default is 0. Algorithm for encoding the alpha plane (0 = none,1 = compressed with WebP lossless). Default is 1. ; $alpha_filtering - [optional] an array of unknowns. Default is 0. Predictive filtering method for alpha plane.0: none, 1: fast, 2: best. Default if 1. ; $alpha_quality - [optional] an array of unknowns. Default is 100. Between 0 (smallest size) and 100 (lossless). Default is 100. ; $target_size - [optional] a dll struct value. Default is 0. If non-zero, set the desired target size in bytes. ; $loop_count - [optional] an unknown value. Default is 0. 0 = endless. ; $WebPImageHint - [optional] an unknown value. Default is $WEBP_HINT_DEFAULT. ; $pCallback - [optional] a pointer value. Default is 0. Callback pointer for progress status ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 1 on success, otherwise error -> -1 to -9 ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_CreateWebPCreateAnimFromScreenCapture($x, $y, $w, $h, $sec, $sOutfile, $fps = 30, $CapCursor = 1, $quality = 75.0, $lossless = 0, $method = 0, $filter_strength = 60, $sns_strength = 50, _ $pass = 1, $filter_sharpness = 0, $near_lossless = 100, $alpha_compression = 0, $alpha_filtering = 0, $alpha_quality = 100, $target_size = 0, $loop_count = 0, _ $WebPImageHint = $WEBP_HINT_DEFAULT, $pCallback = 0, $sPath2DLL = "") If $w < 1 Or $h < 1 Or $fps < 1 Or $sec < 1 Then Return SetError(1, 0, 0) Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(2, 0, 0) ;DLL not found $loop_count = $loop_count < 0 ? 0 : $loop_count Local $tWebPConfig = DllStructCreate($tagWebPConfig) FilltWebPConfigWithDefaults($tWebPConfig) With $tWebPConfig .lossless = $lossless .quality = ($quality < 0) ? 0 : (($quality > 100) ? 100 : $quality) .method = ($method < 0) ? 0 : (($method > 6) ? 6 : $method) .image_hint = ($WebPImageHint < 0) ? 0 : (($WebPImageHint > 4) ? 4 : $WebPImageHint) .target_size = $target_size ;in bytes .sns_strength = ($sns_strength < 0) ? 0 : (($sns_strength > 100) ? 100 : $sns_strength) .filter_strength = ($filter_strength < 0) ? 0 : (($filter_strength > 100) ? 100 : $filter_strength) .filter_sharpness = ($filter_sharpness < 0) ? 0 : (($filter_sharpness > 7) ? 7 : $filter_sharpness) .alpha_compression = $alpha_compression .alpha_filtering = ($alpha_filtering < 0) ? 0 : (($alpha_filtering > 2) ? 2 : $alpha_filtering) .alpha_quality = ($alpha_quality < 0) ? 0 : (($alpha_quality > 100) ? 100 : $alpha_quality) .pass = ($pass < 0) ? 0 : (($pass > 10) ? 10 : $pass) .near_lossless = ($near_lossless < 0) ? 0 : (($near_lossless > 100) ? 100 : $near_lossless) EndWith Local $iReturn = DllCall($sDLL, "long", "WebP_CreateWebPCreateAnimFromScreenCapture", _ "long", $x, _ ;x position of the screen "long", $y, _ ;y position of the screen "ulong", $w, _ ;width of the screen to capture "ulong", $h, _ ;height of the screen to capture "long", $sec, _ ;duration in seconds "ushort", $fps, _ ;fps for capturing "str", $sOutfile, _ ;output file name "ubyte", $CapCursor, _ ;capture cursor "long", $loop_count, _ ;loop count -> 0 = endless. "struct*", $tWebPConfig, _ ;WebP config settings "ptr", $pCallback)[0] ;callback pointer for progress status If $iReturn < 1 Then Return SetError(3, 0, $iReturn) Return 1 EndFunc ;==>WebP_CreateWebPCreateAnimFromScreenCapture ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_ConvertGIF2WebP ; Description ...: Converts a GIF animation to WebP animation ; Syntax ........: WebP_ConvertGIF2WebP($sGIFAnimFile, $sOutWebPFile[, $quality = 75.0[, $lossless = 1[, $method = 6[, ; $filter_strength = 60[, $sns_strength = 50[, $pass = 10[, $filter_sharpness = 0[, ; $near_lossless = 100[, $alpha_compression = 1[, $alpha_filtering = 1[, $alpha_quality = 100[, ; $target_size = 0[, $loop_count = 0[, $WebPPreset = $WEBP_HINT_DEFAULT[, $pCallback = 0[, ; $sPath2DLL = ""]]]]]]]]]]]]]]]]) ; Parameters ....: $sGIFAnimFile - a string value. ; $sOutWebPFile - a string value. ; $quality - [optional] an unknown value. Default is 75.0. Valid range is 0 - 100. ; $lossless - [optional] an unknown value. Default is 1. 0 for lossy encoding / 1 for lossless. ; $method - [optional] a map. Default is 6. Valid range is 0 - 6 (0=fast, 6=slower-better). ; $filter_strength - [optional] a floating point value. Default is 60. Range: [0 = off .. 100 = strongest] ; $sns_strength - [optional] a string value. Default is 50. Spatial Noise Shaping. 0=off, 100=maximum ; $pass - [optional] a pointer value. Default is 10. Number of entropy-analysis passes (in [1..10]). ; $filter_sharpness - [optional] a floating point value. Default is 0. Range: [0 = off .. 7 = least sharp] ; $near_lossless - [optional] a general number value. Default is 100. Near lossless encoding [0 = max loss .. 100 = off (default)]. ; $alpha_compression - [optional] an array of unknowns. Default is 1. Algorithm for encoding the alpha plane (0 = none,1 = compressed with WebP lossless). Default is 1. ; $alpha_filtering - [optional] an array of unknowns. Default is 1. Predictive filtering method for alpha plane.0: none, 1: fast, 2: best. Default if 1. ; $alpha_quality - [optional] an array of unknowns. Default is 100. Between 0 (smallest size) and 100 (lossless). Default is 100. ; $target_size - [optional] a dll struct value. Default is 0. If non-zero, set the desired target size in bytes. ; $loop_count - [optional] an unknown value. Default is 0. 0 = endless. ; $WebPPreset - [optional] an unknown value. Default is $WEBP_HINT_DEFAULT. ; $pCallback - [optional] a pointer value. Default is 0. ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: 1 on success, otherwise error -> -1 to -11 ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_ConvertGIF2WebP($sGIFAnimFile, $sOutWebPFile, $quality = 75.0, $lossless = 1, $method = 6, $filter_strength = 60, $sns_strength = 50, _ $pass = 10, $filter_sharpness = 0, $near_lossless = 100, $alpha_compression = 1, $alpha_filtering = 1, $alpha_quality = 100, _ $target_size = 0, $loop_count = 0, $WebPImageHint = $WEBP_HINT_DEFAULT, $pCallback = 0, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If $sOutWebPFile = "" Then Return SetError(2, 0, 0) If StringRight($sOutWebPFile, 5) <> ".webp" Then $sOutWebPFile &= ".webp" $loop_count = $loop_count < 0 ? 0 : $loop_count Local $tWebPConfig = DllStructCreate($tagWebPConfig) FilltWebPConfigWithDefaults($tWebPConfig) With $tWebPConfig .lossless = $lossless .quality = ($quality < 0) ? 0 : (($quality > 100) ? 100 : $quality) .method = ($method < 0) ? 0 : (($method > 6) ? 6 : $method) .image_hint = ($WebPImageHint < 0) ? 0 : (($WebPImageHint > 4) ? 4 : $WebPImageHint) .target_size = $target_size ;in bytes .sns_strength = ($sns_strength < 0) ? 0 : (($sns_strength > 100) ? 100 : $sns_strength) .filter_strength = ($filter_strength < 0) ? 0 : (($filter_strength > 100) ? 100 : $filter_strength) .filter_sharpness = ($filter_sharpness < 0) ? 0 : (($filter_sharpness > 7) ? 7 : $filter_sharpness) .alpha_compression = $alpha_compression .alpha_filtering = ($alpha_filtering < 0) ? 0 : (($alpha_filtering > 2) ? 2 : $alpha_filtering) .alpha_quality = ($alpha_quality < 0) ? 0 : (($alpha_quality > 100) ? 100 : $alpha_quality) .pass = ($pass < 0) ? 0 : (($pass > 10) ? 10 : $pass) .near_lossless = ($near_lossless < 0) ? 0 : (($near_lossless > 100) ? 100 : $near_lossless) EndWith Local $iReturn = DllCall($sDLL, "long", "WebP_ConvertGIF2WebP", _ "str", $sGIFAnimFile, _ ;GIF animated input file "str", $sOutWebPFile, _ ;WebP animation output file "long", $loop_count, _ ;loop count -> 0 = endless "struct*", $tWebPConfig, _ ;WebP config settings "ptr", $pCallback)[0] ;callback pointer for progress status If $iReturn < 1 Then Return SetError(3, 0, $iReturn) Return 1 EndFunc ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_ConvertAPNG2WebP ; Description ...: Converts a PNG animation to WebP animation ; Syntax ........: WebP_ConvertAPNG2WebP($sAPNGAnimFile, $sOutWebPFile[, $quality = 75.0[, $lossless = 1[, $method = 5[, ; $filter_strength = 60[, $sns_strength = 50[, $pass = 10[, $filter_sharpness = 0[, ; $near_lossless = 100[, $alpha_compression = 1[, $alpha_filtering = 1[, $alpha_quality = 100[, ; $target_size = 0[, $loop_count = 0[, $WebPPreset = $WEBP_HINT_DEFAULT[, $iDefaultDelay = 50[, ; $pCallback = 0[, $sPath2DLL = ""]]]]]]]]]]]]]]]]]]) ; Parameters ....: $sAPNGAnimFile - a string value. ; $sOutWebPFile - a string value. ; $quality - [optional] an unknown value. Default is 75.0. Valid range is 0 - 100. ; $lossless - [optional] an unknown value. Default is 1. 0 for lossy encoding / 1 for lossless. ; $method - [optional] a map. Default is 6. Valid range is 0 - 6 (0=fast, 6=slower-better). ; $filter_strength - [optional] a floating point value. Default is 60. Range: [0 = off .. 100 = strongest] ; $sns_strength - [optional] a string value. Default is 50. Spatial Noise Shaping. 0=off, 100=maximum ; $pass - [optional] a pointer value. Default is 10. Number of entropy-analysis passes (in [1..10]). ; $filter_sharpness - [optional] a floating point value. Default is 0. Range: [0 = off .. 7 = least sharp] ; $near_lossless - [optional] a general number value. Default is 100. Near lossless encoding [0 = max loss .. 100 = off (default)]. ; $alpha_compression - [optional] an array of unknowns. Default is 1. Algorithm for encoding the alpha plane (0 = none,1 = compressed with WebP lossless). Default is 1. ; $alpha_filtering - [optional] an array of unknowns. Default is 1. Predictive filtering method for alpha plane.0: none, 1: fast, 2: best. Default if 1. ; $alpha_quality - [optional] an array of unknowns. Default is 100. Between 0 (smallest size) and 100 (lossless). Default is 100. ; $target_size - [optional] a dll struct value. Default is 0. If non-zero, set the desired target size in bytes. ; $loop_count - [optional] an unknown value. Default is 0. 0 = endless. ; $WebPPreset - [optional] an unknown value. Default is $WEBP_HINT_DEFAULT. ; $iDefaultDelay - [optional] an integer value. Default is 50. ; $pCallback - [optional] a pointer value. Default is 0. ; $sPath2DLL - [optional] a string value. Default is "". ; Return values .: 1 on success, otherwise error -> -1 to -13 ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_ConvertAPNG2WebP($sAPNGAnimFile, $sOutWebPFile, $quality = 75.0, $lossless = 1, $method = 6, $filter_strength = 60, $sns_strength = 50, _ $pass = 10, $filter_sharpness = 0, $near_lossless = 100, $alpha_compression = 1, $alpha_filtering = 1, $alpha_quality = 100, _ $target_size = 0, $loop_count = 0, $WebPImageHint = $WEBP_HINT_DEFAULT, $iDefaultDelay = 50, $pCallback = 0, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If $sOutWebPFile = "" Then Return SetError(2, 0, 0) If StringRight($sOutWebPFile, 5) <> ".webp" Then $sOutWebPFile &= ".webp" $loop_count = $loop_count < 0 ? 0 : $loop_count Local $tWebPConfig = DllStructCreate($tagWebPConfig) FilltWebPConfigWithDefaults($tWebPConfig) With $tWebPConfig .lossless = $lossless .quality = ($quality < 0) ? 0 : (($quality > 100) ? 100 : $quality) .method = ($method < 0) ? 0 : (($method > 6) ? 6 : $method) .image_hint = ($WebPImageHint < 0) ? 0 : (($WebPImageHint > 4) ? 4 : $WebPImageHint) .target_size = $target_size ;in bytes .sns_strength = ($sns_strength < 0) ? 0 : (($sns_strength > 100) ? 100 : $sns_strength) .filter_strength = ($filter_strength < 0) ? 0 : (($filter_strength > 100) ? 100 : $filter_strength) .filter_sharpness = ($filter_sharpness < 0) ? 0 : (($filter_sharpness > 7) ? 7 : $filter_sharpness) .alpha_compression = $alpha_compression .alpha_filtering = ($alpha_filtering < 0) ? 0 : (($alpha_filtering > 2) ? 2 : $alpha_filtering) .alpha_quality = ($alpha_quality < 0) ? 0 : (($alpha_quality > 100) ? 100 : $alpha_quality) .pass = ($pass < 0) ? 0 : (($pass > 10) ? 10 : $pass) .thread_level = 1 .near_lossless = ($near_lossless < 0) ? 0 : (($near_lossless > 100) ? 100 : $near_lossless) EndWith $iDefaultDelay = ($iDefaultDelay < 0) ? 0 : $iDefaultDelay Local $iReturn = DllCall($sDLL, "long", "WebP_ConvertAPNG2WebP", _ "str", $sAPNGAnimFile, _ ;GIF animated input file "str", $sOutWebPFile, _ ;WebP animation output file "long", $loop_count, _ ;loop count -> 0 = endless "long", $iDefaultDelay, _ ;delay of each frame "struct*", $tWebPConfig, _ ;WebP config settings "ptr", $pCallback)[0] ;callback pointer for progress status If $iReturn < 1 Then Return SetError(3, 0, $iReturn) Return 1 EndFunc ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_GetAnimFileInfo ; Description ...: Get information about a WebP anim file ; Syntax ........: WebP_GetAnimFileInfo($sFilename, Byref $tAnimInfo[, $sPath2DLL = ""]) ; Parameters ....: $sFilename - path to webp anim file. ; $tAnimInfo - [in/out] a dll struct value. Must be "ulong Width;ulong Height;ulong FrameCount;ulong Duration;double FPS" ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 1 on success, otherwise error -> -1 to -6 ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_GetAnimFileInfo($sFilename, ByRef $tAnimInfo, $sPath2DLL = "") If Not FileExists($sFilename) Then Return SetError(1, 0, 0) Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(2, 0, 0) ;DLL not found Local $iReturn = DllCall($sDLL, "long", "WebP_GetAnimFileInfo", "str", $sFilename, "struct*", $tAnimInfo)[0] If @error Or $iReturn < 1 Then SetError(3, 0, $iReturn) Return $iReturn EndFunc ;==>WebP_GetAnimFileInfo ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_GetImagesDiffFromFile ; Description ...: Displays the difference of two WebP images. ; Syntax ........: WebP_GetImagesDiffFromFile($sFilename1, $sFilename2[, $iMetricType = 1[, $sPath2DLL = ""]]) ; Parameters ....: $sFilename1 - a string value. First WebP image filename. ; $sFilename2 - a string value. Second WebP image filename. ; $iMetricType - [optional] an integer value. Default is 1. Valid values 0 - 2. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: array with distortion values, otherwise error ; Author ........: UEZ ; Modified ......: ; Remarks .......: Possible metric type: ; 0: PSNR - Peak signal-to-noise ratio - measures numerical deviation (higher = better). ; Value range Interpretation ; > 50 dB Excellent quality - barely visible ; 40-50 dB Very good quality ; 30-40 dB Good to medium quality ; < 30 dB Clearly visible losses ; 1: SSIM - Structural Similarity Index - takes visual perception into account (0 - 100, closer to 100 = better). ; Value range Interpretation ; 95 - 100 Almost identical / perfect quality ; 90 - 95 Very good quality ; 85 - 90 Good quality ; < 85 Visible structural differences ; 2: LSIM - Local Similarity - more detailed, for local differences (more experimental). Same as SSIM. ; ; Both images must have same dimension! ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_GetImagesDiffFromFile($sFilename1, $sFilename2, $iMetricType = 1, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If Not FileExists($sFilename1) Then Return SetError(2, 0, 0) If Not FileExists($sFilename2) Then Return SetError(3, 0, 0) $iMetricType = ($iMetricType > 2) ? 2 : ($iMetricType < 0 ? 0 : $iMetricType) Local $tDistortion = DllStructCreate("float d[5]") Local $iReturn = DllCall($sDLL, "long", "WebP_GetImagesDiffFromFile", "str", $sFilename1, "str", $sFilename2, "long", $iMetricType, "ptr*", DllStructGetPtr($tDistortion))[0] If $iReturn < 1 Then SetError(4, 0, $iReturn) Local $aDistortion[5] = [$tDistortion.d((1)), $tDistortion.d((2)), $tDistortion.d((3)), $tDistortion.d((4)), $tDistortion.d((5))] Return $aDistortion EndFunc ;==>WebP_GetImagesDiffFromFile ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_ScaleImage ; Description ...: Resizes a WebP image. ; Syntax ........: WebP_ScaleImage($sSourceFile, $iW, $iH, $sDestFile[, $sPath2DLL = ""]) ; Parameters ....: $sSourceFile - source WebP file to load. ; $iW - an integer value. ; $iH - an integer value. ; $sDestFile - destination WebP file to save. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 1 on success, otherwise error -> -1 to -9 ; Author ........: UEZ ; Modified ......: ; Remarks .......: Resized image will be saved lossless. ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_ScaleImage($sSourceFile, $iW, $iH, $sDestFile, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found Local $iReturn = DllCall($sDLL, "long", "WebP_ScaleImage", "str", $sSourceFile, "long", $iW, "long", $iH, "str", $sDestFile)[0] If $iReturn < 1 Then SetError(2, 0, $iReturn) Return 1 EndFunc ;==>WebP_ScaleImage ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_GetImageQuality ; Description ...: Estimates the quality of a WebP image. ; Syntax ........: WebP_GetImageQuality($sFilename[, $sPath2DLL = ""]) ; Parameters ....: $sFilename - source WebP file to load. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: the quality of the WebP image. 0 - 100 for lossy - 101 for lossless. 0 or negative value on error. ; Author ........: UEZ ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_GetImageQuality($sFilename, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If Not FileExists($sFilename) Then Return SetError(2, 0, 0) Local $iReturn = DllCall($sDLL, "long", "WebP_GetImageQuality", "str", $sFilename)[0] If $iReturn < 0 Then SetError(3, 0, $iReturn) Return $iReturn EndFunc ;==>WebP_GetImageQuality ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_PlayAnimFile ; Description ...: Plays an animated WebP file and display it in the GUI ; Syntax ........: WebP_PlayAnimFile($sFilename, $hGUI[, $w = 0[, $h = 0[, $pCallback = 0[, $sPath2DLL = ""]]]]) ; Parameters ....: $sFilename - path to webp anim file. ; $hGUI - the handle to the GUI to copy the frames to it. ; $w - [optional] an unknown value. Default is 0. If 0 the width from the animation file will be used. ; $h - [optional] a handle value. Default is 0. If 0 the height from the animation file will be used. ; $pCallback - [optional] a pointer value. Default is 0. ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: a pointer to the thread on success, otherwise error -> 0 ; Author ........: UEZ ; Modified ......: ; Remarks .......: Don't use $pCallback yet because it is not working properly! Don't forget DllClose($g_hDLL) when done! DllOpen must be used otherwise crash. ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_PlayAnimFile($sFilename, $hGUI, $w = 0, $h = 0, $pCallback = 0, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If Not FileExists($sFilename) Then Return SetError(2, 0, 0) $g_hDLL = DllOpen($sDLL) Local $pReturn = DllCall($g_hDLL, "ptr", "WebP_PlayAnimFile", "str", $sFilename, "hwnd", HWnd($hGUI), "ulong", $w, "ulong", $h, "ptr", $pCallback)[0] If $pReturn = 0 Then SetError(3, 0, 0) Return $pReturn EndFunc ; #FUNCTION# ==================================================================================================================== ; Name ..........: WebP_StopAnimFile ; Description ...: Stops the animation which was started by WebP_PlayAnimFile() function. ; Syntax ........: WebP_StopAnimFile($pThread[, $sPath2DLL = ""]) ; Parameters ....: $pThread - a thread parameter pointer ; $sPath2DLL - [optional] a string value. Default is "". Path to WebP dll if not in script dir. ; Return values .: 1 on success, otherwise error -> -1 ; Author ........: UEZ ; Modified ......: ; Remarks .......: You must call WebP_PlayAnimFile() before you call WebP_StopAnimFile()! Don't forget DllClose($g_hDLL) when done! ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func WebP_StopAnimFile($pThread, $sPath2DLL = "") Local $sDLL = Path2DLL($sPath2DLL) If Not FileExists($sDLL) Then Return SetError(1, 0, 0) ;DLL not found If Not $g_hDLL Then Return SetError(2, 0, 0) Local $iReturn = DllCall($g_hDLL, "long", "WebP_StopAnimFile", "ptr", $pThread)[0] If $iReturn < 1 Then SetError(3, 0, $iReturn) Return $iReturn EndFunc ; #FUNCTION# ==================================================================================================================== ; Name ..........: _WinAPI_MarkScreenRegion ; Description ...: Selected area on desktop will be captured and save to clipbord or GDI bitmap handle will be returned. ; Syntax ........: _WinAPI_MarkScreenRegion([$iFillMode = 0]) ; Parameters ....: $iFillMode - [optional] an integer value. Default is 0. ; 0: marked area filled with solid color ; 1: marked area filled with hatch pattern ($HS_DIAGCROSS) ; 2: marked area without any fill pattern / color - only red border ; Return values .: 0 / 1 / -1 / array with coordinates [x, y, w, h] ; Author ........: UEZ ; Version .......: 0.90 build 2025-06-27 ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: no ; =============================================================================================================================== Func _WinAPI_MarkScreenRegion($iFillMode = 0) If @OSBuild > 6299 Then ;https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx DllCall("Shcore.dll", "long", "PROCESS_DPI_AWARENESS", 1) ;PROCESS_SYSTEM_DPI_AWARE = 1 (https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx) Else DllCall("User32.dll", "bool", "SetProcessDPIAware") EndIf Local $iOld = AutoItSetOption("MouseCoordMode", 1) Local Const $hDesktop = WinGetHandle("[TITLE:Program Manager;CLASS:Progman]") Local Const $aFullScreen = WinGetPos($hDesktop) ;should work also on multi screens Local Const $iW = $aFullScreen[2], $iH = $aFullScreen[3] Local Const $hGUI_MarkScreen = GUICreate("", $iW, $iH, $aFullScreen[0], $aFullScreen[1], $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED)) GUISetState(@SW_SHOW, $hGUI_MarkScreen) Local Const $hDC = _WinAPI_GetDC($hGUI_MarkScreen) Local Const $hGfxDC = _WinAPI_CreateCompatibleDC($hDC) Local Const $hBitmapGDI = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local $hObjOld = _WinAPI_SelectObject($hGfxDC, $hBitmapGDI) Local $tSize = DllStructCreate($tagSIZE) $tSize.x = $iW $tSize.y = $iH Local $tSource = DllStructCreate($tagPOINT) Local $tBlend = DllStructCreate($tagBLENDFUNCTION) $tBlend.Alpha = 0xFF $tBlend.Format = 1 Local $tDest = DllStructCreate($tagPOINT), $pPoint = DllStructGetPtr($tDest) $tDest.x = $aFullScreen[0] $tDest.y = $aFullScreen[1] Local Const $hPen = _WinAPI_CreatePen($PS_SOLID, 1, 0x0000FF) Local Const $hPen_Orig = _WinAPI_SelectObject($hGfxDC, $hPen) Local $hBrush, $iAlpha2, $iFlag $iFillMode = $iFillMode > 2 ? 2 : $iFillMode < 0 ? 0 : $iFillMode Switch $iFillMode Case 0 $hBrush = _WinAPI_CreateBrushIndirect($BS_SOLID, 0x808080) $iAlpha2 = 0xA0 $iFlag = $ULW_ALPHA Case 1 $hBrush = _WinAPI_CreateBrushIndirect($BS_HATCHED, 0x808000, $HS_DIAGCROSS) $iAlpha2 = 0x30 $iFlag = $ULW_ALPHA Case 2 $hBrush = _WinAPI_CreateBrushIndirect($BS_HOLLOW, 0x000000) $iAlpha2 = 0xFF ;not needed $iFlag = $ULW_COLORKEY EndSwitch Local $hBrush_Orig = _WinAPI_SelectObject($hGfxDC, $hBrush) Local $aMPos[5], $aMPos_old[4], $tRECT = _WinAPI_CreateRect(0, 0, 0, 0) Do GUISetCursor(16, 1, $hGUI_MarkScreen) $aMPos = GUIGetCursorInfo($hGUI_MarkScreen) $aMPos_old[0] = $aMPos[0] $aMPos_old[1] = $aMPos[1] $aMPos_old[2] = MouseGetPos(0) $aMPos_old[3] = MouseGetPos(1) Switch $aMPos[2] Case 0 ;display crosshair _WinAPI_BitBlt($hGfxDC, 0, 0, $iW, $iH, $hGfxDC, 0, 0, $CAPTUREBLT) _WinAPI_DrawLine($hGfxDC, $tDest.x, $aMPos[1], $iW, $aMPos[1]) _WinAPI_DrawLine($hGfxDC, $aMPos[0], $tDest.y, $aMPos[0], $iH) _WinAPI_UpdateLayeredWindow($hGUI_MarkScreen, $hDC, $tDest, $tSize, $hGfxDC, $tSource, 0, $tBlend, $ULW_COLORKEY) Case 1 ; $tBlend.Alpha = $iAlpha2 While $aMPos[2] ;mark region GUISetCursor(14, 1, $hGUI_MarkScreen) ;WinGetHandle(AutoItWinGetTitle())) $aMPos = GUIGetCursorInfo($hGUI_MarkScreen) _WinAPI_BitBlt($hGfxDC, 0, 0, $iW, $iH, $hGfxDC, 0, 0, $CAPTUREBLT) ;clear bitmap ;draw rectangle $tRECT.Left = $aMPos_old[0] $tRECT.Top = $aMPos_old[1] $tRECT.Right = $aMPos[0] $tRECT.Bottom = $aMPos[1] _WinAPI_Rectangle($hGfxDC, $tRECT) If $iFillMode <> 2 Then _WinAPI_InvertRect($hGfxDC, $tRECT) _WinAPI_UpdateLayeredWindow($hGUI_MarkScreen, $hDC, $tDest, $tSize, $hGfxDC, $tSource, 0, $tBlend, $iFlag) Sleep(10) WEnd _WinAPI_SelectObject($hGfxDC, $hObjOld) _WinAPI_ReleaseDC($hGUI_MarkScreen, $hDC) _WinAPI_DeleteDC($hGfxDC) _WinAPI_DeleteObject($hBitmapGDI) _WinAPI_SelectObject($hGfxDC, $hPen_Orig) _WinAPI_DeleteObject($hPen) _WinAPI_SelectObject($hGfxDC, $hBrush_Orig) _WinAPI_DeleteObject($hBrush) GUIDelete($hGUI_MarkScreen) AutoItSetOption("MouseCoordMode", $iOld) Local $aCoords[4] = [($aMPos[0] > $aMPos_old[2] ? $aMPos_old[2] : $aMPos[0]), ($aMPos[1] > $aMPos_old[3] ? $aMPos_old[3] : $aMPos[1]), Abs($tRECT.Right - $tRECT.Left) + 1, Abs($tRECT.Bottom - $tRECT.Top) + 1] Return $aCoords EndSwitch Switch GUIGetMsg() Case $GUI_EVENT_CLOSE _WinAPI_SelectObject($hGfxDC, $hObjOld) _WinAPI_ReleaseDC($hGUI_MarkScreen, $hDC) _WinAPI_DeleteDC($hGfxDC) _WinAPI_DeleteObject($hBitmapGDI) _WinAPI_SelectObject($hGfxDC, $hPen_Orig) _WinAPI_DeleteObject($hPen) GUIDelete($hGUI_MarkScreen) AutoItSetOption("MouseCoordMode", $iOld) Return -1 EndSwitch Until False EndFunc ;==>_WinAPI_MarkScreenRegion ; #INTERNAL_USE_ONLY#============================================================================================================ ; Name...........: Path2DLL ; Description ...: Return the path to the _WebP_x??.dll ; Author ........: UEZ ; Modified.......: ; Remarks .......: This function is used internally by WebP.au3 ; =============================================================================================================================== Func Path2DLL($sPath2DLL = "") Return $sPath2DLL ? $sPath2DLL : @ScriptDir & (@AutoItX64 ? "\_WebP_x64.dll" : "\_WebP_x86.dll") EndFunc ;==>Path2DLL Func FilltWebPConfigWithDefaults(ByRef $tWebPConfig) With $tWebPConfig .lossless = 0 .quality = 75 .method = 4 .image_hint = 0 .target_size = 0 .target_PSNR = 0 .segments = 4 .sns_strength = 50 .filter_strength = 60 .filter_sharpness = 0 .filter_type = 1 .autofilter = 0 .alpha_compression = 1 .alpha_filtering = 1 .alpha_quality = 100 .pass = 1 .show_compressed = 0 .preprocessing = 0 .partitions = 0 .partition_limit = 0 .emulate_jpeg_size = 0 .thread_level = 0 .low_memory = 0 .near_lossless = 100 .exact = 0 .use_delta_palette = 0 .use_sharp_yuv = 0 .qmin = 0 .qmax = 100 EndWith EndFunc pixelsearch 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Danyfirex Posted Thursday at 06:51 PM Posted Thursday at 06:51 PM Are you sure is an AutoIt issue? I tested with PureBasic and still can't use that api. I tested with GetMonitorCount and it works fine. Can you provide a working example using FB? Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut
UEZ Posted Thursday at 07:11 PM Author Posted Thursday at 07:11 PM (edited) 22 minutes ago, Danyfirex said: Are you sure is an AutoIt issue? I tested with PureBasic and still can't use that api. I tested with GetMonitorCount and it works fine. Can you provide a working example using FB? Saludos Look here for ScreenCapture2WebPAnim.7z Start ScreenCapture2WebPAnim.exe (x64 compiled as console app) and it will record main screen for 20 seconds and save the result to Capture_1920x1080.webp. Requires Win10 build 18362+! It calls the function WebP_CreateWebPCreateAnimFromGraphicsCapture in the WebP DLL which calls GraphicsCaptureWrapper DLL. expandcollapse popupFunction WebP_CreateWebPCreateAnimFromGraphicsCapture(_ ByVal x As Long, ByVal y As Long, ByVal w As Long, ByVal h As Long, ByVal sec As Long, ByVal fps As UShort, ByVal sFileOut As WString Ptr, _ ByVal CapCursor As UByte = 0, ByVal loopcount As Long = 0, ByVal pWebPConfig As WebPConfig Ptr, ByVal pCallback As Any Ptr = 0) As Long Export If OS.dwBuildNumber < 18362 Then Return -1 If w < 1 OrElse h < 1 Then Return -2 If sec < 1 Then Return -3 If fps < 1 Then Return -4 If sFileOut = 0 Then Return -5 Dim As Long actualW, actualH, result result = InitRegionCapture(x, y, w, h, actualW, actualH) If result <> 1 Then Return -6 pWebPConfig->thread_level = 1 If WebPValidateConfig(pWebPConfig) = 0 Then Return -8 Dim As WebPAnimEncoderOptions enc_options WebPAnimEncoderOptionsInit(@enc_options) 'enc_options.verbose = 1 Dim As WebPAnimEncoder Ptr pEnc = WebPAnimEncoderNew(actualW, actualH, @enc_options) Dim As WebPPicture pic If WebPPictureAlloc(@pic) <> VP8_STATUS_OK Then WebPPictureFree(@pic) Return -9 End If If WebPPictureInitInternal(@pic, WEBP_ENCODER_ABI_VERSION) = 0 Then Return -10 pic.width = actualW pic.height = actualH pic.use_argb = 1 If pCallback Then AutoItProgressCB = Cast(AutoItProgressCallback, pCallback) ' Buffer vorbereiten Dim As Long stride = actualW * 4 Dim As ULong bufferSize = stride * actualH Dim frameBuffer As UByte Ptr = Allocate(bufferSize) If frameBuffer = 0 Then WebPPictureFree(@pic) Return -11 End If timeBeginPeriod(1) Dim As Long frame_delay_ms = 1000 \ fps, total_frames = sec * fps, maxDuration = sec * 1000, delay Dim As Integer timestamp_ms = 0 Dim As Long frameIndex, frameResult timeBeginPeriod(1) Dim As LONGLONG tStart = SafeGetTickCount64(), tCurrent Dim As Double fTimer = Timer, fEnd, fTimerSleep While True fTimerSleep = Timer timestamp_ms = SafeGetTickCount64() - tStart If AutoItProgressCB <> 0 Then If AutoItProgressCB(timestamp_ms / maxDuration * 100, 0) = 0 Then Exit While End If frameResult = GetCapturedFrame(frameBuffer, bufferSize) If frameResult = 1 Then WebPPictureImportBGRA(@pic, frameBuffer, stride) WebPAnimEncoderAdd(pEnc, @pic, timestamp_ms, pWebPConfig) frameIndex += 1 End If If SafeGetTickCount64() - tStart > maxDuration Then Exit While delay = frame_delay_ms - (Timer - fTimerSleep) Sleep(IIf(delay < 0, 0, delay) , 1) Wend fEnd = Timer - fTimer timeEndPeriod(1) WebPPictureFree(@pic) WebPAnimEncoderAdd(pEnc, NULL, frameIndex * frame_delay_ms, NULL) Dim As WebPData webp_data WebPDataInit(@webp_data) If WebPAnimEncoderAssemble(pEnc, @webp_data) = 0 Then WebPDataClear(@webp_data) WebPAnimEncoderDelete(pEnc) Deallocate(frameBuffer) CleanupCapture() Return -12 End If ' Loop Count setzen loopcount = IIf(loopcount < 0, 0, loopcount) Dim As WebPMux Ptr pMux = WebPMuxCreate(@webp_data, 1) Dim As WebPMuxAnimParams new_params WebPMuxGetAnimationParams(pMux, @new_params) new_params.loop_count = loopcount WebPMuxSetAnimationParams(pMux, @new_params) WebPMuxAssemble(pMux, @webp_data) WebPMuxDelete(pMux) WebPAnimEncoderDelete(pEnc) Deallocate(frameBuffer) CleanupCapture() ' Datei speichern If webp_data.size > 0 Then If SaveWebPImageBin(sFileOut, webp_data.size, Cast(UByte Ptr, webp_data.bytes)) < 1 Then WebPDataClear(@webp_data) Return -13 End If Else WebPDataClear(@webp_data) Return -14 End If WebPDataClear(@webp_data) Return 1 End Function In that function InitRegionCapture() will be called to init screen region. Edited Thursday at 07:14 PM by UEZ argumentum 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
pixelsearch Posted Friday at 02:52 PM Posted Friday at 02:52 PM (edited) On 8/20/2025 at 10:10 PM, UEZ said: Can you please check for the latest x86 version for the examples? Wow you're a genius A couple of hours ago, you reverted from 0.5.1 to a new build of 0.5.0 (dated Aug 22, 2025) So I downloaded the revised 0.5.0 dll & WebP.au3 and nearly all examples work by my side, which means the options you took when compiling the dll make it work again with all OS's, bravo ! Example 03 ("WebP information" confirms the dll version used : So now even examples 17 & 18 work (they require version 0.5.0+) I didn't test yet all examples but I got a problem with 2 examples : 1) Minor issue : example15 requires "Rostislav Uzunov Animation 960x540@30FPS.webp" but thid file is not found on 1drv (I guess) Changing the string with "Rostislav Uzunov Animation 480x270@30FPS.webp" or "Rostislav Uzunov Animation 1920x1080@30FPS.webp" makes it work, no big deal 2) Example 09 (WebP animation from screen capture) only displays an empty GUI with white background. It worked fine with 0.4.4 but it doesn't with revised 0.5.0 (on my PC) . No more mouse moves or typed text are captured in it. But you'll find a solution for sure, that's why you created this thread I guess, fingers crossed Edited Friday at 03:59 PM by pixelsearch typo UEZ 1 "I think you are searching a bug where there is no bug... don't listen to bad advice."
UEZ Posted Friday at 04:11 PM Author Posted Friday at 04:11 PM (edited) Thanks for your feedback. 1) I uploaded the missing animation. 2) I tested it with x86 and the capturing worked. Did you get an error message? The difference between the two is only slight. In 0.5.0 file exists is using winapi unicode version instead of FB built-in function. _WinAPI_FileExistsW() is also used by several other functions. Another difference is the declaration of a variable: old: long, new: integer. Btw, why are you still on WinXP? Edited Friday at 04:13 PM by UEZ pixelsearch 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
pixelsearch Posted Friday at 07:34 PM Posted Friday at 07:34 PM (edited) 3 hours ago, UEZ said: Btw, why are you still on WinXP? Some severe health issues (1st one is a very bad sight after retina surgery in 2000) + not really young any more (born in 1951, do the math...) so I'm not into learning new OS's . Happy with I've got... as long as it will last 3 hours ago, UEZ said: I tested it with x86 and the capturing worked. Did you get an error message? No error message at all. Here are my results of example09 (screen capture), I did change $iRecordSeconds from 10s to 5s to get smaller attached WebP animated files : 1) 0.4.4 2) 0.5.0 (August 22, 2025) It seems I (we ?) can't upload Web files within the post, so I'll attach both Web animated files in a zip file if it helps : 0.4.4 and 0.5.0 Captured.webP.zip imho I don't think it's worth investigating if example09 (screen capture) works fine for everybody but me. If I need to capture the screen to create a WebP animated file, then I'll use dll's 0.4.4, which are kept in separate subfolders : Big thanks for your hard work Edited Friday at 07:38 PM by pixelsearch "I think you are searching a bug where there is no bug... don't listen to bad advice."
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now