Leaderboard
Popular Content
Showing content with the highest reputation on 04/11/2021 in all areas
-
About dialog with credits area
t0nZ and one other reacted to Professor_Bernd for a topic
An about dialog is a nice little thing, often hardly bigger than a message box and usually just a minor thing. But almost every program has an about dialog, if only to put its "stamp" on it, insert a contact address or a copyright. Then there are the thank you notes, which in the 00's liked to be spiced up with some great effects, like vertical ticker, like in the credits of a movie. But who likes to watch the credits of a movie? I think it's nicer if you can scroll the credits yourself, as fast and as slow as you want. So that's what it should be: An about dialog, where you can nicely display the name of the program with your own name, maybe show a version number, and with buttons and link labels you can click on, which will then open the web or email address. Oh yeah, and an area where you can express your thanks to everyone involved. So I searched the DE forum here and the EN forum for example codes for an about dialog with credits area. You would think that there should be a lot of them, because about dialogs already existed in the computer stone age. But far from it: I found only 2 code examples. Both dialogs lacked a credits area, but - yay! - there were LinkLabels. So I was one step further. Here in the forum I created a thread asking if someone could provide me with a nice About dialog. Even the first reply was promising and suggested using a RichEdit and loading an RTF file into it. Nice stuff. Unfortunately I had probably put my request too vague, because instead of the code for the about dialog I was only provided with a picture of the dialog. Based on the tips and suggestions I developed my own code and provide it here. The About dialog is relatively large and consists of a RichEdit that takes up the left and middle areas of the dialog. In the right area there are labels and buttons. In the RichEdit you can show an about text as well as the credits, which you can scroll through manually. Preview Settings I tried to keep the configuration simple. Probably it would have become rather complex to gather all configuration options in one place. Now it became 3 different places, which I marked with double lines well visibly and the code remained clear. To set your own settings, it is sufficient to make changes in these areas. So settings for the title bar and the right area with the labels and buttons can be made. Settings for the text in RichEdit are made in the RTF file, also links for web and e-mail addresses are set up in the RTF file. The finished file is then simply loaded into RichEdit. The path to the RTF file can be customized in the code in the first settings area. Relative paths are possible, e.g. "..\..\About.rtf". I have added an example RTF file: "About.rtf". My example RTF file was created with "LibreOffice Writer". Probably you can open it with any higher office program and design it according to your own ideas. Unfortunately, I don't have MS Office available at the moment to check this. Important: With MS WordPad you cannot edit the existing example RTF file! (The data will be unreadable). But you can create your own RTF file with MS WordPad and use it in the about dialog. The same applies to MS Office: If the existing RTF file cannot be edited, simply create a new one and design it according to your own wishes. Feedback is welcome. Version 0.0.12.2 First published Version. Version 0.0.12.5 Added: Ability to display the RichEdit with or without borders. Bugfix: When you scrolled the RichEdit with the scrollbar, the text and the scrollbar flickered. - Thanks to UEZ for finding this issue. 👍 Version 0.0.12.6 Added: Hide caret when the RichEdit is scrolled with the scrollbar. Nevertheless, the caret sometimes flashes a little when scrolling. Bugfix: Converted the background color value for the RichEdit from RGB to BGR. About Dialog 0.0.12.6 (Professor Bernd).zip2 points -
2 points
-
About dialog with credits area
pixelsearch reacted to Professor_Bernd for a topic
Cool! 😎 I found a solution here and here to change the ExStyle after creating the RichEdit. But that is not necessary here. So I'm using your tip that removes the border already when creating the RichEdit. I'll include a switch to select whether the RichEdit should have a frame or not. Thanks to all the contributors! 👍 - Now you are also in the credits. -1 point -
About dialog with credits area
Professor_Bernd reacted to pixelsearch for a topic
Hi Professor_Bernd Just remove the default $WS_EX_CLIENTEDGE extended style applied to the rich edit control $WS_EX_CLIENTEDGE : "Specifies that a window has a border with a sunken edge." $g_hRichEdit = _GUICtrlRichEdit_Create($g_hGui, "", 10, 10, 440, 340, BitOR($ES_MULTILINE, $WS_HSCROLL, $WS_VSCROLL, $ES_READONLY)) becoming $g_hRichEdit = _GUICtrlRichEdit_Create($g_hGui, "", 10, 10, 440, 340, BitOR($ES_MULTILINE, $WS_HSCROLL, $WS_VSCROLL, $ES_READONLY), 0)1 point -
I like this Aboutbox by @UEZ. I added DPI, singleton and drag support to meet my needs. I'm sharing my modified project in the hopes of helping others use what UEZ shared here. #NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Res_Description=About Box #AutoIt3Wrapper_UseX64=y #AutoIt3Wrapper_Res_HiDpi=Y #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3" #AutoIt3Wrapper_Run_Au3Stripper=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GDIPlus.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPIDiag.au3> Func _SingletonHwID($sUniqueName) ;multi app detection Local $iReturn, $sOccurenceName = _WinAPI_UniqueHardwareID(0) $sOccurenceName &= '_' & $sUniqueName Local $hAutoItWnd = WinGetHandle($sOccurenceName) If @error Then AutoItWinSetTitle($sOccurenceName & @AutoItPID) $hAutoItWnd = WinGetHandle($sOccurenceName & @AutoItPID) AutoItWinSetTitle($sOccurenceName) Local Const $hControl = ControlGetHandle($hAutoItWnd, '', 'Edit1') ControlSetText($hAutoItWnd, '', $hControl, ControlGetText($hAutoItWnd, '', $hControl) & @CRLF & '|SINGLETON_HWID:' & @AutoItPID & @CRLF) Else $iReturn = Int(StringRegExp(ControlGetText($hAutoItWnd, '', ControlGetHandle($hAutoItWnd, '', 'Edit1')) & @CRLF & _ '|SINGLETON_HWID:0' & @CRLF, '\|SINGLETON_HWID:(\d+)\R', 3)[0]) EndIf Return $iReturn EndFunc ;==>_SingletonHwID SingleApp() Func SingleApp() ; multi app handling Local $iSingleton = _SingletonHwID(@ScriptName) If $iSingleton <> "" Then Local $script, $wins, $w, $handle $script = @AutoItPID $wins = WinList('About') For $w = 1 To $wins[0][0] $handle = $wins[$w][1] WinActivate($handle) Next ProcessClose($script) EndIf EndFunc ;==>SingleApp _GDIPlus_Startup() Func DPIRatio() Local $hGfx = _GDIPlus_GraphicsCreateFromHWND(0) If @error Then Return SetError(1, @extended, 1) Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipGetDpiX", "handle", $hGfx, "float*", 0) If @error Then Return SetError(2, @extended, 1) Local $iDPI = $aResult[2] _GDIPlus_GraphicsDispose($hGfx) Return $iDPI / 96 EndFunc ;==>DPIRatio Global $hGUI, $bExit Global Const $iScale = DPIRatio() AutoItSetOption("GUIOnEventMode", 1) GUIRegisterMsg(132, 'drag') GDIPlus_About() Func GDIPlus_About() Local Const $iW = 420 * $iScale, $iH = 320 * $iScale $hGUI = GUICreate('', $iW, $iH, -1, -1, $WS_POPUP) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") GUISetState(@SW_SHOW, $hGUI) ;create canvas elements Local Const $hDC = _WinAPI_GetDC($hGUI) Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xE0F0F0F0) Local $sText = _ " This Shark007 software " & _ " is freely distributed " & _ " for your personal use " & _ " " & _ " This software uses " & _ " libraries from the " & _ " FFmpeg project " & _ " " & _ " " & _ " Press ESC to exit " Local $aChars = StringSplit($sText, "", 2) Local $iLen = StringLen($sText), $iColums = 25, $i, $iHh, $s, $r, $iChar_Space, $t = 0, $f, $iSpeed = 33 Local $hFormat_char = _GDIPlus_StringFormatCreate(), $hFamily_char = _GDIPlus_FontFamilyCreate("Arial"), $hFont_char = _GDIPlus_FontCreate($hFamily_char, 10), _ $tLayout_char = _GDIPlus_RectFCreate(), $hBrush_char = _GDIPlus_BrushCreateSolid(0xFF000080), _ $hImage_logo = _GDIPlus_BitmapCreateFromMemory(_Logo()) Do DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, "float", $iW, "float", $iH) ;erase canvas background _GDIPlus_GraphicsDrawImageRect($hCanvas, $hImage_logo, $iW / 2 - (70 * $iScale), 0, 140 * $iScale, 140 * $iScale) For $i = 0 To $iLen - 1 $f = $t - $i / $iSpeed $s = $f > 2 ? 2 : $f $r = (2 - $s) * $iColums * $iColums $iChar_Space = $s / 3 * $iColums $tLayout_char.x = $r / 2 * Sin($t + $i) + Mod($i, $iColums) * $iChar_Space * $iScale $tLayout_char.y = (130 * $iScale) + $r / 3 * Cos($t + $i) + Int($i / $iColums) * $iChar_Space * $iScale _GDIPlus_GraphicsDrawStringEx($hCanvas, $aChars[$i], $hFont_char, $tLayout_char, $hFormat_char, $hBrush_char) Next $t += 0.02 _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) Until $bExit _GDIPlus_FontDispose($hFont_char) _GDIPlus_FontFamilyDispose($hFamily_char) _GDIPlus_StringFormatDispose($hFormat_char) _GDIPlus_BrushDispose($hBrush_char) _GDIPlus_ImageDispose($hImage_logo) _GDIPlus_BrushDispose($hBrush_Clr) _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) _GDIPlus_Shutdown() GUIDelete($hGUI) EndFunc ;==>GDIPlus_About Func drag($hGUI) Return 2 EndFunc ;==>drag Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func _Logo() Local $Logo $Logo &= 'iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAYAAACuwEE+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRB' $Logo &= 'yAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFos' $Logo &= 'tqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/' $Logo &= 'PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAC+7SURBVHja7L13eFxXnfD/Oee2GY26ZEmWJcsl7iW2YydOnMRx7IQ0diEEyBtgl7IsCzzAwo+ysPDuvpR3KctSFtjQQugkBBJCCgHSSXOKU2zHjntTr9PundvO7487Go+KbcmWE+Cd7/PMI2mK7p17PvfbzzlCKUVJSjJRkaVLUJISMCUpAVOSEjAlKQFTkhIwJSlJCZiSlIApSQmYkpSAKUkJmJKUgClJSUrAlKQETElKwJSkBExJSsCUpARMSUpSAqYkJWBKUgKmJCVgSlICpiQlKQFTkhIwJSkBU5ISMCUpAVOSEjAl' $Logo &= 'KclI0Sfz5q99+4Yxz2lSghCsWraEiopywjBE0zSGhoZ4y3XX0t/fj65P7DBCiOghJSiFUgohBPkVJjSlVKhGLTdR/KdSqkop1QzUCSFqgSqgUghRBViAio6DUIqUUqpbSrkfeFaoMOnFasg0rkCo4KQupkJg4LNA60InQCGOfjcU+8JpDKo4EgVCEnbvQmUHkA3zEGU1oMJXFAZ3y21TC8zpFqXUwiAI1gkhZuQHvUrTNF3TNCWFrEHgh2GY8jzvNuBXw5DlP1sWi8XuaGhomJ9IJMpjsVhZPB4nUVaGkBIpJEJAGIb4nk86kyaZTDLQ3+/0Dw4+H3i5TynN/H1Jh7xCwCilCIJJ3akXlMXjd8yaNauyvr6eqqoqKioqicdjmKaJAnzPo7evj/vuu+/soaGh30opXSllBIHvX71y5crzL730UqqrqykvLycejxOzLHTDKGhCz/WwbZtsNkMqmaK7pzv2wvPPn/3Qg/f/OhOrfidC9KGoBkzABlJAmP+ZBgaAQSBbAmaKJAxDqqqqaJ3ZRt+WZzAM40RwCSnl585es6Zy48ZNVFVXkShLYJgmUgqCIMDzPNKZDD09PRw4cGD+008/vVHTtLullARBQE1NzXvWrFlDY2Mj5eXlWJaFrutomoYmJUJKBCClQNc1TNOkvLwcqUnK4nEG+noTD7145Ge5WA5BiBBF7p0KI2MmcEFkESINdCDkQSXkfuAFBTuVEjslYkApRahCQhVpQCmn0lVUoDDy/md0VhHQXmQBxV8eMEopyhIJLrn0UrY88/SETFF1VdW5y5Yvp6KiHNM0EUIQhgFhGAGoFOiaTkVFBUuXLGXHjh0fsm3bFUJUhWG4YunSpefOnTuXWCxW8HuKH+R9ndHPCyEwLYt58+bz/J7DJJZeiIxXgNBQCkIV4nsuYeATuo4Z5jJm4KSqAzvZgj20RrppdAI0obA00RXX1HOWrh8xdas6Fo83Oo7jp1KpDxi69uxJXsw5oFYC' $Logo &= 'KxFyIUJrRNNqEVJHiAgYpXxU2I8KugnVIVS4HdRLwIsguqYSpNNmknKOw8ZNl/CD73+PZDJ5Isf3nMaGRr2+rh6paSMGtshHARSalLS0trB27dpNQ0NDmxKJBHV1dSxduhTLsk7qXAWCmtpaKi0NxwA9ZhBmhxBuBi2w0YMcemBjKJeYqYjFA2K1ITG9nLhRSTxmEbNMLNNqNE3zUt2yMAwTwzBwHIfHH3/8953tR/6XgnsnCEkbKrwGqb0GI7YKM16GEQfdBM0AIRkJgYp0jQoh9CHwIXDBc/rxc9vx3ccIg3uBJ0H0I8SfHzC+79PY2MjFGzdx802/OK5ZEkIsra+vx7LMwvcfL4JS+e9pmiYrVqwgCAISiQSVlZXEYjFOar2+vFI3TAvL1CnfdRv1tTXUVlXQUF+HbuiYpolp1mEYBlLT0DQdqelRNIdgvAEIw5Ag8DF1ydJF86dlBnt/a6Sc7yFiP0Lw1DFOZi5h+GF0642UVdYQqwTdigAZaZJGXaT8OQgJmg5G4XxqUeH5BN75eM5HyGXacbMP4bu3gfojiL7JwnNaoySlFBdv3MQvb/o5vuehjaNllFJIKadXV1fnB2BUiJ1/KBVC3pWILIxCSomUEqUUYXjyIakAwjDA9zxmzWqjtraOhoYGGpuaCIKgAGKxxguUgiAkDMNhpxvPzeHYWdLJJINDQ/QOpuhJ5xj0TTLG7Hi20nyfzGbei5+7Gyn+ExU+EAGgNFT4AYT2SVHdVEOiFqXrEASgggmG26rox6gbRzcj8OJVzYTBtXjOteTS7TjpO/FzPwP1EEKGrzgwtm2zYuUqNl39Zh689/ck0ylCpUbY00ApauKmXlYWH6EhwjAkVCHpVIqhwX4cO0sQhCggCBU5J4em64UBK4Zs0rQgsB0Hz/cxrRh+EBCER2EYjviGnW/f83A9Dzfn4NhZsuk0yVSagbTNgBMy6BukZAWO1YpfUY+KVSFMCwlINy3VUOeVqu/gJaHr' $Logo &= 'PIZmgqZXE6s4U9S0gBGH0EeEAQo1VXfuUYikBCsBZryZRM07yWXfiTP0JK79DeBHLxcwRt5THxFH65rEDwOWnHMRKb2aWsOn78g+YppChYpAKaSm0X5gfywMQmzbRtM0fN9ncKCfHdu3sXnL8/SmclQ0tKJLgQxd9MDBUDkqK8ppbGhgRutMmqbPQNf0gumbFDgCUqkUCFHwgxzHobu7m1wuF0Hi+/ieW4Akk7VJ2h5DniQ5DIg5A7eqBhWvQphlCM1Ag8ivGNYURhymzSHMZc3a1jPW2z541W2Impb8nRIUHPQpFyHAd1H2UOTnDJsxPb5G+N7/mXJgfN8fC6+UJkIopUbqTV2TDKZsbr73CRASzYix7KyldLXNJ3SStFVbVMU0NE3j9t/eoTu5HAP9/Rw5eICdL73Eczv30J7ViM09h5aLrqC2bTEIQeg5eMkeUh276Dq8nRf37Md68RHq4pI5rU0sXryE2XPnUV1Tg6ZpJ9Q6AlChor+vH9MwMU2TMAxJp9MkhwYJPBfHccjaDinHJ+lrJEOLjFZPzqjAL6tCWZXRXWvEMIRGqMJo4MMAFaqRAKgQEMiaZjJ2P6q2CVnbisq//+hZFT+mTtOo7CD4uQiUMO8kh+FhAu8zU26S5s2dPd4FVyA8yzILJsXQNQZSNjfdu5mXDnSwZO5MlArx3BzprM2uQ730ZGo4f+kcQnsIwlAd2r+XHTtfZHfHAANUUD5vAwvOvoL6toVoukHguVHyXU9gJSopnzGfcPkmnIEOMp176e7ax+HOvTyx6wFaKh/irOWLWbFqNU3NMxCmiXYcaILAp6u7i+qqCpTvkkklSWcdkrmAVKCTpgxba8I1ygkSCTDLEVYCPVaOppsoJEEYEAYhYRBEAzEMSWG8iwAIQ4RVTljThqioP+p3DEc+p0PDCImyk3lYNETgBnjOT0F9D3gBxOCUAzN3Vtt4T3vD2kcAsZjJYy/s4cX9HQV4Rt/RuhSYuoYnjNi9' $Logo &= 'L7S/dfu+ztW9Q0nseANVCy9nyaqNTJu1BKnpBL5L4DqFi6mixEyUpxKCsvoWYtUNlE+fizPQgTPUy4G+I+x5Yhv3PfYM561YxHkXrGdGSyu6ro/RNgrIZLL09fYiYuU8dyRNWlTiGDNwE3ECzQTNQphxjFg5plUOmklIPk8UBARhgMjneoSIwnRVTIvIQyBGHlhUN+dNUDhSm4iilJyaAg0jRBRm51J5zeINkMtcidQem2x+5pRN0lETpJHzPJ5+4SA7D3Ri59woHT+6WKlJLNOQ+9q7X7d5665P7N57YAWqlqol5zFn5cU0zj3zKCheLhrg4kEezssMq9jAR0iNWN0MrKppWP0dmIkq/MZZpIZ6uW3r0zyy5X9Yf/aZXHjRRqprakY4yCpU9HR3MJADteBSlFkGUkfqJrFYAhmrBDOGUoLQ96LzCjwIAvJpM0T+okdciFEDPd6Ai5EQqdHvKtJGQh0z1TApa2QnIcwHDcmBT5DLPoYRA9Mac1OfdqdX1yS26/Kz3z2GH0JleRwpxYgvKaXANAz6BlOXbd918GNHunouwnOpmN5G66qNNM47C92KE3i58UEZN7gRBXDIgxOfNhOruhGn/whSN7Eq60kn+7jlqcd58tmvc9nG9SxedmZUnXVdbNtm7+5d5MpnUFY9HSNRhVZWhTAToBlRij+vRdAtlO9Fat11CDw/0iViONyOBvjYOkEwrH/UGEdqrL8yJd6LEODa4NpRNV157hUXn3NHzNTRpMZTO/ax91AnmqZNPTCJeGzc2L+zL8l3br2PwVSWhXNaRrxDCoFlGuRcf/ktf3jkU9t27b/Gd2zKahtoWbGB6YvPxSwrJ/C8yPRMMsKJrrUYTs6gVIDQdOKNczCrm7B7DyGkxFxxBe09B/nebx7krC1buODC9VjxMnq6u3lp70H02ZdQNq0Vo3p6pElCP/JHVOSPiLxlEfmEndRMlOGhvBzCdSD0EMMNDcPnn1cQ6rjOq5hCOsYt' $Logo &= '7EVRkRAEmQzrVs2/8SNvf8MRPwjQNY0DHd28+zPfImvnph6Yf/7PG/PnoCiLm6xbPp+yeIykEzCUsUeoNiEEpqGT87ymR5998WNPPL/jnU4ymTAqq2g753JazlxPvKqe0Hfx3VzBko4LixDFSfAxTmExNGK4rBD4SN0k0Twfq2Y6dvcBhJD4NU1s3rOZPT/9BeetXkF/Xy+9VFPRuhSjoh7lu1GSUBWZGIpNh4r8FUBIDWnGUZqJ8nKEORvyznn04YlScKL3nSRNQoCdhMAnDBVVFbHejecs/8wLu/YrP4iC2phlsHReG48/tXXqgbnz/s0jvsSv7nmENcsWcNmFZ2MZOkH+JAxdRynH2HWw/R8e2fLix9ODg63SNGladh4zz7qEioaZhME4GmUcWEYDNMYUHeOSFoOjm2WUty7Gqhkg23MQufACkt0t3P3I78EewFr9JmL1rQhNj0zO6P83TqRTQHgYHs1EWhpobgRO6IznnIzyUdQE4DgFWHwXlUtH6YhMktdfs+kLl5y36nA6Y4/wKT/+jtfz//UNTj0wxiiTpAlFzDIifyVvfkxDp3cwueHWPzz66SNdPecTBlS3zmPm6suonbUEgcJ3ncjpHAWJOAEsxzRFxRdJqTE/lcpXuxNVVJQtxU32oscrycYq8IY6iTcvwCivjXIhI7yMaLCOIqJG+q0jzltFxWOpIawyhNRRuQyE7sTHXIzWnqdmp5STBKWiut60qhcXzGr51tZdByJ/rCgJbJkGr7547ctbS9I1DSdwG+99/LlPPrNt97tdO63FqqfRsnIjTYvPRTdjhL5bCDuPZconAstkLmdxwKLyaX6joh4tUYNZ00RuoBOzZnoUMY0CojgiHv/AYtSJF/0udUSsHOVmIa9JTxoCMVKbTczRjY6r8k7v325Y93/rqiuzGdsZc62zdo5Fs1tfHmCEEBi6Tu9g8pqntu76wkBf/xxpGjQtXUfr6kspq24iLA6Rj8nJSZbci67/' $Logo &= 'sQPZUc+oAIHCrKzHKK8dUY8a7/+NZ0yOXf8b4W0hjHik5Vx70t+nMPhOJl+mj08AGpF3dJORo+vYLJ83c/N1V1z0c5XPap+SYjglWBBIIepu/v2fvr599/7r/JxDeWMLrWsup272skgduvao9PxUd4RN7o4tfrcak7o/gV8xoUy9Gvu3EYsSdL4z+e81rC0yAzBtTr7VQR3/Y3YKAg+ERPgum9ae+b/9IAyyTu7ULcmpfDhQimd27vtucij5Ws0waF6xgRkrN2HGKwg8LzI/Y7SKmmJo1BS+W53aMY7T2SYMC+XnJnG+6mjtqbwO7CFIdUNVc1TIPKGjq+HnbNqm19+btp17fnbXgyc89qsvOvu0AZMA3q8U65LJ5JWJ+um0nH0VNTMXo8KgyPyMA4sSI54u4DPspE4WKzX2V3WCAVejepDUCf7fiNNXJwmdkCC1qMdlkgoKIaGqCfoOQCxf6DxGj4yyI0dXAZry1QVnLflcTWU5nh9Mye15MsCUA7cpFW5Ugc+0BWtoPutyrEQVgedEzdNCjD/YeV7yVaHjIzEOQKiR0Yka9+qO84w6CaWhRvqZY6BSI34Z+R51jH92sq2RKgQzAWU1MNQemSZGmSYhIJcFzwEhCewsy+Y037V8wez7Pc+fspzgyQDznyi1USBoPvvV1C86F6EUgZfLh9dqfByUQhWDpIrCyKL60PDroQLXjzrvAQxNoEuB5yv8MCryWZpAinEgUGpsVHEMZ7F4uI/CMVJXqcKz4wOiir/jsWgcbnk4Hq1qjJc18sVEDWQHIdULlY0jv1MYRGE0AlSIVL5auWjul7O2g+v5U+YATBaYs4B/DAOfprMuo27ROkI/hxQghDxakBVq7B03jtZRoyMbpXAD8ENFdVxjcWOMBQ0xzqi3qC3TiBuSVC5kf3+ObZ0Omw9mCJRCOzo7clwFoo5lmorUhSo+WXVsM8UIeIoZVcUfH/vZMBxlRtQkbBKF0geJWkj3QawCzLLo' $Logo &= 'fwqBstP5piiJn7OZUV91nxTygV0HO6a0XWKywFynAl/E61uombcmMkEoFPLojIejvBwzx1LQNnntopTC8RW6FCxpirNxXgVr2xK0VpvjnsS6WQkAbt82xBfu78TSRpYOVL58EShV+BkEinB4eglFU03C8Ojz+d7gMMzPKwqjpN9wm6YYdmIKXfocbTIepY+OtkWqQkR27IGbwICGAYQexBKQy8BQB9TPjvwbPxc9J/K3n+dy7eWXf3P5/Nkq57pTGpNOFph1SgVUzFiA0AwythOF1lKhaZKYESXw1DicqOG7UI3MlHqhwtAE62aX8/oza1jTmpiwqf+bJVU8fSjDb7cNYemCkKhIqGuCMkMQNzQqY5LqmEZFTKPclFTFNcoMScKUaBIsTRI3ZEFjZN0Axwvw/DCqkdke/RmXvoxLTzJHd8phMOMymHVxXI8gDBEoNKGOGrPR2kYRdbad0Fk6DjihV+RF1sBAB6Qj0xRldMOCdmltrH1+8ZyZd0X1POMVBWYGQqJX1OP6AZcvrmPlzErcQLG1PcMzh9IM2j5CRrP9pBDIfA5G1ySmLrF0gaFJDC16bXadxZvPqmd1a9kJD+75wZjejQ+ub0TXBDk/pK3GpLXapKHcoC6hU1umEdOjY02FBEphuwE9KZfDAzZ7utNsa0+y7cgQuzqTtA9myToeEGJqoItR/osY9nPUOA70eGbvaKIx8n/yaWfNhLKqyDQJDbzcUe2Sc7h03QU3xGNmLmvnpjztNUlgVBlCwxcGn3jVLP5uTcOIVw/0OzyyN0lv2qO6TKfc0im3NBKWJK5rxE1JzJDEdElMF8SM6O4+kTz27A5+fvdDHOzs5W/Wr+HtV19SeK06rvGpS6bzcogmRP476cyuL+OCeXWF13pSOba3D/HIrh4e3tnNlv29dA1kQIUYMkQb9l+KzZg6vndVeD3wRoYEKoR4ZdTnku4GqwIQBL5LZUW8f/WSeTfFTHPCPS6nERgxFORyta9Z' $Logo &= 'WjUClt6BJJomaastp602NmUn5/sBX/3J7fzwN/dRWWYwraqMb//ybi46exlzWpr4c5JpFRbrFzSwfkEDXLWEQ/0ZHt7ZxR1bDnH/c3vp7HRBKkxdMrZJVI3v0oi8sxwEjFNsg0Q1DHVHPowRR9k2q89Z8rvmhrrOyF3glQaGTsJw9vK6o1/wgSdf4KNfvgFd07j2ivX84zWXEbNO3W46OZdPfP3H3PXgZi46cw6XnDUfTZN85ZaHSGUc/tyltTbBdefO4bpz5/DSgfnc8fQebn1yH0/s6sB1PHRTY6SlVGO0TtRPGZm4McAoFU1ZiVUgnBRK6ggRcsGqJb8qj8fQ5OmZlD9ZYHYA5z7xwkv80xuvBOAPj23BEj4t9ZX85w2/5Pmd+/jKv7yTirL4ySf7leLfv/VzHnxiC/9wxdmcOXcGvu/juB7LzmiltamevxRRYUhDhcE/bVrM31+4gM27u/jhQzu46+l9pFLZccAp0jpK5YERx05ullWCZxM6GSrKy/oMQ3/khd37CYPJh9JXXjj1wDyIYbzt0ed24ORcYpbJojkzkU6SDSvPYMUZM/jpH5/iA//xbb79b++bVHNxsXzzF3ex5YWtfOC159NQU07GdojH4yydv4B1F15EbVX5XwwwrufhuD45L3Lyz184nQsXNfPCwV6++8et3PTITjKpLLqljVo/TkSwHDeHokDqUFaFGuhiWk3lgYMdPV05z+N0LfsxWWAe0g3d2bPvSOzJrbu44KwlvP7SdSTXLqez/TDn6AatDTX8+J7H+dqPbuVDb3sdcpLp8MNdfbhOlk++7W+wDB3NMKmrq2P69OknvTrDKym53NEKcagU2VwUXi+aUct/v2MDb9uwmP/67dP85vGd+H6AaQ6vXhHmtcsEygZWAhFLMJTK1GmaVlFlmSl1mmZPisn8Y3PlawD+4KWzm97z1tfyzX9995iLk0mnsG2HvR39rF25ZNJaJgjDcaen/CWKUoq+vr5oztYx' $Logo &= 'bpy4qSOF4Hdb9vHZmx/huZ1H0GI6UnlRW8OERlGgAo+g5wgfeMvfvPGcZQtutk8iYfe212w64XtOZmRuFJbJrfc+Rt9gcsQLlmVRW1fPjJYWLliz/KRM0l8LLFGU5x8XFgDb9cm6HpevmsNd//sNfOSN6zAkeNnsZMhEaCZKN3nsuRffYLsuTm7yj4nIyYzO7bqhH+g41MlP7niAkhzHf5ngXa4UpB0Xy9D49Jsu5Bcf/lvmTa/Gs91JVJkVsqyCl/YfuWgolWmMmQaGrk3qcbqASQH/g6HzPzfdNeH5LP8vSrH/MiGNFIQMZXKcNbueH3/4aq48bzG+4xJOpK1SgWbGGEhm6nYfbN8QhCE515vU43Q4vcPyXcMy/3nnjr1NP7z9Xt79xitKdIz2xYLghOYIohmhUkj8IEAIgeM4DCUz1JTH+co7L2NuUw3/ffvjhCoqrxw/YtIQUvLw09su0TTtFxOF4HRGScPSD3xWmMaXvnjDLfFrL7+QmsryEiWjtEsYhscFRtMk3X1D9A0MsPiM2fhBgG1HzeKuHyCl4EOvPZcZ9ZX824/vxRmnljb2n+p09w9uaKitSkgpM1MdLZ1KT+83dUPP7N9z6Adf/clv+D/vedP/GyC4Hj39g7Q0TTvu+xznxNloXdM41NnDoYMHWDhnJq7r4rpuAbIwVKRtl2svXEplmcVHv38PKdvFMI4BjQCp6/T0Dc2WUp615Iy2h9wp1jKTAsZLDoxMRsJPMOLXfe1Hv7nkzVduYF5b8189MKmMzbM79hwXGN/38TzvhOZICEFn3yC6FORybkG7jDI0JLM5rlg9j5ip8/7r7ySVPTY0Qgj8MOC+zc9d4nr+QxONfgCuuXTd1ALzzjdfPTIvY+j+lp3773z0wc2XfOyrP+TXX/n4Xz0wBzq62bJ9N1ddtPa45qh4AcVj+zkhR7p6mddYjm3bx4Usmc1x8fLZfOntr+Kfv30XbhCijfZphqvgQnKkq+/iJWfM' $Logo &= '/FTUBPYKddz90xuvGvG3oevsOdTxi3cdOPL+W2+/d84vL7+A1196/l8tLNt2H+Tz3/kFb7l83SmbIyEEadthYChFrLUG23FO2I6QzOa4fPU8hrIb+fgNvycUqjBNebiXFyKzdKSr78y9hzrbaqvKDwxPvH/ZgUllsmOAbmms63rXG698/2e+8oPffvhL3xcb1iynvqbyrw6Wh57Zzue//TPe/Kq1XLVx3XFzLxMxR7om6egZIJ2x0VCFXWCK3JFC++qIMcjmeOMFSznSl+Trv3oEETePTofKL7woNY1kOpt47qV95y+c3XrA9abOj5lUHiYRj414lMdjCCm45pJ1d776ivX/c3DbLj76lRv/6mD59R8f49Pf+BHvuGodb7jqEqRuHvO94/kh44fTkrSdw3VdwjBE1/WRy84qxZad+8f1aTI5l/dddQ6Xn7sI3y7yUYb7hvMN97v2t18kXsmOu3A8WxgoDB2uu3z9vzz9wkvn/eCnt6+4/PxVfzWm6fqbf8evfnc/77/mYl614QJ089gF0DAMyeVyE1pIwNA1Nr+wi4QBMr/a5zAwuqZxuLuPjt4hzl6ij5kmEoaKUCr+/bqL2Hm4h73t/RiWgQqOvk9JSffA4IVzW5osBLlTnVN9UsB09PQfK2VEfXVl6u2ve9U7PveNn97/gc9dX3nu8oW0/AX1rYyJdIKAz3z7JjZv2cqHrt3EOatWYMWP33ds2/YJcy8Accvkhd2HePip53jNOWdgGCbDu7IAGIbGc7sOUVuVGFHtL54Z4foB06oS/PubNvCOr9xGGCpEUXVb03Xau/vPeHr77iUzGuqemaqZj5MySUqN/0BBxnZYu3zBM393zas+2LH7IP/46W+Mr5H+AmQoneXdn/4Wz2/bwYevu5TlixdQWz/tBNdGTcgcGbpGKuvwXz+6nTPb6qitTFBdU1PQLkIIMlmH7fuOsGBm04gprgrwi5bIzzguFy5p4+8uWUlg2/kJ+PkFGqXA' $Logo &= '83y560D7+f1DKXoHkyd8TLmGaairOmEi6h1XX3rDYCqz4je//v37vrRmGR972+v+siKhPQf52H/9gNoynQ9dewktM5ppnnHitVNs2z5hKUCTEiEEn7/hVrTA5sw5bSQqqkgkEoXlRmKmwf1P7cI0dJrqqnHyiTfL0Hl6x34qEjHOaGksgOS4Pu++4mwefPpFdu/qRTeNoqhJ0dk7cNF1V170ddfzpmQ+26Q0TEVZ/LiPmGXSPK2G665Y/5G6mdPv+vgXv8cDE1w77ZWWrr5BvvSDX/PWT3yZRS21vPfqDcyY0UzbrNknNDFKKbInaEeQUmIaOl/56Z28tGcPV569AKnrNDU1FbSLFALH9bjz0ee4YMWCo73gAhzXY9vewzTUVBaWhgPwgpDa8hj/67wzivKp+c/pOgc6etamMna1GJ6GctzHFAMTKnXch1KKrJ1jZtO03Fc//q63tjRN2/Z3H/kC7cfwfV5pcT2fZ17cy6ev/wXXfPD/cv9jT/Le167n2k3nML15BnPmzJ3QbmrZbPa42kVKiWXofPVnd3Lfo0/xxguXIQU0NU0fsW1PPGby24efQUrBygVtBWc3Zpo8vnUPMdOgtrJ8hKmXUtLbP8iSGVUsndtM4B51fDVNo7t/aPquA0dWZO0cybR93MeUm6SJQlWeiLP2zIU9b7vmsjd8+r9uuOfNH/tSy++/+1n00zBP5njnIYqWNHVdj1TGpqN3gJcOtPPsi3t57qW99PT20zKtijdtWs2KeS3ELIvpM1pobGyc2HHCkEwmMyFY7rjvUd7+qtXELYPKqmrq6+sLjm7cMtl5oINbH3iKj77lqmih7MCLwu+sw/1Pb+ftr75wzLIdQgjaOzsRCF6zdiHb93cdncEkJfg+W3cfWN/cUPeAnctxqr2+kwJmouvnhmFI1s6xctGc7R9575uu+/L3b7nzfZ+7vuKtr9lEGCpynoftRLP1hBDYTg7H9QqLEWayzogLk8rY+PkLq5Qi' $Logo &= 'mclGUYGIioHprFN4Tamo8bpQ2s9rYieXYzCVIQxCYqbGjGnVnLuwhWVz19JYUwFCkCivoK2tjUQiMfFkZip1zMhIkxLT1PnqT+/kN398hLdduoqa8hhSN2hpaSlolphp0DuY4os/voOLVi1ixfw27HwNKG4Z/PyeR2moqWR2c0PheYgWM9yx9xBbXtzL4rZGlrY1sKitgW37OtGNaGiVprHnUOf6gWR6StaImRQwk61JzG9r5qzFcx9uqK16y0c+/52bHnhqq1Uej+MXbVoFR9PbSoGhSbT8plm6LgthpaFr0QKFoSJmGui6JAwVlqFjGlHSK2YZSCEoNzSmlZcBirhlIoUgHjNpqK6gobaSuqpy4nnnMAgVVizO9OZmpk2bNqnvl8vlsG17XFh0TUNIwX/ccCu/f/hJ3nbpKhpqKvD8gHmzZkXb9ChFWdziQEcvn/3Bb2isreLvr7yAXD4zG7dMntmxn0ee38Vn3vW6EQMupcB1Pe588EkWt9YRKIWl62xaMWeElpGaRlff4IruvsEmXdc6T7WuNClgrr/57kkfQAiBJsVdNfU1HRtXzZ913vJ55FyPeH65VqUiGDQZJa4MXS/6XUPm1+Q1dT2/HL0qWjNPjVg/b3gpVyEo8j3ECOCHN/jS87vK1tXVUV1dPemNucIwJJkcPxQ1jSjZ9unrb+Gp57bzjstWM60qgeN6tLW1UVNViSYlWSfHnY88y413PMTCtmY+/KYr0KTEDQLipkF77wBfu+ke3rDpHKbXV5N1jmqXmGlw8+/+RC7n0FxfRc7zcf2ARa3TKC+LkXZcNCmQmiSZTNcYhr5yxYLZd+dOca2YyW1/c5LtC6apq6ryRLKizGLlvBYydi6/ZIwYY++Hl3XQpBZt06fJyBcp2s5P1zQQ0S6z5Lf5LX4IIQp7JY33U9M0LMua/O5txbmaoSGCfJdcscQsg4Fkhk9+8+fs3XeQd7xqNTUVceycy/Tp02lsaOBwVz8PPbuD' $Logo &= 'Pz37En1DKa7esIarN6xBCoEXBCRiFu09A/zbd37NivltXLZ2+QhTFLNMnt2+m989+izXbVyJVxQ1+UE4avlYSRgEtHf3bdywZvndWcd5GYGZ2Tyu6rUM/bhBmWXqvqXrvUq3aJ01B88PxgzuMDDDUAxriOGfQpze/ZgnI6lUatwSQCJmsa+jh4999cfY6SHeeeXZJGIm2ZxLXW0tM2Y0o1TI5m17eH73Ic5ddgYbVi9mZmMdru8jpSBhWDy5fS9fvekeFs1q5l1XX4znB4UcimUaHGnv5Os33cOaha3UVpQxrDU0KRjMOOQ8f+TKXJrG1t0Hz7dzOeEHp1YjmBQwB4+0jwTB0Hlq+14e2rIDy9CPm4M41N7Vj9Qpr/jLrmRnMplxo6LyshhPv7iXj3/9J9RYkrdftgZT13ByLpUVkTOtVJSp/dv1q3jthtWF+c/R4tGKPYe7uONPz/LQlh1csW4Fb73ygmhhzLwGsUyD7p5ePn/j7dRVlnH2gtYRdSYpBclMDs8L0ItaOaWuc6izZ9n+I10z66orD/hB8PIAs3HNkpFpbk0yt6WRwYyDHwRFvRmj0+E6advu7eodmPCxPM8jnU6Tzdpkcx5eECKkhm7oVCbKaKyrfkVgSaVSI2CJHGqLu/+0hc9+95csaanl1ectBhXleeLxOLNnz0bTtEI21w9CCEJ0TXKgs5e7H32enQc66B5IMrOpjn99+9+yZuFscr5PEER+Wsw02HvwEF/84Z2EKuRN568kyO9/VFxr6ktlYZQSkZrEtp2yfUe6zq4oLztwKm2bkwJmdBd6DmioqeC6y86nN5nB0LVx089lcYtczuvpmAQwjm1z571/4g+PP0dfKksyYxOoqFIrNcmqhXN47xtexcL5814WWNLpNOl0egQsuqah6xrfv+1err/5bi5ePosNK+biBSG+H2AYBrNnzy7sIzlOSIAfKCzT4Lzl81h+RivzZ07H0DWcfE9NzDJQYcj9TzzLt265' $Logo &= 'l9rKMv7+0tUYmmRsY5SgYyA9NmsrJGEQsutg+4Yz2pp/mcu9TMCMX9UNmdNcT3VVJTl3/MahRFmMqopE5/72romXISoree0Vm1g8bxa9Pd3Rlw4VWSdHKmujlCIei512UMIwJJVKjQmfLdPAzrn8xw2/5s4HN/O685ew8oxmcl601YymacyePZtEIlFIzo3RokHA3BkNLGybng/xw0JOx9B1so7Ltj2HufW+J9i8dQ9rl7Rx+ZoFaHI8WKLPdw2kx03OCU1jf3v3Ws8PdIXyTza6npJMr2VoPPHsVr59yx+xYmObi6QQ9A+lBuuqKyfU63oUtDirzlzG4UOHOHToEJomqa+Oth6eNq2BWFnZaYXF8zySySSu644oEZTFLI509/Nv19/ES3v28w+XraatqQbH9Qv5pba2NiorK48Jy7AJ8YOgkJTUNUlH3xB3/OlZDnf109HbT2//IC31VbzzynOY21yH50d7ao93jbOuR9dgGsaZvyR1na7egUWHO3tnV5bHdwWBeuWAcVyXDauXcLB7kIFUZsz8aE1KegeH+rfvOUQqa1OZmNxAt7S2knNd2tvbMU2T5pbW07Ic12h/JZ1OR6F9UaSWiFs8tX0Pn/zmz9ECl/e8ei3V5XFyRbDMnDmT2tra48Iyfs5KErdMynSwcFk9p4E56xbRUJ0AITheDkWTgoFBm76UPe6KGUIK3JwX6+wdOKe6IrHLV/4rB0wYKuKWwWvWr6Z7KIs5agqEoevsO9LV+/S23aQykwcGYPbs2QXTEATBaQPGdV3S6XRhftCwNtQ0iWUY/OqPj/PFG29j0YwaXrNuBYYmcf2jZYuWlhamTZs2YViGUwhhGNLX309fby9nzqzlzJk1gCAIwxF5lmMCo0kO9Q5h2y76eFNQhCQIQzp7By6Y19b8k5ONlKas+OgHIU11FYRCMpTKIoq1TLRJRV/GdpxM1jkpx0NKyaxZs9ixY8dpASUIAtLpNI7jjDGbpqHj+T5f' $Logo &= 'uPE2br7nYS5dOZf1y+fgFw1mEAQ0NzfT1NQ0IViGc06e59Hf309fX98YjTap6yMEu9v78zMHjjFnSdM43NV77vT6WktKkVMnsaD8lFarDSk5cPgIn/nOr/J9qsV1KOyc59sp2zlpT7W6upqZM2dOqXYJgoBsNjuivbIYlrhl0tE7yL9/+ya27tjDWy4+k8VtjeQ8/+gil0FAY2Mjzc3Nx4RFFGWqh+EcHBxkaGio4FAPQ3Qy5RfH89lxuDeqUB8LKk2jdyC5SEoxf/q02heOt630lACjHWsyuIo8dMf1OHfZPN501UXs7+jF0GXxHZW9/f4nkn0DyZpTGeDm5qmZXel5Ho7jHBOUYVh27D/Cx772E1Quy3tevZZp1eU4RT0nQRDQ0NAwovo8GhClFEF+3nQymSSZTBZMq5TylG8AQ5Ps7x5kf9fgsccIEFIShIH+met/IaUmxyyHdt2VF00tMAODQ+NyBATliURBlV523nJ2HurFKDp5TdOy9z/xfKpvMFWw98W5ieHBkqdhQaHhAQuCoDB/2ff9gukZ7642DZ1dBzv516//lNm1cTatWoauyxGOZxAE1NXVMXPmzAIYMl9pD4KgUM1Op9NkMhkcxynAORWgHPURNTbvPIzruOjHW8E0+p7t/YMDB3k5wuqnnn1hHO9c6gjB6jOXBRUV5fhBSE15nFUL2vDDo5ts6obuxywzdaSzm5ydJZnOjLkjR9+Zo2tLxa+NV18a/n/DW/KFYUgQBCP+Hq0BjqXiQ6X47q//wNln1HPu4lk4rk+Yr6APH6uhvo62WbMIwxDXdcjlXBzbxrZtbMfBzeUIggCV9zFMXQNx6l5AGEariYt8BNozlOHBrfsRJ14UKA3iXbpuDJzssSd19uPd/VJKDyGGsQ4gail88pkX+dR//xSjKC/TfqT78WQ6c24Y+GMqvcObQ5wuOR4goyVmGjy85UUe2PzcjVevW7zjka0H9CAMjy7ErZQKwzCsqUlpj23b' $Logo &= 'Ty6Xw89/J5Xv9BtxvCmum9ZVllmGpmkKlGVo4o7NLw329KVs3dLlCVbd/CNCbAd50tvVToXTG+arBCMG56WDR2g/eAiGty5WCrzwxq7+oQ/C+IP351KRDsOQ+uoK2vuSP/rVw1vvn986DVPXCitBKaVwPRejvb/Aw8t57kFzLXHTLPQMtfcl8xXM4xrmYp9Fz9/c4SsBzBjHuLt/iB/e8TCisqaoairwcu78p7bvJmM7hdzDn5sowDQNnJyH63ofeulA18NeEPrnLJpZ6NaPtKF23Ar96RRNykLzmSZPtDLV+D7/yR57yj1M0zDYvu8wnd0DI0rsoNBNfduWbXvsW+59nNrKckxDR9c0tHxbppRiUqZjKkXKaJP2mooE7d39fPKbPyOXcw8aMTPY3zXAoe7BkxmYvzqZeg0jBU9t25PfUMEYbXJeFFJ++qNf+dF/DKWzXHn+qmjxZk1D1yS6rkUA5efwHHXsx5qsEfu7icm5CcVb9UWzNxUZ2+FARy9/fOJ5vnPLH9h3sP3nRsz6cN5loS+Vpa2xpgTMlDuXQHf/saddarr2+bTtpP/lyzd+8PM33Do7EbeEZRqYho5l6Fimga5pxGPRMhZV5WVIKTF0jcpEWcFuV5aXFcyDZRpUlMVP7DSLKMIYSmUIQkUqY5PMZukZSNLRM8Dew11DqcHUZgz9O0bMumV0JrUkpwGY4yb4hg+qad9A0344lM6eMZjKVKKUQKkalJJAOUqVoZQAaoajcqCmaN/gqvxzw1P24ihVfgLPXwAZIBttfcsQAhtEP4IupHZQGtoOoyx2qITFcS6i+gudMF+SV0ZKXlxJSsCUpARMSUrAlKQETElKwJSkJCVgSlICpiQlYEpSAqYkJWBKUgKmJCUpAVOSEjAlKQFTkhIwJSkBU5ISMCUpSQmYkpSAKUkJmJKUgClJCZiSlKQETElKwJSkBExJSsCUpARMSUrAlKQkJWBKciry/w8AsDw916bgUD8AAAAA' $Logo &= 'SUVORK5CYII=' Local $bString = _WinAPI_Base64Decode($Logo) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) Return $bString EndFunc ;==>_Logo 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 For whatever reason that I am not aware of, Virus detection is through the roof with any AutoIt App when compiled as 32bit. The same code, when compiled as 64bit, is always damn near detection free.1 point
-
About dialog with credits area
Professor_Bernd reacted to Nine for a topic
In Win7 it does not flicker but the scroll bar is not moving !1 point -
About dialog with credits area
Professor_Bernd reacted to UEZ for a topic
It's a nice old school design. The GUI is flickering when scrolling the text only using the scrollbar. What about an automatic slow scrolling of the text until user intervention? Might be a good idea to add a small tune.1 point -
Marquee UDF - New release 13 Jan 2019
pixelsearch reacted to Gianni for a topic
... a possible way to make transparent background, but perhaps only useful if you want to create a large standalone marquee on your desktop (not to overlay it on an image within a gui ... #include <WindowsConstants.au3> #include "Marquee.au3" #include <WinAPI.au3> $hGUI = GUICreate("Big Ticker", @DesktopWidth, 50, 0, 0, $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) ; ----- make $AlphaKey transparent ----------------------------------- Global $AlphaKey = 0xFFFFFF _WinAPI_SetLayeredWindowAttributes($hGUI, $AlphaKey, 0, $LWA_COLORKEY) GUISetBkColor($AlphaKey, $hGUI) GUISetState(@SW_SHOW, $hGUI) ; -------------------------------------------------------------------- Global $sText = "The quick brown fox jumps over the lazy dog." $iMarqueeIndex = _GUICtrlMarquee_Init() _GUICtrlMarquee_SetScroll($iMarqueeIndex, 0, Default, "left", Default, 50) _GUICtrlMarquee_SetDisplay($iMarqueeIndex, 0, 0xFFFF00, $AlphaKey, 26, "Comic Sans MS") _GUICtrlMarquee_Create($iMarqueeIndex, $sText, 0, 0, @DesktopWidth, 50) MsgBox(0,'', 'hit ok to end the script')1 point -
Well done. If the MSAA code works, then you can easily use it. The problem is if the code doesn't work. Then it may well be difficult to get any help for the code. As far as I remember, the code is from 2014 and there are very few examples. I assume you've got the MSAA include through the zip files at bottom of first post in junkew's thread. And I'm pretty sure Microsoft will continue to supply the dll files with the MSAA code for many years to come. The code hasn't been updated for many years, but the old existing code will still be shipped with new versions of the Windows operating system. If you can get all your information through a combination of MSAA and UIA code, that should be OK.1 point
-
Timer and then execute a command
argumentum reacted to major_lee for a topic
Here is a way I use time, it would be more effective to use the clock on pc if you need accuracy. Hotkeys - ESC quits, PAUSE will pause. HotKeySet("{ESC}", "quit") HotKeySet("{PAUSE}", "pause") $clock = 0 $minutes = 0 $seconds = 0 $pause = True Func quit() Exit EndFunc ;==>quit Func pause() If ($pause) Then $pause = False Else $pause = True EndIf EndFunc ;==>pause While $minutes < 60 If ($pause) Then If ($clock == 1000) Then $clock = 0 $seconds = $seconds + 1 EndIf If ($seconds == 60) Then $seconds = 0 $minutes = $minutes + 1 EndIf $clock = $clock + 1 ToolTip($minutes & "." & $seconds) EndIf WEnd ToolTip("timeUp") Sleep(10000)1 point -
@LarsJ to retrieve total number of column & Column header text Local $p_TopRWcond0 $oUIAutomation.CreatePropertyCondition( $UIA_ControlTypePropertyId, $UIA_HeaderControlTypeId, $p_TopRWcond0 ) If Not $p_TopRWcond0 Then Return ConsoleWrite( "$p_TopRWcond0 ERR" & @CRLF ) ConsoleWrite( "$p_TopRWcond0 OK" & @CRLF ) ; ++++++++++++++++++++++++ ConsoleWrite( "-----------------------------" & @CRLF ) Local $ptr_TopRW_Ary, $o_TopRW_Ary $o_DGridTable.FindAll( $TreeScope_Descendants, $p_TopRWcond0, $ptr_TopRW_Ary ) $o_TopRW_Ary = ObjCreateInterFace( $ptr_TopRW_Ary, $sIID_IUIAutomationElementArray, $dtagIUIAutomationElementArray ) If Not IsObj( $o_TopRW_Ary ) Then Return ConsoleWrite( "$o_TopRW_Ary ERR" & @CRLF ) ConsoleWrite( "$o_TopRW_Ary OK" & @CRLF ) ConsoleWrite( "--- No of Column ---" & @CRLF ) Local $TR_AryLength $o_TopRW_Ary.Length( $TR_AryLength ) If Not $TR_AryLength Then Return ConsoleWrite( "$TR_AryLength = 0 ERR" & @CRLF ) ConsoleWrite( "$TR_AryLength = " & $TR_AryLength & @CRLF ) ConsoleWrite( "--- Column header text ---" & @CRLF ) Local $ptr_TmpElement, $o_TmpElement, $s_TmpValue For $i = 0 To $TR_AryLength - 1 $o_TopRW_Ary.GetElement( $i, $ptr_TmpElement ) $o_TmpElement = ObjCreateInterface( $ptr_TmpElement, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) $o_TmpElement.GetCurrentPropertyValue( $UIA_NamePropertyId, $s_TmpValue ) ConsoleWrite( "$s_TmpValue = " & $s_TmpValue & @CRLF ) Next ; ++++++++++++++++++++++++ ----------------------------- $o_TopRW_Ary OK --- No of Column --- $TR_AryLength = 5 --- Column header text --- $s_TmpValue = High $s_TmpValue = Open $s_TmpValue = Low $s_TmpValue = Prev close $s_TmpValue = %Change1 point
-
Help File/Documentation Issues. (Discussion Only)
sdinjurylaw reacted to Melba23 for a topic
mLipok, My suggestion would be that you: 1. Amend the opening phrase of the "Remarks" sections of the SetError and SetExtended pages to read: 2. Amend the "Function Notes" page "Success/failure indication" heading to read: 3. Add a final paragraph to the "Function Notes" page: How does that sound? M231 point -
@LarsJ I use this code of yours. #include "CUIAutomation2.au3" #include "MSAccessibility.au3" AutoItSetOption("WinTitleMatchMode", 2) Example() Func Example() ; ++++++++++++++++++++++++ Local $App_Title = 'ABCD' If Not WinExists($App_Title) Then Exit Local $hndl_App = WinGetHandle($App_Title) If Not $hndl_App Then Return ConsoleWrite( "App handle ERR" & @CRLF ) ConsoleWrite( "App handle OK" & @CRLF ) Local $hWindow = ControlGetHandle($hndl_App, '', '[NAME:DataGridView]') ; ++++++++++++++++++++++++ ; ++++++++++++++++++++++++ ; Get Window object Local $pWindow, $oWindow AccessibleObjectFromWindow( $hWindow, $OBJID_CLIENT, $tIID_IAccessible, $pWindow ) $oWindow = ObjCreateInterface( $pWindow, $sIID_IAccessible, $dtagIAccessible ) If Not IsObj( $oWindow ) Then Return ConsoleWrite( "Window object ERR" & @CRLF ) ConsoleWrite( "Window object OK" & @CRLF ) ; ++++++++++++++++++++++++ ; ++++++++++++++++++++++++ ; Window name Local $sName ConsoleWrite( @CRLF & "Window:" ) ConsoleWrite( @CRLF & "-------" & @CRLF ) PrintElementInfo( $oWindow, $CHILDID_SELF, "" ) ; ++++++++++++++++++++++++ ; ++++++++++++++++++++++++ ; Get children ConsoleWrite( "Children:" & @CRLF ) ConsoleWrite( "---------" & @CRLF ) WalkTreeWithAccessibleChildren( $pWindow, 0 ) ; ++++++++++++++++++++++++ EndFunc Func WalkTreeWithAccessibleChildren( $pAcc, $iLevel, $iLevels = 0 ) If $iLevels And $iLevel = $iLevels Then Return ; Create object Local $oAcc = ObjCreateInterface( $pAcc, $sIID_IAccessible, $dtagIAccessible ) If Not IsObj( $oAcc ) Then Return $oAcc.AddRef() Local $iChildCount, $iReturnCount, $tVarChildren ; Get children If $oAcc.get_accChildCount( $iChildCount ) Or Not $iChildCount Then Return If AccessibleChildren( $pAcc, 0, $iChildCount, $tVarChildren, $iReturnCount ) Then Return ; Indentation Local $sIndent = "" For $i = 0 To $iLevel - 1 $sIndent &= " " Next Local $hWnd WindowFromAccessibleObject( $pAcc, $hWnd ) ConsoleWrite( $sIndent & "Window = " & $hWnd & @CRLF & @CRLF ) Local $vt, $pChildObj, $oChildObj, $iChildElem ; For each child For $i = 1 To $iReturnCount ; $tVarChildren is an array of VARIANTs with information about the children $vt = BitAND( DllStructGetData( $tVarChildren, $i, 1 ), 0xFFFF ) If $vt = $VT_DISPATCH Then ; Child object $pChildObj = DllStructGetData( $tVarChildren, $i, 3 ) $oChildObj = ObjCreateInterface( $pChildObj, $sIID_IAccessible, $dtagIAccessible ) If IsObj( $oChildObj ) Then PrintElementInfo( $oChildObj, $CHILDID_SELF, $sIndent ) WalkTreeWithAccessibleChildren( $pChildObj, $iLevel + 1, $iLevels ) EndIf Else ; $vt = $VT_I4 ; Child element $iChildElem = DllStructGetData( $tVarChildren, $i, 3 ) PrintElementInfo( $oAcc, $iChildElem, $sIndent ) EndIf Next EndFunc Window handle OK Window object OK Window: ------- $sName = DataGridView $iRole = 0x00000018 $sRole = table $iState = 0x00100004 $sState = focusable $sValue = $x, $y, $w, $h = 2, 122, 1368, 580 Children: --------- Window = 0x00050296 $sName = Top Row $iRole = 0x0000001C $sRole = row $iState = 0x00000000 $sState = normal $sValue = Top Row $x, $y, $w, $h = 2, 122, 1368, 22 Window = 0x00050296 $sName = High $iRole = 0x00000019 $sRole = column header $iState = 0x00200000 $sState = selectable $sValue = High $x, $y, $w, $h = 2, 122, 61, 22 $sName = Open $iRole = 0x00000019 $sRole = column header $iState = 0x00200000 $sState = selectable $sValue = Open $x, $y, $w, $h = 63, 122, 64, 22 $sName = Low $iRole = 0x00000019 $sRole = column header $iState = 0x00200000 $sState = selectable $sValue = Low $x, $y, $w, $h = 127, 122, 64, 22 $sName = Prev close $iRole = 0x00000019 $sRole = column header $iState = 0x00200000 $sState = selectable $sValue = Prev close $x, $y, $w, $h = 191, 122, 65, 22 $sName = %Change $iRole = 0x00000019 $sRole = column header $iState = 0x00200000 $sState = selectable $sValue = %Change $x, $y, $w, $h = 256, 122, 67, 22 $sName = Row 0 $iRole = 0x0000001C $sRole = row $iState = 0x00200000 $sState = selectable $sValue = 686.80;679.30;667.00;681.60;-1.97 $x, $y, $w, $h = 2, 144, 1368, 22 Window = 0x00050296 $sName = High Row 0 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 686.80 $x, $y, $w, $h = 2, 144, 61, 22 $sName = Open Row 0 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 679.30 $x, $y, $w, $h = 63, 144, 64, 22 $sName = Low Row 0 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 667.00 $x, $y, $w, $h = 127, 144, 64, 22 $sName = Prev close Row 0 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 681.60 $x, $y, $w, $h = 191, 144, 65, 22 $sName = %Change Row 0 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = -1.97 $x, $y, $w, $h = 256, 144, 67, 22 $sName = Row 1 $iRole = 0x0000001C $sRole = row $iState = 0x00200000 $sState = selectable $sValue = 285.00;279.55;278.10;280.45;-0.32 $x, $y, $w, $h = 2, 166, 1368, 22 Window = 0x00050296 $sName = High Row 1 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 285.00 $x, $y, $w, $h = 2, 166, 61, 22 $sName = Open Row 1 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 279.55 $x, $y, $w, $h = 63, 166, 64, 22 $sName = Low Row 1 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 278.10 $x, $y, $w, $h = 127, 166, 64, 22 $sName = Prev close Row 1 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 280.45 $x, $y, $w, $h = 191, 166, 65, 22 $sName = %Change Row 1 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = -0.32 $x, $y, $w, $h = 256, 166, 67, 22 $sName = Row 2 $iRole = 0x0000001C $sRole = row $iState = 0x00200002 $sState = selectable $sValue = 2556.00;2522.00;2492.30;2502.55;0.45 $x, $y, $w, $h = 2, 188, 1368, 22 Window = 0x00050296 $sName = High Row 2 $iRole = 0x0000001D $sRole = cell $iState = 0x00300002 $sState = selectable $sValue = 2556.00 $x, $y, $w, $h = 2, 188, 61, 22 $sName = Open Row 2 $iRole = 0x0000001D $sRole = cell $iState = 0x00300002 $sState = selectable $sValue = 2522.00 $x, $y, $w, $h = 63, 188, 64, 22 $sName = Low Row 2 $iRole = 0x0000001D $sRole = cell $iState = 0x00300002 $sState = selectable $sValue = 2492.30 $x, $y, $w, $h = 127, 188, 64, 22 $sName = Prev close Row 2 $iRole = 0x0000001D $sRole = cell $iState = 0x00300002 $sState = selectable $sValue = 2502.55 $x, $y, $w, $h = 191, 188, 65, 22 $sName = %Change Row 2 $iRole = 0x0000001D $sRole = cell $iState = 0x00300002 $sState = selectable $sValue = 0.45 $x, $y, $w, $h = 256, 188, 67, 22 $sName = Row 3 $iRole = 0x0000001C $sRole = row $iState = 0x00200000 $sState = selectable $sValue = 364.50;354.40;351.20;355.60;-0.73 $x, $y, $w, $h = 2, 210, 1368, 22 Window = 0x00050296 $sName = High Row 3 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 364.50 $x, $y, $w, $h = 2, 210, 61, 22 $sName = Open Row 3 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 354.40 $x, $y, $w, $h = 63, 210, 64, 22 $sName = Low Row 3 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 351.20 $x, $y, $w, $h = 127, 210, 64, 22 $sName = Prev close Row 3 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 355.60 $x, $y, $w, $h = 191, 210, 65, 22 $sName = %Change Row 3 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = -0.73 $x, $y, $w, $h = 256, 210, 67, 22 $sName = Row 4 $iRole = 0x0000001C $sRole = row $iState = 0x00200000 $sState = selectable $sValue = 33174.00;32312.00;32251.25;32945.70;-1.00 $x, $y, $w, $h = 2, 232, 1368, 22 Window = 0x00050296 $sName = High Row 4 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 33174.00 $x, $y, $w, $h = 2, 232, 61, 22 $sName = Open Row 4 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 32312.00 $x, $y, $w, $h = 63, 232, 64, 22 $sName = Low Row 4 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 32251.25 $x, $y, $w, $h = 127, 232, 64, 22 $sName = Prev close Row 4 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = 32945.70 $x, $y, $w, $h = 191, 232, 65, 22 $sName = %Change Row 4 $iRole = 0x0000001D $sRole = cell $iState = 0x00300000 $sState = selectable $sValue = -1.00 $x, $y, $w, $h = 256, 232, 67, 22 +>20:45:12 AutoIt3.exe ended.rc:0 +>20:45:12 AutoIt3Wrapper Finished. >Exit code: 0 Time: 1.419 @LarsJ you people are expert coder so please guide should i use this code to extract information.1 point
-
Looking for a nice About window with credits area
FrancescoDiMuro reacted to UEZ for a topic
Here a fast hack: ;Coded by UEZ build 2021-04-11 #include <GDIPlus.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit AutoItSetOption("GUIOnEventMode", 1) Global $sText = _ "This is an About Window ²" & _ ;² is the marker for the column width which all lines below must follow "coded with Autoit using " & _ "GDI+ library to produce " & _ "this flying chars effect. " & _ "------------------------ " & _ "Greetings fly out to: " & _ "All Autoit users around " & _ "the world! " & _ " " & _ " " & _ "Coded by UEZ 2021 ;-) " & _ " " & _ " " & _ " " & _ "Press ESC to exit. " GDIPlus_About($sText) AutoItSetOption("GUIOnEventMode", 0) _GDIPlus_Shutdown() Func GDIPlus_About($sText, $iFontsize = 16, $dx = 35, $dy = 150, $iSpeed = 33, $sFont = "Courier New") Local Const $iW = 540, $iH = 500, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ About Window" Local Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi $bExit = False $hGUI = GUICreate($sTitle, $iW, $iH) ;, 0, 0, $WS_POPUP) GUISetState(@SW_SHOW, $hGUI) ;~ GUISetCursor(16, 1) ;create canvas elements Local Const $hDC = _WinAPI_GetDC($hGUI) Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) _GDIPlus_GraphicsSetSmoothingMode($hCanvas, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) Local Const $hBrush_Clr = _GDIPlus_HatchBrushCreate(18, 0xF0B0B0E0, 0xF0F0F0FF), _ $hBrush_FPS = _GDIPlus_BrushCreateSolid(0xF0808080), _ $hFormat_FPS = _GDIPlus_StringFormatCreate(), _ $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _ $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _ $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16) $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") Local $iLen = StringLen($sText), $iColums = StringInStr($sText, "²"), $i, $u, $s, $r, $iChar_Space, $x, $y, $t = 0,$f, $b = 0, $a = 255, $iCharCol = 0x101030 $sText = StringReplace($sText, "²", " ") Local $aChars = StringSplit($sText, "", 2) Local $hFormat_char = _GDIPlus_StringFormatCreate(), $hFamily_char = _GDIPlus_FontFamilyCreate($sFont), $hFont_char = _GDIPlus_FontCreate($hFamily_char, $iFontsize, 1), _ $tLayout_char = _GDIPlus_RectFCreate(), $hBrush_char = _GDIPlus_BrushCreateSolid(0xFF000000 + $iCharCol), _ $hImage_logo = _GDIPlus_BitmapCreateFromMemory(_Logo()) AdlibRegister("CalcFPS", 1000) Do DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 112, "float", $iW, "float", $iH - 112) ;erase canvas background _GDIPlus_GraphicsDrawImageRect($hCanvas, $hImage_logo, 0, 0, 540, 112) $rr = 0 For $i = 0 To UBound($aChars) - 1 If $aChars[$i] <> " " Then $f = $t - $i / $iSpeed $s = $f > 2 ? 2 : $f $s = $s > 0 ? $s : 0 $r = (2 - $s) * $iColums * $iColums $iChar_Space = $s / 3 * $iColums $rr +=$r $tLayout_char.x = $dx + $r / 2 * Sin($t + $i) + Mod($i, $iColums) * $iChar_Space $tLayout_char.y = $dy + $r / 3 * Cos($t + $i) + Int($i / $iColums) * $iChar_Space ;* 1.2 _GDIPlus_GraphicsDrawStringEx($hCanvas, $aChars[$i], $hFont_char, $tLayout_char, $hFormat_char, $hBrush_char) EndIf Next $t += 0.04 _GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) ;draw background message text _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI $iFPS += 1 If $bExit Then ExitLoop If $r = 0 Then $b = 1 If $b Then $a -= 2 _GDIPlus_BrushSetSolidColor($hBrush_char, BitShift($a, -24) + $iCharCol) If $a <= 0 Then $b = 0 $a = 255 _GDIPlus_BrushSetSolidColor($hBrush_char, BitShift($a, -24) + $iCharCol) $t = 0 EndIf EndIf Until Not Sleep(10) AdlibUnRegister("CalcFPS") ;release resources _GDIPlus_FontDispose($hFont_char) _GDIPlus_FontFamilyDispose($hFamily_char) _GDIPlus_StringFormatDispose($hFormat_char) _GDIPlus_BrushDispose($hBrush_char) _GDIPlus_ImageDispose($hImage_logo) _GDIPlus_FontDispose($hFont_FPS) _GDIPlus_FontFamilyDispose($hFamily_FPS) _GDIPlus_StringFormatDispose($hFormat_FPS) _GDIPlus_BrushDispose($hBrush_Clr) _GDIPlus_BrushDispose($hBrush_FPS) _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) GUIDelete($hGUI) EndFunc ;==>GDIPlus_About Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func CalcFPS() ;display FPS $iShowFPS = $iFPS $iFPS = 0 EndFunc ;==>CalcFPS ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2020-06-05 Func _Logo($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Logo $Logo &= 'iVBORw0KGgoAAAANSUhEUgAAAhwAAABwCAIAAADaNT4jAACVR0lEQVR4XuzVPwqCcBjH4Y7aFDRFW+BQU3ODQ0SrkycQIxAPUeIh/Dcq/uoM0hI8z/x93/WzCj8CAH8TFQBEBQBRAQBRAUBUABAVABAVAEQFAFEBQFQAQFQAEBUARAUARAUAUQFAVAAQFQAQFQBEBQBRAQBRgXkMYVpwB4gKzH3XVO9XlhfxLd1H8Xp72uzOh+Plek8ez7Kuq6Fvv7MFr4EP+2b2W0eW1/Gz1XrXxfa1b2zHSxzbSZylt4H00CiA2KZpGiSEQEItgQQSmn+Al3nmBcQD4hWEYCTEMmLUTT/RTZOehsl0nMWO7Xi53nKv1+TuS92qcw6/qkpfNUmmY9PpRD2cj6/tU6eqzr0PdfS53/qdYugnG4VC8kqlXCzu5jfuLa8VVjb2t/eaD2rIERFJbEINTHJIIrHhiut7BG2ZpJGJoZNDfWMnohNjudGRwdxAfzKZQJihp6FQKLCfVn6iUCiJuA9KJbDI6vr2Sr64tnV/e7deqiOHW4hGqGYzTSOEYAyHSvjtzgWEwxmBuBDcc7nbRLxpkFYqIgezkbHhzMTYwKmxoRO5gXQ6RaiOniNHnKcYY/RlUCiUVBQKt9O+f//+veL+6trGSn4nf69U3G+Wm6QjbMzAIhZjoUUChRz9gsc4cAwWgWM8tyW9ho5byag80WuOB44ZG8kNDeYymQzTzK9OJBjj45541NMUCiUVhaLZqO3t729tF1fz91Y39jcKpf2SV+9YLmeY2WARShklBB3NIsdyDLyEEJ7ncbcNjmGoGbNEf1obGUycHh2YODV8cniwpydjGNb/WSRAaATgs07UarcbjUa73W614NWCDxAeTAhhjJmmaVlWJGJblm2aOv7fo8E43TG7lkIKhZKKQpHPr/35X/zV8rZTaUc6KBrczrIo0yllBCPUvaP1PMChZoSQnHue6wivRWTbJM2UVTs7nvj2' $Logo &= 'H//h0NDQsXTS9QQ0hJSNev3g8GB///7h4f1SqQRCcRyH+wiMUVcVlFJoM8YMw7BtO56IQnLq68v29vREbDv0hxDi+UhFoWDo64NCMTQ0/M7v/e6nN5duLxXW7jVKzTb3CCEM0cAo6LkZBZAICN9VCiQ5w+2U3R4fSp6fOjNzZjSVSh03oASVHlyv17cK9/L5fHGn2Gq2PJdLIRljsEvXdWiEVoCDu/kjbDgB9x8crK+vE0qikehAth/ElsvlYrFYqJYn6kShUElFoRCHBwfLK+uzt5dvLWyvFZrVtiVojOkRvw7/lUWWMKAIgSCbeE4N81rSdk8NRS+cGb40Mz4xPtzT24cQOV5Awf4PNA4OD5cWF0Enh+USbFJKDd2AXVgiQin0YJ/utIVNEmxDGwOccwJQBIgA7nrQBr0NDw+Pjo7192c/ryL0OAqFkopCIYW3u7e7dDc/e3vl1mJxc7dd70QQizPdYozhLy2YUCQwhgcmcRrYq8ZMZ2TAPD+Zfen8xMy56Q8++PepqemZ8xePW4GHfyTIGVAimpu7s7m5CYWTIJFoYWoRQoahhHOOAeKf2C2o4AC/LXAoE9gKjwnPokSDtuu6cLplWaCWycnJbLaX+COLUDA/1i4KhZKKQiG8TqFYuLO4Nre0NXd3d3PHqXtRRG1NtyhlGMtQMMcRCfc6TQkiMToj/drMZHZmeuTs9EQuN9BdVfzOH3z7N9765bd//c1jSSX0Qalcnr8zDzesatWGpmmMMc551xndg4UI6yiIUPLI7S8JCNxtYyLxZ1DyUE7BCNJ1O5qmj4+PnT0zlUwmu/fc0BejUCipKBTf//678bgdj0V39so372zcvru7ve+2RYxoMU03P3tORTxRJJxzt+MvII6ZfDDDIZFcPDcyPNjHudB16/Tk1COOeOeP/uTNX/qZ3/rNbx2rfAKBY2VtdW5+rlwqg04IZtAPnbDrkdI69Oi6Dv0SccCXSADsogGM6tAIB/d4BwYJ' $Logo &= 'D0OShPohwX/GGOyC4BKL2tNTU5NTU9DzPMKKQhXqhRDoOUIIaXecWqMWtaOM0nKt8njDMkxo+x/s/yWKY32hFtz9+3+5uryjj56InB2LvTxz8q1ffEUIvra5Nzu3Mb+yuVfRHG4QPcqYjoORBecQSYRbtzRnKMVnTvddmjk/MjwgubuxvXftxtrf/NO11c3SG5fif/an33n0s2Hc6XTQ0QiNAgFl9vr17cI92LRtGzoF9xMG2AUBXVswBvGiXm/s7BRhDVi58gDK+K1WC8QQSoUFmIadSCTi8Xg2m01nkvEYiFPvAI4HIACTcMGYYRggMOi8cfPm/sHBxYsXoeLy4r2iUKu/MCYISbhm7y4vLt1dhM1YLCaECDN7iODc9dxuivcA7iEUxHYhYFY8jN4SurDreW3HYZRRSjquqzFNStFqNSGtu51OpVoaGxn95uWf7e0b0HX9i9WiUBDK+vt712rJnQbbut5677/mY8aNkQH28rncr1y58Pu/01Nvdu4srd9a2Frf3q82BUIymaSnTvZcOndm8tSwxtDmtq+f7/7rp9t7nYZrET2u6TnPTCVTT5oNwcMrR3yMkRBSKBZnb8yWy2XTNKEnTB6MYc6FFJgxTdcIl2L/8CC/vl7c3Do8PHQcx/eBGQcDpdIpTWOEMUKJ53qwq9VswrOf9ZVVIbilaz2Z9NjoyMSpsXRvFhPadFyYUyBaLlyEKZxF4B0Mvbi7U/249tLFS7BC7IVX7xVKKkhKxD13fX31o6sfSikz6QwXnATr68N19AJ2ex4cRqhvjmarBRJilD6UjZACXuGSzGA02IRkLgSnlEp/EC4Fh9EqlUq1Un7t1ddGR8dTmV4d6egpKBQ4EdWl16Z6lJoWsmxPoqV9b+798t+++2FPjJ8ZS3zj0vg7v/3zPekEIZQGhYpCYffTWyt/+dfv391sVFoGYnHNyFGbRR5WYpCLZTSWQo9DMIxwxGXIyyvLt2/fFkJEo1EZAO2wFK9r' $Logo &= 'umHYIInV1aX5uTuFnV2OcLJ3cPLi5RODJyCFxJM9lmWFKgJgOC4497jjdOqNWq1e3dvd2dte3ykWPv7v65/88PrJoYHz52fGx8fjVqTZbkN0CeWHAyKRCPRcu3at0WicPn36RS4MUyipdPOKbUcy6R6QRBjhCfYzhxNcu4wxzfCPAhCAqa4Zhq5B/qAuzB6Tc5CIG+4N10V2ALcDw4Y9AAiIu2AgZFoRQghGR0KhyKQTUpaDpq8EjJDGiKYlEEpVhfjPpfZ/3F4x6a2+hBzo0XWNFA/a2wfCkSCSFNOyVqK7ZozDHx+MJXdty0SPQSkzrejTJguGrL6wuLC8skIp1TSNc46D2on0Qb5jBFpYWLh+fXbvYD+eyFx45Q1YU9Z3YjiVTsPxhBKEP/fIvQRg0z/dipJEpk8Ib3xi2nVa5dKDw73d1dXl1aU7//y99070937z9Z86NTUNFqlWq11zCCEg/XDXm5+fB5OdO3cu/D734tWiUA8/UkoNTUOCNxATCMeR20JGi5oESdwo41YdMWYh19V1z4hiZjMpCWOoekhaFcI0jFBoFkFwh5kESwwdhEjodQkcCS9d1w3dCKqRLx4p5VM+iUR+DHtxKNIJG/G9h5m6i9/mBCPTMJFpwdauIwqbrpSSMY1Gw1AiEBJIPnFVi2dQFz2GYactK/LFRuGcz83N5dfzoIfwlhclVAaDQo9hGMVC4erVH+TzG9n+3JVffXticqYvO2yZMYodKXyxCZcH84F8Vh9BhMLZRIBMOApyv29BYUSTvWYykx0em7z46uX88uL8jR/94/feGx25eeXKlcGhoUaz6XY6cL4f0AhmhiGlhOVn8PfMmTMw0Z55iUWhpNItJ9Kn5WAZ/EpGKdONtkANLSmZqYsWJ5pLfKkQ+wFuVAQiRHKPWk0WlVQjGDkwvpGSdqmNqZQIY3+oNtI8pHEkuPD7CEJmrWjWqw4EHE0TQkA9H+TyTBZBht/yjlVcfWSmOU7bT1au' $Logo &= 'C/vDRMaoRhk1DNOfrpgcfeGDlIhS363PwncA+voQGpr40fSZ0pNJIOmiH0M3vjCCmK6hgDCUfAEEyd6+PvQYTrtVr5WeWEfptpeWlra3t0Fm4fVACfEEF5jatoWE98NPfvDxJ7OYmZd/7tfOXngp2dsPR2K/bFllgUUokYQiii1oE+KPHJrFfxchDCqFpFwyKiTyXCQJF4gwM53Jxl9JDY9PLy0sLP7ow+/+3T9cfv2nX3/9MrKsRqPujyM5JhRgjBUKBWiAV76S51cUSirdJ3XRESBSdCSqIL1t9nh2b4s70CnD9BEZkJ7HHZd33A6XLsHdQWm6p53gNdfjQhKMP//GDY9zj1tCppsVzDtIyo7r1puNaqMWjcYIDPAMkMepIeFHplmzWd/a2iiVSrVqRUgviGtaxI7Ztt2T7YPaT8SwukI6Yo3qy81iCT+hn75mYHyEC00e1zqnJ0Zt9pGQmKBngxDYotVz0yOP9K+srNxZfWCay2+/+QuabjxyzYSN1dVViAKQSLqyCZ9qTFl6pVZ/99/eX1nLD0+99tKr38gNjZh2FCHudhxKsaFpQWkfhy8WLg2mMhAKCUcT0CeEJyTnEhOs6/4pnAiMPddDRMhEInXh0sv9udz87LUPPrpa2N741ltvJ1PpWq3M/VjGw9QCHw+evoS/U1NTz/6LiUJJ5X/Yew8oOa7zTLQrV+fpnpwwGAwGg5gDCWaCYI4mKZESJVHJsq20Ppbzyu+tfdZrH0u29lmWbAX7SAySGMUgJokBIAiQABFzDoPJsXOu7n7f/9+aOs0ZABwAFA/fPl0Mm9XVFW7duvcP35/Y63H81KnjkGgm8kDA5kEcIFTbNLtjTsBtu8ZjelsWCexF1QCqVVL0sjCjlMBDihaZ20E1VIj6JSwlF9FOESMAp5ukS7EU/OQSp+QsC6vE1FRyAsAakcsWDPfZdD5HypDbMHGJeCp3/MTR44f35XNZL5s6He6ALU7aqolU5eiZSh4y' $Logo &= 'JMWZpokcrhAP/T5/wB/E/samVtzS0SSmo6CMDA8cPHwQbqAwbMbjsTRnjYX3gdB4sOg1TddUzXCb4HzIFzujpXVe19zW1nZHtXKiECqbIBDdo7Hd3cPpbN6SJM3QxJALblPCIFo0iE46QMi44NQgTF6PEfSZ0CiDbr0+4Knyuv0ew7kyjvjoS5t4KX2jsfX7u4czOYyfT1ezkEBKRCotWEXSWWBRV3Q2r5s/47wu29HReefa9kdeGfBVNcJr5CIj6sEC0vGBf/mL29ra2if99svnX88orW/vjx05enzBgvlTxRFoAMePH3dQLycBl8/rHR3oe/yXvxqO55ZdecvsBSvC4WpZ1yBQaYqLsSm+AjcZTZGw3rBTMBhxEVZUaBBdRWKg+MCyI1VDxhWY+WBnGdpYuap+5pJLPdW1tXu3v/3ww4/ee+89rTNaEokYxsaZ6kDhwFewWGbOnOn6wNvv2u9sKuPjY5vfeWtosN/FOVAx59LpVL5QbO+YHwwE/a0tmLVM+DgiC+SSuENJKhakQhZ8A6QQJntEYhGWJdsJJRSgwqCQhDxIGdj3iyWVfwLdR7AWeFMZfSqrsEioQEXKZBqFn76Vp1mvoilqNpPe+u6WF59/Mh6P1Nc3gLC+hwcoMsg6uoPTCNzQNHQSC80N8c/nVRUJHAVuoQCOOzvntrd3Yo03NDSB05wRORJcM18sxaIoQLvvyJED+w/u6+3vTyaSWPkAKHA7NFuIxrX4X4HwB5wrNzY2Hpm/YEbrrLld85qbm/2+gIiXngQsSHz68aHoL945GM/kC5JkmAYXmyIWi6EvYdCzuSIbmSb8F8A28VH2ufWglxCVoNtoDvnqgt6ZdVXNVd56vwfbTJbAnD+iaQQde8eunpEfbNh7PJoERwmoSrJYhqqKd58pFEeiKTDqv7vr0vNlKmh//OVPqepjj/36dFGrA7m8oGQtEv6y2bTbNfw3X1p17VWrz4izlYp99YFSQ30lMmaHxEOX' $Logo &= 'PXz4sCyYAK2UstgPszx0l6ee+GXJCFy67sbq5naP10dyQ8nirP2q3VE+S+KG3QphVcRR+FMWGg8akDQFs6KMGSEOdjETok6QrKMb2A+UregN1rXNXeoJHd32+kMPPXTffR+fPbsDuZAFn3MmPFgguldTU/OhgWD/f0HbfsdUQP6QJDWZSgNxNUxCcgsWEU4rG7cycRFRZVMFiZpYgySJ5Ymgc2kj9hlWJMtOc0RHIHl3ulCU+VRV7KL1UM4WrBLPLdrAEgKCLdQaaqQkZaETQFgDS8qlYc7IZgv4xCmTIJKsK+eADLm87V2WSqZRx8l+Zmj6qrx9x/bqmjq/33f9DTdfuvKySryisoElDo1FXnn5+U0bXimxuhYKhmqqa9GviVSAaJKDp2Ef80hiqflc7t1t2za/805X55ybb7x5yeIVUF/ONtp46niuYGFACLYokBEqk4FqI3k8FL+Ai6maBSbGT8nOTApulLCs6FgsX8IAuvS+UdMgitQWDqyb2/J7y2Z73YYgix9V3EsSHrUD8UwCcjYeDnMjm8srWgECN1K9Zy2wdJ9Hq/FcCIiFaVQbMr/1p1c+/My7O47kJb1aN0wRSD/NrJG5bEotRa5e7FvW1bZsybwzEr55XTOLmV3LVjZU19RMopJQZAGOYR0J6zc2ePoZXp9x6uSpJx9/tuhrXLT6Sk8g7NY0FSo+gGQXBDWFJpaAuLAhtBNXWcGrV8uKqpCgxDAYfoUUI7zIJFtjxziW7U+JroVJSxdQdLVUcJvudMZrems7V91ycO+rv3j85w/e/7mZXTOhdmONCealc9QkklrCVQzuy1PJ/aRsx7QxtQzMeTbnXGfopqaQmVQYZurpk7qK7bPda/rHOLj3pB5OvZdz1tkuPp0Dph5c2YGpZ03dWbl/GmMy3fGZ+tIvkKkIGRoyjmInp5OFMz5t0KYsskWAAmK52IRLTHWChEmQxjQnhxV0iM6SIEdlLCtr4QecSpZGhQ300Fey' $Logo &= 'FnEUPlciPqGocj7jSo65sglJVmXS4Olm1BvIZQWQ65zE2jooD64luRy/ZDpAVjVF1SfmmhMKIGmqTgX8wIsKUiaXH49G8UB9fT2nT5288fqbg8EwHpNFv5Lj3LV//563try9ceMbieh4oCrk9XjBYvEn5EC0M9NKjs7Br4V0GvjYnj07rQKqE46svfZG4SYk9JWKSVOKpNPjuaKuSioGio5gfiwr2MAYlVRNwhVZbJXtMxmWYTamyUSNABVG07lkzhocT3b3DJ/sG71+2ezVsxrxqnC7j6yLKN4jJIZkPCVh2E0tbYFlsm+6rGQKOcxln9sM+f0XcOX1b7z+la9+pbml/S//9Mt339j08vp9Ow71Jwo+RferqiEI83t0lzLNPZ7SmWI+FnZn166oufOmdb09Pd/4s7/euuXMqb0KBQv0G9N3Kvk7ffo0IhxBpitFFrdHHRwZ+PnTv1QD4QXL1+jugKySZ+OEw7xUnlxiixkI/ckqHwQ1BbKDxmoyVNZCHhZNvGJMWhXhjY5wY09Oh+zQqi17fP5YKu1SPfMWXHN071sPP/Xw5x78XHNTUzIeB7MSN8WySiQSwMEQvHJGyuhQOvG1Eiu+MLWD113pjAS98r6VOTSnQ1gvskizw9imXhxfp/IYQYHOeHGn5+dbGdqhYZUjP7WHH2xRamfwJzGSSfzmQpgKVp1hmGiAg92mCVKKeyAGxTA8kPWhN2BS23YCx/YAFB/wFnQUbDDqJTgKlgK+QkFJWxYBXAI0g9KDTrPuUoABpQJxKGB3LqMnh2UrDUirYOWFEiPcrGRFVcnuUsZyxZqqfHIx9hBINciGJYY72LLpshOJ6xaH0Qi3GUB2WJG7d+0cHBgYHxu78457Gxub8ByOJWLHjq1PPf340WNHEDjW2NRiGgbwtBKvV5iR8H96am5l595ouDHje6bpxgBWBYMjI8P79+8/3XMaj3zHbfcIj2QnDA10ARVxsdTBLA3FwDjb+h8QG4kG' $Logo &= 'Dp+qrtOc5VlRrITpZM3UNYl9gbAfRilTLyZT2b29o4f7Ro8NR7PXLr1mfhtJAHzuR6yxaS0PzpsFY/Ebqs9jFmQZ40fdNUD3c5Ip14YC4WDw/Mt5nfiDP/iDeHQsHh3/3Oe/5PP7b7h+7V998dOJjGv73m4kahmNWdmCUnLZCRoUWpo5j1GuDWlz26tXLVkyt3PG6Hj0u//x8ycee3jN6iWQ3M98o1N9shE+1h1LJWMeb8BZb9CMh4aGQKDxleFhS2RkgSnu8aefz8jeRYsvd+lBKFBu1ZAlFQvEpsk018XbkiolVjTs9piGpkpluiL0OJHZBTixhlli5QrvQXHLvC12sBSHpaQZmJXeZKZYkgMz56/Zv/f1J5584guf+7zf5wMsIepIiuwv6Hx1NUwwtZOYxNnUEbEWLh7+wnXOTWQ/tLL8lZpTJVE+21fBaM5xKbRznD61nbte59k1p3Lla7qYx5/63i8W/qqYjyWxQbYKDmxERGIinfSYpphJjnBFoE8xD/s8tis5Cv6lLAscRZYcuEgCI8lZFDQgTPdQbnA/8XvOysNS7yFpTC0VwcnI4k96jCLRMaxDQUeJJxJEESpZt/2ZK+F8bjK5tRgAoS1uE+uNGpgl1pIvEIjHE08981QwWP2J+x8Q05qfNPvOlk27du+ora2vrWuAQA0FCQyAPXwk9KfE2zjYcRSwmYQFK3rB4e1ouAI42anuk+9u3Tp/7sLm5tZKHKyMZymqhVxRyWclA29Ewz7nBTgb4uoCJwQjlc9An+k0TZaqfGbAXTs6Ejt4evjXu080Vwc660NUseMjGTozGE0hUwqGF9JCqUzKaN4qU0YREkzAfaFfsvp7Pm1gYODWW2+FCy9/IzAyHos8+eTTz//qpSVLlt579+2rbpmDZFmqpmdzlsIGCtPQfV63z2viZu9s3f7a+s3f+tdHDxzYGx0+WixkYLiGdHXGVbJz/2nDXTUYSZw6dXr+goUT7uY5qCkit0pR' $Logo &= 'GFLYKIiu/PrXbwyPpueuWlc2aouyrqlAlsFRhNov44PXAK0ZZ/1NzC1AnnI+l4mMxbOwbuazkN0gXWEuaWaViA62ZS9bia7UVMqs59Mn5C3dY6RL6WLJM3vBNcfeff5Xv/rVJz5+H3ajw2Jd4FKwSp46dQr5xAwOZKmksAcPHgTLBL/BMWTh4f3YgNCGnGYoNzlv3jznlPPy2oedaXBwEOYczqXm0GgaOiQ9w0iuXr16UmcAMKZSaV3XnLGqZE5ix3Soa6UeIMJC4Y+D/txyyy3YFlkPxAEYpSxXdxZ52JzimxN3tOUBu+sTTcSDQ6rwcsNoY5zf16SE/bjR9u3bMSZC+nESHwjej6m+YsUKZMmqvFQiEYfDIdBLC2TTFlBsMiuGVBjqzphYj5Ea+z96JPYMdB4N9HL37t0o+7Z48eIPIvhxgkTa+SHAOXRR3aFYxrLL5rJFo6wXJdWV48MIlcYNGPUCR8ngMKEA2TI1UUaC13CxIns3sXwG1Ae6DEMguI4rlc2hKHeJr8ZYsY0GMJJs0Qrkjk3yEy7iyhZ9IapE+kRBLhUZAFCJeJUdmEECSMcgnCuTTr348nNVoaprrr4Oahk83zZt3rhtx3YC7lQaVTymDYvnc0KeZBTLQvRyPB7FpaCUBIJBvz+AdY4Fj7tNyvik68beA3vf2PD6x+79BAgBBbJIorflSDqXyuahvDgonoRmn0vwYJ4z3wgGBi7qiERlx4eYPyUxbxh/193GWK745DuHuhpCYCrOpPqoRbIMx1Ij8TQ28IScU9EeAPxBBPCqasg0Srnc9C8IenfbbbchLmQq3chl01u3vP3uu1uE/UBRQQeN2Z1zV116eaCqMRpPnOzu379n22g/DCEFfslFMbIgAWdc9mOjw4dOxnS9PpPz7j1wbMHCRWJsh4eHAXxhzWOK0pwhA7pimMaOd9/eefhA69yrFHcdwFFgASoQYrxel46pzZ4pAHOJsQj9G1xWKKvkpqG6UnEQ' $Logo &= 'bfyNw4kGGjeOQcc4laTH9Ic8VY2ASUvZrCBh6H6R/ghJxQYkPhftIwVeI6W9BKS0KPnq5l6xd++m2VveueyyywVTQYcFoQEIhgdxiiKLy2IxnO7pQe6yxobGdDpDUDA3RSXvAzw1KA6YygVY17ABjrJp8zt1dXXpdLpc0fCYmXQSpBNMRfTEYULbtu/EwaDy+DoVnxEfmiY6qfAndjjhyXwpBh9EigGbxGGINO2FF1644YYbiKNMZJWOxKJoSByFF4B8a5AUcV8SVVmydXo7Yd4l9yOx9vGpcgS3AH7wysLhcBU3r9tT2fOpdiPwrbc2bwILpxuhVXh0GjoplEiFIFIvStywsX3Hrt7eXrw+UQqhAgi1kRWhkgpuoXATQ8Gzlau7FSw0nIuDoNxiEHAMco8i48PmzZv/8X/9w8VE1E9Ve11846LoHafahlRZoIyoJXSjVMAqYQKhgAgyxUxbxVRhAvVimzzwLvzhCZjIsX8SjuML4lwcKhOzUeOSz5WTXLCaOPgWTYVigW0qBJKA1ucLgoFV9jhbEHW8aS2rWLh5BTspLN+gqk2OFxD4DLgC22bMGa0zDh7c94vHH8XGgvmLsFo2vvVm30B/fV09Dsd75UfHqXR73I5Gni1JkHC9dfXYgKEGh8G32qCar6RtOFISguNwfFNDw7ETx97atHHl8tXLlq1Alj8cA6KGw8YT6Wi2UNI0sjCweifgQ8Ek4EAHjMgiYxJFTiu8QgTxVcgpiMdwwqmamDS/Fb/PrWjWviM9mw/13H/FQk0hnK1MA6JOgUfxd057vlh359+4l9K5rzaSzo2lc4x5lrMUEOgq2RVCimDaXt3TEvAqIIjTaxAev/CFL+zYseMcIimmBIQ4JCxhCSG3c8e7u3btBFFkEdUCKjrVSWzVqlVnvNax492RFOi6oujB/Uf6hciFaQA3YsdIYANfbnNoaOT1t3YEa+d4g415S3ZrOo85WCme3QISJ/E8ByfBn8IjB4XU' $Logo &= 'oolQdJv6+HB/cnQ4mUyAqeAFagqLuiyWwlLpK0qJlBWqbZBlTSR/4eR5LtrAN/blxwanxccmKfAgcrlU2udrrm7uem3j5tb2prralkwaPIlGWyC0oE0gf5CsK60CWHfsrM9uzhMNB+PaQqK/YPhLhGE6YrXDP2g/t0q1BpR9z569FBOdy00N2ORj7CZsUnZTJgyZZcnurUIHOxAFNgI+/yuvvALvzU9/+tMig/UIwMzhIZTmhDsfeFiRmyA3kA6nmlhYVSnLvAIcQzfyH+JcbCNDKBRZsBboH7XVNZTVLRCwT5zqMcS5qx1kEhCQuBXplLo6VdxB4gaIAuB2QpWh+eSMTNkeJbbQCYZCl3VgfPw68RIVNMBOOFmAt5AYMOC//vWvv/zlL6Pa24UxFZ7vAsh39vB3kPSClWPzPf0mcRPvLk8md7KOkEM96wKEehWKDuqFf9BRQCVtN+KiJcYHnwWiiHyMiMSQNEsOlhS3KtFKJwrO0V9FYigZSo3H+r3FOcAnQZaYZCDxuCmO0TA0uoZtDB6Wk6FroMICapawsHTDXiea7nb7IP2dPHEUTEUUAydQjpuhU8NZdCg/LG6BPkCFnTtv/pyOTlyuu+f0nn37oI1Cw21qbMRZDiDGoZxFwAKmbgJSP3rkUFNLM4QWvKpalWCfTN5Kllx5VTM5EL9IACApYoIoC00uB/YcTyMKVPUChNeFG5ipSIbynuLsjtIN04QhlxuC3pFE9vUD3fMbAzVeDfGnqCCgqdp7mMr7eohJwrno/Jt05p2V1wIKkymVhV6ZJ0QUwBdPDMsCUwE8FPIaHve0sohiPP/2b//22WefPfdh3/zmN1999dWNGzdWcDnO4Hv2tmzZsjPu7+ntB4n3lHQIMemsTXlHRkbAsQSdLXKTVLwu650t70ZyxqyO+XlJk1W5LKlF9s7CtITvvUrL2IW9+CuBubKzZEmiLJZujx4fHx0d6oWffToZh1Mfi5g6oy4khmPxY1Vq' $Logo &= 'ZXm492R1U6dlEerMsJuQoCSsLNwFw5vF2gXb5vtg9stqAVwk2NBxOjr01qYtv3dHM7pc5iaeBVI5tIdZs2ZVWmsElceKsAo2KCSYoUOeLswPUGwL6okVJy7laCoSKxMOtwDR3LVrF+dKz3vcbsezpjL4zJlqLJLbTdXksxnPsY2rgdbv2LYdYj7mEqg5uAhEBKi/2MhkMyWGB9EfR7PhqeswlcqgN3ZUmmhi0MRZ4hhMEkBbsUgUDYoIog5w5SkGEjuaAnzdLhctqU7/TUOLjI87z4vD4A4O7U2gGiJjKYsqdmMhw+YxGjccRp/cnKFg+YBLQRSy+B+6DZoGZeWxxx67+eabb7rhRsGML8iluFQi2g2Tnkb3K7A6UgnQ2jGRFTidIPQYuQyoA04EC8H5hMZIAvXC1ywbSAi0heRMeAcdD3UD3EioHPxkxCkISgPcjEvlSBnjicvCOA+MhX2cP1+qEGewBYaCrjqKAm6fL4DcsKJadNXWwPoYLhRozPAOcEXhpivxqCZTyQOHDqxefSlruVHcARybB7dAj8b9I0JRIA44Z87cK9Zc2TmnS5aIHa5YsWb5stW7dm17++3NCE0wTaBouizAK6hTLEQDhUWfd+za1tnVtWjJslgijtCfaNrqG49HUuAjpRx0EeaFRRGMwk5rCIgExemq9TfObKClo6mxbGEwlkpkC0PxFKxPQY/p0xVMGZb3iSfhxiyZutyaMjge33qkt9ZoqXdXwVMoUU7Ch83Q3kOmAUCNJtJiJNN5C5CUW1ebQn5ICUBWZlT7SRqbRioY7BcShjPRTwyNI/hmLJXVVaW5CmYLrbHKX5kadCSRGUjnMkBRVJpAedanJBHUVyx5da0lDKVLn460+6Mf/ejb3/72uQ/7y7/8yz//8z9/8cUXXefTAMiccf+ll6z6mz/MEsqqKldfeZlwI+7v7xezsciNDF2G3tfTfeDgkXDj4qLqwbPpMvRdjVg/6+6Yj/iDROGYDBXM' $Logo &= 'MwwkrT4yJ0QGev0eLZ1MBQN+zD+aurKOZhNK1YPZAoNQIpke6O+vqW3EiJLIRY2C7cklhQNmyfWS618KdUXVtJySzJXUcEPn0WOHAMTPnj0btytxw5UFj2xoaHCUFUE9OZrYi7UrjhEElJLzQ0e/uIaHwpXBVPD0E1SbmAq6XFm4DBwFFBnDi6BmXpci6YAyyUWqzI16aSM9JOtiS8CDDqTvKNDAoyAXbtu27a//+q/x1LAq4aswn+AwdExA0A5zdTL+lCtaJVNxDmOnbfrnjKHw4Ehn0hhhSMrgMZ2dndCh0bepKhcALpBfAlSLzi8kIjuOc/gJnO/I4cN4CxAdhOqD6ziVQFlepYMnhhGnaCo3jIvDUXgY8BNzE5XIPn6Ftvr8889jFfz+F39fQIUXbKgng7MwHlisAUF3Zmck/lcU7rusQ7hKrMXbloocFD2E6zFEhj+VY1LYjlIEvcfqsb3VylK+THQEJ+ELq/kT1gLaT6fxqa6CHUBpR0YLtQg3BoEW4hgnR5JzjLzDXLF06TwkzsM7cABOULTI2NjJ7u7RcVQ6Sug64Qa4LDor3jJOx9DiMQF5HT9xDBwL5B7PjLuIKuK4mtBSgPMl4tGWluZLVq2+4fqbsXM8EYUJJxyqQrg1qlNAw33m+Wc5YpQev0DAlajjlIOEA4ByaGQIs1SVFF3RpFIhl7d6xhKj8ZRMgT1gQYTx0RRgwxHOHkvlZ9QEb1s86+o5TYlsDkMxmsj0RmAlzB0ZiR8Zjg9GwZ1yflPHCxH4oUK8t4zhLSpqLG+NxDOQSEzDHc8m4YAA+d+S1dFkdiyVScG1OpE5MjAOLkXMQHIls/n+8YTH0GfWBjHCNV6zoz5U43eHELdg6GGf2+9mjZvfqTQ5gxlxPcgAI7HUUCx5dChyaDAaz+ZhjYeG2Fod8ChSR13V7Kbq9toqXAp3HBmN9o/GwILBU4i4Yo4JsxkjreB+M8BUdO19OcpPfvITKObnPuwzn/nM' $Logo &= '//gf/wPIA9nwp91ASs6WPxTT4NOfun+SRQfSPfojKsPbIIxV2rbrYFat8oSb0gjFBdMv4YlIJ6FwWUnBf1hfDPxLRWY1iNRhtLeoWMb4wMkaP47JA9xmS56uUCMAijYEseRA17racPL08Hjcrej+UiFjEZJVwieuJjDnEoHNFqkqNE+YeckGcFvTVz2q+nbu3t46c6asGGXkVAJBVGltgNhBSMcgOMRakWRNUd2GCTovgvtF0XtyjOZ0DxcTBQkoAaIHAC1HTRGmo6JlCuwI+4HsA4oB9SS0QFMlbg6A5iA8gkg69m2hAwkXBowdjSQj2I6a6zYMLPxfPff8Pffcs3LlSvgjwGKBY0BYQOsrNSGHlONXgROIEahgKwINsTmuw6SdntgcVLW5Ah4NR+7cuXPRokXgH5NUATHaEAQr/arFsIjnFaYXMFqghBBrPG6j0meMZ28lxE1jwjMTh+OP5hLGaWLA6ZOz+oICKWW5VFNdA9VtoK//n771LRwrdJcLZCqOhVkMq3hpeQ7k5k2h01GcisycocBzCUBuOk8ossaD4mgxuSJxFDvdCDUwTdLvC6xui8OcAAwR+OVgM071COJkE7Z5MeikwzBIohoGCq8AKG5sbr5u7Q2XX34lEoVRiDGxo3J9bX10fGzru28/+fSTBw8fbmxo0NiIytb3Ei9LdmNhABGvB5/i6QoUdKhLrAM5PQSC4A+gvl4A2KU/GIQGhwWIkkpuj9sfCC1evGzfwX2UVtIR4uyXKWWyWUxruJzhZiKaB0K4r6wnC0WQciFOSezrTK+UCWvaKiVyBbemLmqr62gM9w0MgUvXBbSuBh+8qqPZ0qYTQz9fv+fQWMqoN4QMJaOHYGM8SlmAHFSDQPP5fS7dXZYS5AlXlvpjqTcO9716sHsskSrAYEOgiIRD0QOBwsNG1JtIYZEZ5dKmA8RuQwHfovbmy+e0rO5o5KcRAsHk7GNofZHU45v3bj/aMwY5QtOIWxeItx4a' $Logo &= 'jiGDG3hlU0P4c1ctunfVXIK/4EcIxcg0chbZqySsUpWImfBE0VU54NH194PpgYC/L0e55pprvvOd74ASQTAEqO2adrv00kshwE7nSEwbqClY1cJEj4cW4m1f/+CRU4O+6vYizXme78RPyOBBf1gzcplAsAnNm3OskCylmfroUHfIDTprxJNFXbczMrDUbZueFW5OYeC2GY37jvaG6mYWyHuOVgCYG2n6AAisEqu/aBL2409gwFjW2YLLF64/2X8MPmxtrS2YEzLeQ1EVBmpI6xDbxS0csqBxc9BvoWRgj3xxPr7CoE1drCDTuHA2a0vTeHfCHQAIFeRxGpApLcvNoe5oTr4A6FhgfpI8JQ6D23/9138B6nzggQegtMGehNkCaiBkecdLSoyJqPGMA7DhsC58imtWRqE5D5Jnw75wdqjkoyJbLn4C6wJjgDcX4KZJ7tpCmahEAgQqKO4uctAJvAvnStyccwVfcSib4Fj4dMQRPJ/XG0A3HC7OSgSWI+nEUNeAFf/VX/2VQPXF3S/YpmJXbHSV7XwnDv9lGzEJlNTRXBa2eQ+DwArjGhZrUCpv58lJq8zWZhgjWUchBcWF6S0YBF3NxtEEtyeDLWXGK+SVVDKfTgJ15gp3+WwuTZYvVcGpmVQ2ncnm2abEpYqASpPDAnEvRkVRNKwqHCKmweiboWh+L/75Dh1Bwtb9GfbZECoIxlVgccJfC3ruwGA/RECMvUpSAJV9AciNn3gcyAiPzLKnTp7c8OZ6qBOXX36N2yBshAP8c4S/L11VFQrhClO9u/FCWYNRGuuboFNjmVNWJinXHU0NJLNhr5G3hIOOTaPBhmNpzMJiyOeuD/pwLQ8Efp1IieoiE31zgx+A8qbDvbtGYrFMXlWwU7gzQAgSyQcVrK0EPR5xmdpQ1VA0/astR9883Hcinu5NZqAdYVkYisAOLIl1Qzw43iDGN1sG+YG1zkLHBlLjkWTm6OmBE4PtqzpbZ1QHNMWW13Aw' $Logo &= 'pjzOAsL44r5T7xzp3XqkJwUsj9YT/hVl9sYQ0Bb62X96OP3SuzAcLWxvGMFDyjLJ1CWaNzK/0Ak7QMmtyS1Bw6efax6j5tVnP/tZrMlzpgLr+OlPfwotHts4kvTOaTfQL9CO6Zia8U4hQTs15MUKxAQ6euxkqqQHPWF4bGkmdBHm+hDOoA7IJcgzlOaOZj+VkMTME4vCNNRoJKYV4w01ddl0Wjfc4LqiZJH83iZxU9hvPhDwtzdWHT59ItDQgUWRt0hgAOTMnjHCkUO2WJyiP1rKWFQanDcVb3V0bOD4iVOtjTWUJMciGVxwRzwU9BWMXiWZc2ATpwMYJex0XVxzis04QJawG2tMgvDuHn30USiazht0aFwlpgR5Hx5owpkNBzixBOgh9FT4cQhWVGn/wPWhl4Ai//Ef/zGYFpgKOBaogQHkTRAKboJz4DAwJ6ik0JlgccGGECAqzTPi01F2IZe0tbXB+C9cOSYFoxDRZ4YvkL3LLrtsUlQ8BlYgUZVGGodN4pRHHnkE3RPS/9R0UzgXHVizZg0eCtvCnFGpvb3++ut4EGw73FGwHwwLNDasL6huYtAurp4KDws4FrgLcBtHO7F/YmyrXGI1HwI9pF2plMOWTJKyHV1YJog8T1dwYY4yryCOkhHYLqss4hVMAJAlNieS7qDBLpKO5TNJmEQgSmMy5fI5ShmpUPBwFiazTNYi3ZN7QYQPH7hmAWmDoa3jstF4FJcjCqUgCIZSdYWramACqaoKpJIpdD/g99oCkQD3CoSkAT0dj4yTEZJmLQl0lpVzpovOYoXP40aUNQK24YiMfiGNGKWG5Y6lovHm5haQoXOPO949gDhZlYVBdSSaAKLlBX5lFcRkFMGMYDtR2m9Uew0wb2B7mLkcGkrGVqAYjZ5gY3WgKhwoaSqIuFuXwUtYunMpjFOWi+QyBu87DJjLVTUYt1490Pcfr+080Dvqq/LVVQcAX5uaCi3adsUWirxAgdEfxjO9HPcO' $Logo &= 'v97xROJg/+jh4VjPePLjl3S11dlUxgnYfH7n8f/chNyQ47hmbXUVtFVyisNI4oEA/OPIgNdfsCLx1Kaj/YlU7rIFbUciKdPn5sw0DDuzzZPM1YqGrvhNrQl5DLSzqtuQW++//36Qg3NzBbiHOi4rUCbOF+WfpkcTNFeQIc7wZjdsI6iwp3dAcVdlSzrlRiAezE5ZIAqY8XK5yLYDixNBEshVxEqSi4qUBtyeiC+fXW3lUyx4qQyQT9irK5rDwHC7bCreUhsYiWX7Rod9/mCBoQW+PqGr+OTvriJzcVaVaLQLJYWIjDuMribjUcnjR6iYLT6yORDjDKYyySPG9pzlwxwN5qKzbTsb9jNWejPTOs3nQf6c6JmpPAlQEmg9+IrFCfIc4l5kvAgSPU4HlcelKtUU5seBr3/96/jptddewzJnSIrXApNvB3oCPAWu89xzzyF8BL3CWQ5AOjVsXpwFVU8EtcArd926dQjyKLDTbqW1H5QNLxwCMVg4uCY8uR1FqlwReFQJDDhIEo5Mcptk6he8ULAfTHukSIBHAAZQ8GwnfAoSA5A3HCn6U5kZAZTq9ttvBx5YaVG7yCJdFXkRpniHCnYgGCPmblYqJnMFfApXV0hDIiMLttmZAPCuDFksz2OgMH5lgSexk7etFXEdbSZSKheRUDk1ci6dyuECkP1JxuNFxdKRk6SPZr+i6/lcXig9+K0ydzFPNRrZTCELnMDj8cViQ0L1IyMQJ7ogUAv/K6sM3dFZFr6T9mMr4HaIM+WpJEgNaADY6Nbt2+Em39Y2Y07XnMWLlra1zoTZ0L4tcjBnkhanahZ1+AV7I684i3L/AZIq4SceKxW+BDmSJiv97oRchEhAb0nSJRcmnKvo5gRZjG1hbPLUUYxxhtS0ktfNuolw5GXKJfKPYdLQYYgjymU2H+19fstBmEw6ZtSqusaJCVzwVy5rAJpIz0A3TVXFBi7hBqcUD84oLMbL8PtDpjuSzuw4evrqzhow' $Logo &= 'lcr4XShML+46Fkukav1eADXgJRlJov4x5mmxhiqzdolHrqsLDeWsF3Ydy5QlN76TH6DKj86vRNFgDYK25TE0t+kD53WdqUFCvPHGGyFJndvGDrN8V1eXs+c3v/mN63wanXv25hi0STgYG83RZCqzPpTGp+YyBodH4figBpszOZdslIyigmfFFKCH1rAEJMwHYUe1JEtxqXKZ2ExBNWJjPUtnBzFRYUlnDxHyQCkV6Z9DwVld4FZSMNnIMalcSmULne3NYzv2JhNq2dDgqCjnZYt4Cs4lvkKLDhObTfdArbMYX7CzPN5E9fj4yNDgaFObF0+B2YNPEQgJGWhWsehEobKDEHMo3mZXSZnhB3bguYgm4EAAG7wkC2J4lbIqssQC4fmTP/kTbFcWP67cQE9AlJ/+5S8hhAnvWKfhVzhtYuXC6byVba5T6aPI/w8PGsj1iVgcC6QSgIKCCY6C6D/4QWFeQX4HVgaRRSBOU53ZHOOHsMPDNWv9+vVPPPEEFAuQaVwQmqRYYXhqcXwc70zXDh89gh5WwKpWrsCEUyk7qqGrQiFevnz5v/7rv2L/1KQDjvUFEBa0NMJByc+IiAM6gKFWaUfhzjvvRJcwJpOgOaGtfmAR9WIoxcvDfQVGzIoLq8yMXgn6TjOeMCiaqELUtUTgN+dFwj78R0qMMLaXS7aTEnukQHtxXHUZ/yAPL6gkGGMP18WjqU/HlQRAZtMdRxmyaLEA5WGCTxCCaRiYGbjQJE+2Kr9PIyqqDwwO4R1DtwApJkmNC1LoKog060DpJEclhXFHeJUjiT3egsygNXGaYtEZaPQWjucJaEbxSP9A755du6uqQphz7e2zGhqb8MLngBp1zrftt9FIvpAr5ylBk8OqFVWBUal3PDGWhv29KF5ZkXQ1GkldA5mQgBoGTR2JhzWZ7FeqROxEWP6rfBTbPxRNnuwby8RS1T6TfB+KE1PBlm9KsP97JbmjofrEcOwHr2w7NBTB07oNlYP/' $Logo &= '6Y0puBF5oeSGklkE2oA3QVn0aCrgOIwlRlMRPWOfCyCvw9n8iUjypX09teFwe11YSKsnhqMv7D7+9vF+rxsdl8mjKVcgls8BE3hvFvbwi8YeMBhF1eL5TCqZNUzDLYMwod+qU1gG7BZzjVKfqQqogxePrU221UOQxDI4Z0gK1ej9wQ9+sGTJEvH1wjQVuFGe41cnQgL9GRsdE8Qrl2MxiPNBDA+PQkfRZRXL2HC5aUDYdxKfhAzjT8InCL1LLATKluD2xsf72kJatVsdj8aEa7CgqmXewCcNm6RkMzlyMtVs1kICFvhLMWsq2tzZMzbtPuUON0DexSJhHwggkNhAgzDHGyzMU5fKtB5VRc6W5N7BsQaIyewHD7ou4BE4IMB5EenJnUKWwh1U9MeOI8mpNtB0EQ1XIFgilxN8y/HEFQzGoe/nACHpVzZgOEylyA2/ChBJ13TBP86YLgyUFweDB9CAcWIOB2P0ebzAWp988kkYXT7+8Y9DQZk+oIepCPZz5ZVX3nvvvd/61rcefvhhXARDbLFRWUwbgV9B9cFow5Mb/M/hCrYxhuMcHLLsYOzO45xN7nFMQbi+mEWQQ0lu54ad+PVsF6kE9C6WqYhAGI4iZNQPRCGfFzCUHUzFNJ8SorCuIPxELdaos5gZkH/BSCCpM6mA/wn7cNEXi1Nx5DmAUGBl4n7SRLicxXzICcwTmO2kEAfaw3fnKEj6VdUUjee2bgDOoWBpEFRe9yBJpUwWefsVaBY9Pb11tbWcoiNf4oYVKSxX4IPJUqG+rgGIVl193YmTx8EySPrjxMMuQgwgrFh09zwhkiEy3oQxSulUurdnD5QJTVUDiGmqrUVUysrlKwdW9IM/+auCbq87gAVZLONIjloglqhq8kg8dbB/bDwH+IGtCQwYZgsYK45SY9rjNbWw1w1mWXKpJKWqkkL3L8YLhePdJ36zt+fgQISUwAmzhO3DrlPIPi7V6PV0VAcMw72t+/QbB05V1QSb' $Logo &= 'Q4Cg6PUK9laSyR0APqwdNcE6v0cH8iSVR5LZ4WQumcVSdnl11dFIwFcA0+Xz8pvHRuY0D7fXVWNn91j8mZ3Htp4cwFXhIoZ+5zIEtUjES1wsZ8tQp1JZDtgm8EeCKmOCFEqmPemZ19olMEEWkfUelVSw+k0NhnwNwLbmfm8ax8Jf/MVfAKZwnb3hxf3P//k/77rrLmxPOtd1Ps1/znSWDtqApEEgu8Iey2g+i0fZwsjoeEHyQeLHW9UspSDDvEUiP2WlEYpZ2VmylHlONpREPBJQ4q219aNDkZxkJw5x/GVE9pf9xw5CNV+wYAH2y2pOqCxk4tZNVXPFY+OhQHBOS3DfqUGjqiVbpFiggtBUGGor8AaWJ1xv8FlkgYlcz3Rv/3gc4DJWDhPiktD+Aa3AMF7FTMUJMBCEXmD96JIgWK6La4Lwgc4IW7EwJwjEeFKqq7MxFdElXGEqUxHKgRNLX3mi+FUkp4HxFeYx3m9n7RBm+cF4AhFOf/KNb9xy882OcR5tmsmJRfdg7Pm3f/s3uCzDuwRQGIYaP4vuCfomonCEJzddkJc2wddYHBapF04ED4gkTjzHsFTuwZHkKcANFwStE2OLZYKndrScqaeLe31Aqe85fST+dLJOkxFe8DdYufPFAseeyBhXYJwlSkNk0VQjZ2JLY72aOEpZLJMSATuMcRWInZCOLAafgXwLBAXfaIOIC4RTqnePi0yJmCu7GP6q3Fs5KQzKeilj0sgqXdjn9jJHFM115Mj+19e/9uqrrwCCA/BjGDquB6bEFkk8l0LWe9g1NbAbd319Y0tLq6xsjURjdbU1OL2Qy1WOtcapZ0E8ZCqlrLu93ka3m2Q+ss1Y4+PRyNh4b0/vCy++hBG48orLP3H/J5pqydCSSCUVKFToIKXxl6LpAnK0cJisjHjyAouNaFCaONUzo+8iul7Wi4qRcVmw7kKNiBdL2/tij2zYu/lQb1bT/DVAz8ns6sxivAs8KSqcVbd62+pD' $Logo &= 'hwfG9vaNGB48ukx2GQmXAapGTtvxbAHRLh3V/ruWz75zWSc4ii4VXtx/+sldvadHY4lMDtIRI4I23olO4hjIgRRVw60/ln7r+GA0kwu6dTrKIs2ShImyhHctvCkiySySVmFW0bvW1GAIvEmh2reCo6gabaNnkCI5/SVnOtCqPLpCX6VJktf3v/99rEzXOdvXuWFjkpoCgPu8Euie26DiLFqk8BB+X/YKLOFcFRJYNBaX1CbKwy0peKEUemKBj3NUil2djgQySaiVsgaZQsmMzl1YFY8BTPNJco6JJI2ixeAF9BJYOF544UVcGWWCkGMY8SsiXBdUGC4VeMe6KsdiozObgr3DmcFoVPGA4lsFFlQskuc4mSrNN5EAVqRyIXYrK2Y0FYfW5fZ6SiXbSC4kaICNLc0t4mltTSVHvheO4VewhItMMUr8gJuDfeFeAkEC+Tu3yFz5kzBaiHOdDVxNYB5nOxGME+wEBIQfRBJJ/ETiQQwvDA/XX389OIrw/nKU1Gmm1hdfcS7gsj/90z/9u7/7u4HBQWgwoLIOQOfwqp7eHpiF+IJ0CmJUiWByY6ZiO+TgJ+fi75vI0tFUSEAp5DmBDbEV4TM9netcNPwlFG30nHOxEDokeH6JoVTKXY/VTnZ0cEBQ5JSUsXSYJgn3cDGAkyfVHpsgQERZhOJv8bBRpJ7gJSVS2MGOibjIMm1QnK4CcW5qPVkH/sKJRRwGWJDrPNJrKOTdJhlUE/HEk08+sWPHzlw643BaTIujRw/v3b9nbGy8vrEBukfJYmsJgbPsN4lyxfEEHi4UroJnGYJdPvbxT+7as+eZXz6LcWikU4A94hQ79ltIFiX+dDwxwGAsfCWGSkMVicUgu+LwyNhob3dPV9fce+/7RMfMjkQqgTJfFHSpSwjS7RtPJDMFdCdHmjCQbAtsmMQTScWF3VXesUz+Fxv3b9h5wgMjZIHmEJ4TmSK6U7ldPUPZRMoTDpqGWSxwficXTT2BwxaB' $Logo &= 'hSVzs2r9i1uDL+zr/uGb+9MD0XQig9z4OMANu6yqgqdGBvoWz5/1iUtWr53b1BzycNSReteStrqg7ydvHth4rB9wFhuDGPfEKS4ZwgEcnVMTYum+k4P7jvYphlob8rF8WcqCWpVoTPByUJKnfyTu93luXj67qcoXSWX3940dHYnGSsVav+FS2aWAk7O5xAYJzGxg97ub/R5sTEoS8/TTT8NFx3XOBg/jf/qnf5q6GCCHIuT4vPyJYVydjqYC9xDoJTAQCdQEnAK/pVBgIQ/rvAy9jQsLERopW/SswiqoyDSHLIlcsBjeNHKZ4Utn6vlUPp3GmCS5HJsYVDCAvIpxzcsvvvib9sWXw539uVfeuP+O6zXDyOcsLmKXM/S8ZRrgPABXc8XE0lnB9du7I6UWFlTymD5WXmPJx/YwBhRJs6YogbcXC+gPQucsiM8wPZZYSyEsQKIA3sh4zA5PptwZVoYETouRmbwwq2DmAT/F58WY6WE7SCaAK9t6BgFWctHSiKlgezp1UIQQAMycH7IoGvMYepJKKjy1NgleYh4thwHKozMOoaefCjHMZ4GFytym9mQ6e5j3Wy0tLVddeeWx48fndM3DtMF+R6nCCODioyOjzukgdelUxnHWckAqqXwe5WGYkktc8I+GQkCXlobFTUxFQHnTT0t84fVUeOCIczKhy0/wZ3YYZ97ATlPE/iirDby6fBaYCqL5BCvKMyJJMe1krmZ3fO6mMP9iFHltcR+wLVMNVZaE7eyPU/sjCneJZqda4WgO7ktZZ8+HTCr1q+efRUA8FpXjrABvMdwerKK5tRlsA511QvQ5EpfC0eH3hYU0b+4809Bxk67Zc++88244IGOC9/T2ATHDBW1HdYDXHBeqMGiGFYj9ItJSodKT1NAvw+0BNIaV3tfT/9gTT2DhDgwP/sk3/tzjhaXGjynv9ejRXOzYcCyeLrD5v0hx8AJwoCplxHcCbiOWyr2+56QrngEDxw3s4YI2hprF' $Logo &= 'YV9dXbBMVDwnYckVmTSrbC8hsDKHt9cQ8s5trHrzxHBHfXVb0GfolPsPN/IrCoASPMewx7p7efu9y9tNuRSPj5cpXkXxmXp70PQbcs5CT4sGiB5HGMkyYcDgGRlIfDw9jg9Fth3rA4WBNQXMgKZsmYKWhHAYSwIUzNUE3PesmnPf6rldTaGhWPp1qEFbj2w7OQgxGauErgJvbJ1zYWEDCIbNVLxNAWIqxYqVg8hewNmuc7aPfexj//t//+8zahhYS+cF0cBhBrLk+2ozuCY8gmgesvUbTeaCdZwNDs4qLGZIJYZY7bShklMyQUzUcrpshJGfdF5T2e81EUsDQMli86zDVEq4rK5v3rIjYWm3Xnu7x9SOHdy3Yf2GtUBRyEyoK5YC0YfLgkGXNnO5YnXYNbezbsPOIdVXj7MLBeyjRJIFoakQ5Ubf2AeJzaKstVuQA6pCdgULYRnGBswMGD2sDgGMW0W7CduvcHXDARdvU8HVHCTNsalM31pT4o6DiYihED1lnlIQ/mPnyA0MTYXuy+9RXMpRHaDBwCiCZCoXX6dSzMyuuXOPHjtW4FdcJkySwTrQSQVfAYdLDhojFDWBVlVaOEAfzme0y9Z7m5CMxYrAxodR+VHwQiaeZQBLJPmCEDv1TVUZVvtcNkevC86+UBpkktEzeeqrMJwAHclbpEeI69lFt2muMMoh8C5No42yvUF6DX5SVNqeCn9ZImafthWVEuOjUr2d/kzThHUHlJjzdZuVdQs0lTBfGafAoJpMYp+iYVsmh1srT/C7boDtIX/J8qUr2mfMwgSCoHn9desSkciP/vOHu3YeQGRMfWO9h3JClAxNo5gyCsHVafoWsWHYG4qB54W1xvFOwcyua6iDV9jo8OiTjz+OWfPlr/63uR1zSya6qiQL5e5oEiCCYIEwW2HG2VgQPEPAvTjyK9gQKtdV0QjYQ2EPKIaUfctKlbkhBTaftco5yMuGSmtd837xisW3Leooi8BVgd87' $Logo &= '+SjJqoQIb4h2Rb/bA2aIXwfGYz/bcnz/QFSUGWSxmj17ijRmImsNI2nlg71jxyNJxecG+Ulm8llORy3KqGO+jozFAel8/aYVX1m7GDCp6rLaQsadi1vdupot4twRRSr6TKVoG22EJGz7bsCYBN4m3qCTLA9R8edeAJdccsn3vvc9SHNni08831i86USoCLTaUVwogxY73WQQCVwAnghzlwW4k0O4VXBcCSCYzLndZJwuPB61dCJa70l2NdWPjZNTu+P36ZrQjyHVnDzVs+vQqZs/9vmyZEAWWXvzvU8/9H0My/wFC9ABnMVkoiBRK+DrWGS8qb5pXnNq24k+01cFECFPoqAMdm4bV2gJKAyxkqEUXcP+ZDqL7wRUM1Nh0ZjMKrkcMZVJ3k1MqdGKF1/dBFcV0rqDVl2cZ7JTvKMsNt/37QvzvrDiOo/jOP6CsHCezQ+mPjfcgSCv4EGdwGGxYXHTC9o5Srk47PO8mEGJm7isw33L3D4cpsKu9OAonIcb7FRmYSFDBjSOCMV74kwpIKAEWMESKxmZEnnGEnpMp7MNEKcz/YIqYEMc/F4F0IErTN4QaWBKxpkrxkzKrcsZt8FqhNJEX1UNnSKTpcetKISMifBGlekvDiBxjNYnVxJjJUyUcYR0FE/EkHvniiuunjVr9sjYCI6sqam74/furm1oeOaZX27d+nZvX08ykYKeGA6HwCRwIhs9SKuyija+R769rKUBEnTc/HXD9Af8OOzg/v0v/uqFltYZtZ//UnUVmbgRYDgWp4r3inDwZ8cVHih85ZBrhWAURRZuxBrDg+SbTYpdoSAyulSuIplL2QNZjw9GYDu6/eold6/oBOShqwrCFV1nab2RxK6ewQyonazi9aWSmQ1H+rb2jqURM+Ux0LEMextrFBMqWXnIw0VFVf1EX+Td/eMHhmOQminugUekyFoX2lgkpav6JZ0t1y9sbaoOJqOwvJUNTZkR8n3yko7eSOxw33A6mdYkj0qS' $Logo &= 'hDwxNyiGAzwfaV2Qdozrudl50e+++24oBK5zNkQPAFs4x7pynU9DiDXKuU/aCb8d7J9EjGCHqJTcbQWMtHZZWGIVgn9pYDhPOq0njJ6w1GMjltE95d6V82pyFETFKvtEI7ZDUhRlf3zzrXeWrLqmtqUjm4ghtMcTbl5y9Z071v8CHqjwEKHDFLsmqUiNJKvuRCS6bG742Eh8NJ6wFA+bVSyRbSzPzIBQV6Y12FYlbBNbYj/y8gQZYpc2bjBWordO2mDHaAzmVFmI0Aasp9ccCFGggopKF8cXcRcR8m0ptGeaegCfqDjvmpZ+kc5VuZ0j3kIE8zshgZVB7BrbHyadeJE6GSwZ6KcIQxSVDkTVPqlIgzLpoUSblFxcnDj9wFKBnjkuGPYIM/7x4TCVouDbXNODAtzALrh0QYZs2+xMgakHYFVlC0o6l0sbAGzZ+E3Bwky+8cxCkHZidxS+KVfcxZdJGyKim6NbZCaX4v3TmiS5yRbEKyJXSTOXBUkXbAMbDC6rVOCLJzrbXWxzIrYJvOLlItmLQwOnHB8dmzmz7aabbgJHEU4KIOrj45Fwdc3H7r5v4aKFDz/0k5MnT508cTKTSpckOHGlyEmDxGGZn9LOIF0Q8hqHozkZ6yDEqrpeFQp0dM4GDX3kkYdmtMy4/+NUEAzoSBJ+D1xMgzP1Q2EgJu3STZyLDb4Y5ElsTJQ8E28Ex2NDlokWy/TniFT5bD4RS+GFXbGw7U+vX3ZZR+Pg4JCsyTqhduVowRqD8T1nabo8nMyfHIFbb2EgmkLOR5gCEbOCuPme/lE4pAXCgbDHdKsK+iciVwyVZjH6i3VQ43EHDBWx6f2R+Fgi7TUC1EGWqkG2sgx4ZpO5VXOa/+i6RTNDZjYVAWdC/1l0R2bP2jWdDT/d5M4MxgDE+wJuXFok4BM10BSrBEdq8BULbiAuirFFeAHinKezVl0fXMN4Tg2/h8Q6CXd2MnDY9uESGx1L5GyR51xEJCyxb69U' $Logo &= 'IqASinlewu+AldktAXvTA1evrKs2tdF0UjVYdSBuwgHwfBNTlda/+o4U6pi59GqEUHBy1RLKq8zsWtB3bOmbmzbdfedN2YKOi3EePvwpNJ9klSVr+bpVzY/86lTB1FBFz+LUyOipqGIBiQx95Hh7qDFF1UV6DDMS+p2JnUyVJnOYHVmRCh46LqZTySDKK9Mk1aUcacyGqYmXKKwv00eKcKTQIw1Tp5Wk0NImMk6WV+AaKtjZ9BsjRbSi5CKtjAK7sMB+yIxJOgf8BU8/vD5Nx+1VoeJgSjOkaQmrA0IIUDPpIpUV8bAUrm+aeDQyRIPiCXiUUl5q49m0aZrOLdBtvEixoaDxp6NGT1/JENdRyUaKpSqrZUEyKfPhh8RUmDoQkoOH00yNIUqLfPIAOWVStJDKchaUk1UoAGFSKWKZ9RZEYgnqt5wtk6TheGiR7WTaCUypoB3FdBjMb4iVAGIFISzLE+UUXfYGm+uLrLFojFjn+VYaaQ+Aj9jUWOIgQWHkonnCmCmOUSnnM6lf8NQ6fWrgc5974MFPfYZTUidkif7hsEwyXTAKAX/VA594EMJlf2/35k0b9x3YjyJF8WgcVdwsTrHk93sDQZ9pmLiFcNHhV4jrE8JG3czn0B+k0MA8OHn8FKwsLm4ZUPkcCeIA74iFqJqdL02AHpViiaYLRxCJs7/hYDHF6HBNowPYHTebKSCbl2soumDVnK/esBw5TtKxGEYDK7Uq6EEv3j48/MT24z0jEasE+wfE4kwyYzHoyAFJXHTWCHhaSBnCnmIqX3JkTqC/2JVm3LLFoDOS6STKREBJEXITJUTgGAiu76PhCu213itm14VMLZ0jS7WryM+l0iQ2DS+ChwYjGUwhYqWSIegQjTyEmXTOkGSPYcC/tawQvvTOO++4PhoNYclTYJMp3rQ8ZBaaQHfZ3iJx4SCi06y+SOViFnGnmpaJjFw7272koz4y1u+mmsRFAvWF7mu53PmMz+1BRM6x/tja' $Logo &= 'e+6m0MVcQQbR5AZ9Y9GVN7z8xA+37dh/7RVrElmIOrqT7B0jahh6OlOYWRO+annsuY0RORCCT1rRYtuPEH6IqdAdiY8oAiQhhIIxKJu10FPkbW9s4X9BLvsixQg3keEDRBnQcaWMf150NpVOwzNKqAXOZUUCGORlmn4NfILsdI28XciZp0gbnPBb4zIw53DNQoETYRxyQtPLTOuF0y0G6sSJkwh7uhiwyEndj/wL9ShHls2YblOgUsJuhLtDKRdzzLEqQacRMYxOXmE6ks3b55kCB40qxzpZXjBQlkWQ5ofBVETlxBIrxTkR5QRqSZY6Ax60sCkbhopFMzw07HHrNcWsO92rK+GYVmfJhlTIepB82/Gn5pfm6MTn2MA/Tm4vmYkh3/BBIzuaVc1cPsmWT1nUn3ebImEqn8RgAkuUdm1HLAGh0GFDwgYzEvZ4lqEucCEhXEoBp0JcAVzFBgf6EFbyex//2Gc//4dtbR3j0XGkEBYgknADhydIqCrc3NDMKaRmwXl8+YrVa6+7cWRkaGiw//ix4wMDg8gkgNS3hZwFI3x9Qy3AMXBeFjZdNirOupHH7wP9TiaycEECc5NkKvUPxQI0BJOFeIJTcMtJWYAhJF7KegpjwxZYJp6xCL2ChE3y6iTKUiJOlsnhTqH68PLFs75y3eJr5jTASGNoKhxP+2LJV94++ubB3n2D8e2nhlPJNOVtVPGc5OBtaorpUunmYFm6bBqaqbArJ7gYHoIBBOEMQ1orB9Qgb3GN14AFFEB7inJMkVIKCTfHyd5LIkdlIe83tZagG8+RyluyYy9hWIJSRWnQSPlVygqb1ki2LiqaC6hZuRT2qQYEtBI/OWegcn00GuKop4QC2Ll6K3OxKkSbVC5DZ2GYOQoUGh+eFI9kYTYTxKlIVmKsxZ9ft3pRPhPB7C67TBjsygIq4xLDAY8fBaJeemNH56W36Z4wQp0UiGgMUKGB4mke35Irbt/8+lOL5nXOmDUrk8mZ' $Logo &= 'piFIs/0pKYlY+pplbcdOxDefHjY9AXBtijsmEKBA3YOmYhUm4C7Ct3WuGoLlwiSMVHqH7oDAYRufZc77UGEML+Cd4hM+VMjpgutMHywSRn44y4CsC+9h7BFAlijuCywBn9Ok2jgLkr6g0Y6FBl91TY+MR7DzbDVdglS81Q8dAggqUBkmW3a+SHKR8viQ4gUpvGAOuTBzvXPW/v37RVwRxtDJQiY6iZ6D5eAulY8jVCjxQoXEgP0aV6WdPofDAIps02JIhYUJe0DoPjSmIlFj51QAAFgf2AblwpQFrXF7AAcqTXXVM9vb4fg/NjgAZuN3HUsiakXVPVbam0/ZbsGSJFgFW2HfZ8OuEa269WS/d3S/BV9lq4wV0oXW2aXLeiEvjMQuOz2eQpKVsMGBC7uIFBJGx8lfLfKfYg1RGIfYmM8JIl0EwhCCLCuz2metu+nmz33xK/PndI2NjwG2MNzQwDUSqwWYjABnrk+OGhUgwAsWLlu8cDmL7fnDh/YfOLjvdE8vYhSOHDoKcIYK7yTTosaqi8tEOqAzOBx7Glt+vzsaGd2zd8fCrq5sngzyOB7/QFjL7/W9I4JRKBJ5pj4XeH6pJamASSHnLDwDBgOQkqYqXl2l6lvhQENt8OqFMz596bwFjcHYWJRiTmW1L5p9YfvJf3zundMnBlymLrl1Q9fcXqoTio6aOvWVg+sFkQJeR6ZejYiJHZ9E4SV2uicJtNGQJERQ1gS8CO1J4DdgRGxLES6cJEQXLIpeJE9ZBfZk08R9SE3h2m52ZGs0hapjGQBEqqmTsoVn5HLkiATFI1VVmX4f3l2B8UVyy8EpH0GmUlkqomLl8PzkeCYe0yIj2BZ2smEPz08+9DkL2/mANfLx21aZHi2eMgxIRQXJEsnbMJLstqIW80/96g13y7LG2csSmZSMV2BHHuOa9L9sMlbf0lnfseS536z/yu+3+3yU1M6hy6zHKwXZQNLTu2/oPPjQztFUXpZxeXrlQkdh' $Logo &= 'yJl8PoQZUtSUrDRnOpH8QpwXMdgiuKE00UTtCdBl1BNCrcyz+ThM1WPEBtLtmFhotlYhV1JPEF8QesqXM73mMFQnMZrQA4Skj+0z4pyCfOMuW7e9C/MqjudVbGdN1TRyxcYjI7EYYk7xmNPnIpV+DSKjMB4Hl0I2MDwyv8uSMLxBUQNLxn2RAtW5CHg6SFCBGbzMoL1MobMljenM+WsqmnhSwVR03vMhwV9iBMBQymT/1pWJ9Mune3vg73jJShrTGbPab7/ttocfenjfwWMLFy/Q00PBsV6Izm4NbEElQVekAYZqzFIDnukcG2Wm+DS4oCpSSTW9A2NxhFxV1wRWrVw1s202vNcHh04nUlF2Z2Q7ikqnk2yl0XCLMN+x0QhSRgqvJfvV8j+RVhlsCccDrWhra166fPFdd92z5vKrZ7XOxGHIbdw/0F9VHaSiQFOax3BXfo2MRsJVtSuWX7pipeQzvdlM+u13Nr2x4bWXXnolEom2zZwBkk3exqpGdJpDaiRmb1ybMouK6HAkzhZVUlPcso5JUsgL+Mt2b9O1PIhpPFOKp9mCbYfbutwZnAICwWUcyi7wBp+nq6F6ZWvt9z57fWUPQTOA2fbHky/v7nno5e2nuwd9zSG8C4mHRgfPYKdWOOmBO6GrlFuFEoBiiEDozeqgz2+SLpG3aD+fwmUKLQrXD/sMVdGGYpkCsQrinJbQCC2L0AZmiorfG/R7yF4mMu+qxFeoTBI2XKXhaAovFC8bi0roKCKo3kqlUdLACHns2srscPvy8y+7PjKNaN97m51HXVYnJDEIBGrelVM0t1zmvNvguQUKWbeDHFXQb4y/OxId+9j1MxbMqBmOp926h37UyTmD9BSZhPSg3/3Yk8+cGE1fdsuVyJFKC4SpDE8H8a+sFqSxZLq565LNLxz65TPPfvrTnxIE0S75KzNOr0vJgqs+XPPg1c3/+PgJKRhWSphIEtvgLU55UZSsvCLR+tNUW/+wM4iUFOE+' $Logo &= 'IqKVUP4W6gjkJ5Gd0MX9ZBsQ+yNwtu8jR47A+9bgdkagydkpYiYgmEJuwMACPTN1w6nrLqwXuCboAAnv024iR7dAvWSuqYtPt2GCiJ07cBLsEEVzUZARyhaIvjCFC3fuAswz3JDFC/mGwVfQ4enExvInnYsLAvWCswkeDbIvF8Dn+c/BPZaL6vy/9ebGrk5yZMdg2jCXogBsZOdzW0pgRiVPP9UpmhhGiMsFhdiqwnkd+OKqYDAfiqGea6XAiZCZgpbh6oe6YRw/fuLFF1+oq6ldsmT5skUrgAtFIrGHHn4I9Zs9hhxSXcixEBmMDacYA5VoAUgEwrLZXlErN9i24exRwRIgXcFRyu/zyroJvCRXyK1ateK+++6/9ZY7OVVD5uWXX37l5V/rulJtVovyXjbwJSsiAyTGDkqN3+fPcTJORxYSy6MqUNVQ32iYRri6ekbbjIamhpWrLgn7w85TNzU2HT5yeP+BPbgYSC+4qWVx94ghQYzG6Fvjkejy5auQhSWVzQQBark9IocjMt53zpsbrq7d8MZ6RM6TvuzzsAiLJ+VPWcNKpzFhj6aRVH4McYjJnBL0KpoCokOEFVdi6SaRzpmStLAxfOkVCzsawsRCOZhU59xfoOwMv8omx53UeY1PrFk86Q1WEyybe+3Q0X95aduxnjGXF7ClWeaRx8PwPC7jBQ8lcjDCugwFZvkFDTUzq/0dNZ5kobSzN3ZqODpeKATgLkwSMRk882A8VGJSrQ96ESeTyEVTMKxRThZqXLVJIc4nhF6J8GzbB9p2LKcvODqVQc7jTDKVxzs0dBn7iaixgoa4GMiHuCmYGgi4q5SGAYIiFj8aDTJspWRnRwxwE6WmsfRBh7GpKjKy9Shy2aIJALoGs7zFHFj49ymjieQVs923r5mPoVAJpHL4E7HwPKZrVfDA7u0vrN8558p7YlZphjcbqg3QxZlnOx4rklzIwntcDjTddVtyaB8MPIZhir45Ir+on4iA8ZXL' $Logo &= 'F647MfbslgFfoF4uREgbp+5xDj1OMoFuIFIVvRRKpVOTii0cmuCpSPl86NAhUHkQShbhLdFnXE04wgk3a1BGpzylkzAfn04eM7EBsR2niNQvldVt8SmALIj2oL+46XQs5HwAh2bL9viI/peYS537LPQHLBP5GZEBCM7rokCGwAzApcV1wBhEETZAUqLObmUt3qk6k3hMwTvBiUEWBFooTsSGOAy/AlVDcC4MKl/72tcq+Zzw6mYGabfK1PfTb87plQqoeCMfElPBOLLnIamFsBDQFufAh2izceP6bDb5h1/66upVa+pqGz71qU+hgvYzTz+fBRbf0lgsa0bQUHwlQk64vb8thTcYlSYA3dI80ENi0UhDfc09997z2Qe/hJ8PH0a508NPPP7k9u27lyxbiAhCyhJhFZzBTaXI5IuCwbfeevOKlatGR8cszq9gqyoceQ+OMnvWbHCtcLjubA9+8NC+7/w/34b1Hmi/PxhANB+xVVnGEBiaCokeNSf+6Ctf65o/FyYNONqMplK0yjnH38qlq0NVVTjxmaefi8RjwVAQXkEC9MC0ElH36IyJCaUbw/HUWCxJIJuskFmbPTs5mTFZGhD6Dh5w2Zzmb961pjkcOKeODcec7Nm8l7afGDp2tN/VVFNT5YFLOKEcHNBToixS5APkU6SmtvqO5nCd11zeWrdiZt0lnc17uvv+/PG3sdhjOQs8WGLqAjpQIGUStmMNxhKvqXp1qcjRrWR6YVwRMIEtJ2oqEENEPHD9M9uUAnER2CIMwygKubdvFDqQbmqGrpB3FPuGgeRimpm6goqTYUq6RRXg0KgExUejLVy4cCq4L0qJgOvzigXxLSv80MGAT4NMStlolDIGSbY42odMU3AgrPeUPnfrSiuTsjBqlRIllzXzeLxAQn7ws2cDHZcZwcaQMvapaxZjBnJ6C7qMU/WIw4sV6BO6uiptLYHxaaL2hk07KuXlRDz+wM3LD514+chYNKBLZQvMy8Ks' $Logo &= 'AFZLXneS5VGkqmCAE5NATLbxCQc8oeXKFc/+/u//HjAgHOFAJfkY8YpLAl8SBdjRf2EvEUBWZQbfSVm5BPo0NdevCHvcunUrErAL2jd9dzI0xyVyOtEYTv0rJCrdvHnzG2+8sXbtWmhIYhzx7I6/coEZoChz4LgaT2UqDuEW4JvDR53RcB5ZeJdhJJ955hnE9oKxTWKfTsJjZwDLFW36royC/TtRdE5auQ8L/iK4SBa3RwyjXeqRS6iimsimTW+vve4mMBVAPbNnzb1szZXPP/si4uoxjZB5bsmSpYsXLypi5KHr5AvvPw/YFSYcCg0ODmzfvgP2OtgSYtH4patXLli4IJqMVfmCIyPDTzz9+KEjB+vqKB0kQ2V5iVewounYgLMvJi900o7OuUuXro6MjpcEeCLqgHO8zOz22e87KOBVmF0cC50nCIIL6YuMyYCJMmmwLmn/vr2bN725ctklwVBobHxUKokQRFroAX8Qkbe6sIOVBQDInuCcVwZ9FvOBfB/SOQtzy2cS55MmYh4lCRv0SbEosqFpCWT3K6iy5jn7qzINr3lmBtkXPR3JuNyA80rgIYSwMXkgJ02pNBZPq5K8dsHML61btnRGbZ4Kw+XDQVxK6o1kd57qz1r5gNegNGITjhu5TA7ImxRwazIpcCGPrIsRdnwxeAER5uLzgqloZcvn0aiYLfAgTcVsqEMNSr97+8H+jUf7SKPXDfIdz+fJ11xTMYQ40lC0oK4ZvPCEzxjEN9dHo8GEO1XgFfK1NZGSXRayLYRZX8jnMccj/FoJBeXweoZhkU7u89cv8ZuFgbjsc9PhFdVeRcCH6+FHHh0sVc2fc2kpOXjPutpULtM/mpaFtsf0yOYaRU2CFQtXJ3bOiR64QSstc6usZQvKBdTms3dc8n//12/SVlgjs0yRQ4NKIjsF4HsUJwWC73A4wSfwSXWDWJyfNWsWOAry5SD9Ow4TfMXGALk5sfEiA6boj0MfXRUxZ5VszyGa' $Logo &= 'gviKCEFULgDPvvbaa7Fz+mhPZWy/4x8Nm985CK6jrEAF+epXv/rNb34TShLy9ICvOKYRggRZZqKsOTlqTq/o7U3Jm2K/oopAejEOlYkgHY7yox/9aP78+UiBOtULQKh0AkASVT8uwMWOWCGR5IJQuZy7CxHEYXK/RaZCuWapDzmhQ7N6S21kaASJaJDvROPK4aFQ1eHDB7ZsedvtNcd6xmB96pwz5+7fu+faa9YmUnHy2s9b7+nohJIv8teLDRZdYOLzR2ORyy87+J//+Z+bNm9pbKw/evT425u3tDS3g6mgkuPqVat379x94MBBxKgrXje7eNnOjxIFYTARlyWQ9Sp/lWl6TFg5z7/BObiuprr7+GnEcWIdWaUcR3DahFM33eBqu3fs/I9///f774vcccfv1VXXOZxxaLjvN79++c2NbyHRfTAYEJISrzX2aeMoGehPcDEJ19QdiFvD0DAMTWKKQ392njjGwbIFRSu0VwdR2Z04ygW1rSdGDvRFXJqi2/OaeBtF80hyPJnx6dqK9sZPXdp5z/I2l6y7LLOQy5TZ53LX6bHhkYSC8BNdhT+0cF8mSUekSSiXgX1RKUlI4rIMLE/kqLaft0jxp5JGkMueU6Mv7O69aWF7Y30gn47poTA6sbN7+InNB7tPj/jDfhUovsgpaWfuIdXEZ8BnzCdRism8iwzTEhCJ2bNnX1y0dhlhjIAXpn8K8lEi8dfUiP2pCw9UzyRTapoXJ5MMVcN09LrNOr+GKFI8YKGYI/psWVnDnYkP3H/l/AVzGnoHh023l5Bau7yVbeH3eX2v/+bV9XsG2q9+MBfvvXU51LbgaDRJUVa2jiKLOk0skBGKSCoj+2rmmSk51VYcudipNNU/NtpW57v7ijk/feVw0BfkQBpkB7VgSdGsXLXXZwa8udGo0D80jQq6Q0U13YhaMhyNB+jQN77xDRQcRJE0UCW4xgpPLZETT3gbT5Kp7XPLZyoyK1wbBJXk41SFCm/D' $Logo &= 'vIHqI8gVj2eZfow9hWnnsjbhrmQbOflsfMW5stCHUEcL+eX+4R/+ASrXVVddJdA5l2xXlnRC2QmSZp3RUQbBmiuuiT125nWHadEDWrbmJwrQiKpfGElYoXBTB7JzRgwHwU0U1BjbMH4J/ItrRVOb/vzPU6x6Dm/K4eL8VmzlSdzrtx38WBJJvHVNZ3WbeAzGE76zCxYu/OIXv7B61SWkTScTP/7PHz70yE9bWmZg/s1sm/nAJz914w23NDU2J7NpiQX4sgN0CcGTaw6fcaOjU1+94tLDB4/u3rM3EPRv27Ebg1ZXU3fDzbcsnL9o/rx5I8OjsJIhBAncmjx3s1mC7jlRC/4EToJ0jRjxC+Mo8XRi9pw58As4euTE6Pg4bmFpqvPmQBPoRqHAyePd27a+C+oBrrls8coMgpU8ntHx4YP7dz/++GP79h+srq4OcT1jgZGX7Xmn0HiUS/W1tXVNrb/uP9kbidvvskiolEs3MO60UVJgrJa9pdaQp9Z/gRzl+ED/yfFYXzSpyHawsojYpw0aKKsx7F8yq/7SjgbE6Y1ERpSSZOgqkt7v2jfw6p4TZAdkNYIyDkpgQ7w6GKFiYqWJWBONsCCiZbwomTsyh1HyOdXUd/dFv/PK7pKsr+tq7B1JNtRqW06N/mTDnm1H+qCXGKYGzoHhsbU0y+IMPSWvoTdUebCAsshAXqKbojST6+IadGhU65v+8eATuOl0jMOcx8gEaYgnKFvwROUPSpeHYUJl7x3HxxSVlpOimgATs9Howtbqu9YugbchsjFy6lwNn052cLfhOXFgzyNPvVS1+M6crFzSoC1vD/eORCU06JqVblmCJLPF1QGRBNUTkqnDVCrwfaounOw5ve6SeUeP9m46HoddAJFBSjGvGoqVTTc2tmHJ47ITYe2qiBkU9gNc2amT+Dd/8zd/9md/hnTRqBECmQ+0AhSjMhdOZX74qfUQJxF0pxQj7ot74SJPPfUUXG+RzRfyxPQ5irhp' $Logo &= 'gdsUfzNG+M55upPrDNgXPsFXIIjceuuteLOg7KKTovPOgFdaZSqZCqaA2O8c7FzfqZ0FRo0aLc8++yzq9UI3ghUK+6eqKU6hgcqqjpZmnVcYJoDrHLdJBhtcHD35MOAvbiLnIjWQkWQiD5wUIDgcJNatvam+vuFU98nNWzbu2r2raJHYZHq0+QvmXr/2RlSpQlkqQoOYDAlqQ1+LlUyFLv/eDRBcRJfKy1YsW7lqxbEjx4N+byaXfuhnD3XMnlNXXQ8VfcHihfjp8MEjmO1QBaB8kkAm2B6HmNG1cIsLZbkY8Rkt7YsWLvcHXurp64F7EklqzGIVVcMtgIABWm5obgDadmD/oZ5T30GhFGJsVAOngPFJJuPgKEgZCVIOsEs4I8icRwDwCAJH8YyG24AEOBRPRRJpuSLGl/5YZICwRN63gK3UIs5zXVDmV8y4aC6fKFg04oJvWQWufKXyq5Hi2dxIJhcIBsAdgu4cV2BR9wwlHt10aP3B7iAMJppckgkrY4oPbsSlvzRVM/R0Lm2bEEl6lXKpnE6x0FKZozLLnN7W76OchrtODv7Li+/s7Z5R4zEHd55cf7Dn4OlR6L/BKg8sOgAHyeG8gLNkkUQA/dRVxW8CQWQYEF2VL1qA4qT3qNI6/eNByMAnpn88cNeenj4nPTuWv9DDwZbkt/YgMEUpg3mgjmkxJGc/f+eNhXSEcRV4S1s4S6gFQnBJZGM//PlzmfC8cFVznTJ63bJ5Q0MDhbIJpjCJhDmfDoETlgoR18gOJjZbEcu4xEylQLbIlOkefuC2NQf+/blYOmuosgofMDJB5ttnNuA49q+xi0uqmgKBHVwEO0QqEeEvBMv5P//zP8O4gvSday6/DNokYBwnKMSxZDj9nMRgpiJFwmyDc5Fr58033wz6A9BRgLPZovS0G5VO5ubw2kpmI02POeGmqHeCuLR//Md//Jd/+Rfgb4DiMSlBgsV1nAesRPMw5BWgfqky/YczFMKzGZ8o' $Logo &= 'mrJp41snTpwAV/6DP/gDETsyKfOK0I2gKon7Vg6aqLw2faaCdzcpfSQ2hCCOF/fh2FTsNNcCHQacCqUEgX633n7bF37/D+rqqIDMyRPHfvyjHx05fAQDcbq75847bv/DL32lqakVjw5jilJWBAvhsXVGQmxJZ9woZ7D4lNvvuAvP+a1//icEFWI039r41i+feQrqEVbcXXfcg9ja7373X6GvuN1QDwCCUdQ65+2xHfPLNlp1IZRIB4NS9Tlz5sIneP+BvdHxaF1DvaIpsM9LnDGMlXSXCcZO4XixE6dOFixSS9llC32Rq2uqkYUJGyLWhBYxJgpVMTJHhkfAimZ3zlq0YD5klO5IciyatIsAq0yvKUhThUiWASymKtW1geoqP72mC2puw43athkwFX4JNsLGChzYnc9UcgVr+7GBH725b21XUyKVzlrFw4Oxt48OvrjjWDmT02sDUFMEcucSig6hICVgIDPCAZ1ZLazN8xpDv2kMZ+Hsh0EhawFjdwwN6IYOMjUeT63fewp5JxuD3v5IYjiShAkiAFuD6sqnMyCirN/AndoQCwirGSQ2CKaiyJyWymapF6+poKDeeXl5TYepOOZT+NcKgisEfHLiUBTErjc3N1VXBcbiWVXW8yDneeuzD66b1eTt7knohhvzKpvlMpETQYawjj/3zC8PjKutV1zjK8YeWNNsZRMRy+1WOITWEZeEsDYh9E0gYYwqUyYEAmbYsbgElEV4FouuFi3KJQkYdzSRaW9r/MO7L/+Xn75QKldBM4HeXR10z2ithxUa3eF3LgwqRRGeUvngAuyChek73/nOY2hPPL5p06aOWbPmzOmqb6gHkQJ7cPgc2hk9oxzUSHhVgciiMgESwuMrlIMHP/0ZYbLGkecXsi6Rmu0obQ7Tnb5c73BB+GV897vfBTb1zLPPbHjzTfAVBLLAGYdMuQy5i4hRh21U1pyV5Ape4nIUFMr3DBdqxOWc7j49d+5cME5gqqKHZwxm' $Logo &= 'xH6hBVaqF7bGc14uxdw4sbskZBDHcfzDCn7kJoAvTDJR7XxWe/s9d9/X1dEFD5N0OrFp01sH9x9CEF51dVhTtLvvum/RomVYukVywqcIDMFR7OQcsvClFVMSO5nyq5UbJMuDGIWCVWvXXr//0P7XXnt1sH8QOVBe+fXLKMV42813zp0774brb+nt6/3Zo48ODgzNaG/jWGxLVOfVDE04xlwoT3EhhJDNKoFrrrkWzPLE8ZM+vw+syzZtsVQCJpHlOIAGJIBtaXIEkDKtWJaDJBl2CIkohEYPx6nHsmXQtSim4x233XbtVdfErdLIKPyJs1q131ancaJVZBFXpqQmulpf7Q/4/BdMUwMe34xQoNZrDI2zbCKcfTE60DnIE1pD1f4TfWPffn7ziztqYD8fyuR2dw9lxhK4dbAuBE7CnJ5RKU1nhIoko+aq4BL4kqEafxF0IHXDnIYD3c3Pbj8GNzlT1W2EzUW3gwHG0DQ95E8nM0PjiaFIiiJ4/R7EXeIhs+SmwAejYYNbiavseAy12uc2FAoXra2rdX0QjWr5nU8DEAGyOP0Y6eqaGlVTMbiargFIBGRkWfiz6urMrln1G7cc1DzuSGx87bLOxe0Nhw8cyFKVErAUBBMTAGgoHNWmGaiR/uudpxtW3imlRi7rUAqJ8YPDoxBrMUl4JuC1lLkKgSpuLbgImycxd0hfdxQF4boqArYYirEb+YRoJD0djI/Pbmm4clH7+u0nXUGfKxObPaMjFKwdGurnjN6SCE4rWcS1aqtrKnUjB0+DfP3ggw/ecMMNKGUIj6lXXn4Zt8bohdGgsnu9sLM6qlil0Vig6wluKDsGvQ0XBBe58/Y7br7l5jmdcwQzwM7zdZzFBaGZioi0Iv+zDV2yhIh6dOIcRump+h/savDxRSUVuGZt2LABuDdCv+vr6sFloZ5CdwF7OWPGUqeYIzvQ5jAD8YyIUwHxBC0FO/nMf//v8KMDA66sBDOpkiMaUr2hjIXw' $Logo &= 'enB6LkDX6QcFo2PDg0PoCnLhuITShknCns24COSnD8NQ7/hlyPyJgnkzWmfcdOONHW0zhVfGLx575GeP/Qxkr6+vv66j895775kzt1PgAAg+R+OYI+bhRYFgAOWwab29IZ1hAwejgqwv4P/Cg1+KReJPnHwsHKpGFcW3N7+9dNGSWR3tcPO9795P9nT3/PwXj8LfjEAi0yQzFATvAgsmDKRMtd1xcm87F+m5JZRQKHznXfdufvvtbVt3y8oAhM1gOGjh8vkcR+br7EpicSH1guBfdv48oQ1MlDrmPKCq7tFRI2B8dHxwYHjmzBk33HCrXtVoRZLp4QjSFLt9JoDecjZLZ5FvsQrWwhH4ilvXLuYNg4PPrg60Bn0DownqJKNexCE4RR/EP8MEwgF3cWt/9+hxLQqBGSvPF3KrBpG4MudRmBhJ5hOMLIS9ZldDyK9pebgS6MoVXQ2v7u9+Zn3GQrEmt65AQiQ/b9a9IARhE2gZ8D+vTvnFFFmXSU9KxLPQUVBn2cXkDwdT4lFZKZqaS0+GPFpdFYiR5kf92g+ooWzf+Xp5ndfxNdBQA36BJAiEAWRUWH2XL134zrYDVtkyVNfBfVu+8uZziOXAuwZxL3Gor53JW1ZKZaqlHVxyixmsTvYdfvbpzQ9FBiRyaCffMVmkwsPhrJmUK8rpcTpO0tGhGjvQUllmKY3nJ9QVESqJJmJcWPqyVFPRgzMl2aORKaywfMlC4S4hsxwsUonE0lEE3ADUPbPQyQ3BgPAEg9EeYY8HufWgnT4NSgrOcUZlBRcXiUNATJYuXYrSNYhUh4KIr1Pr406/4YKg2o8//rgJNIm1HOdSgD2QuQvRCKLn09dXcDrgUJRrBPvcvXs30Lmj3PC6xdOdW+ZAE/m7wJ/AS6D9wIKACwp1SkSqnq26F86Kx+JvrH8DLGQSYIi7X3bZZbA/va/cI4YFHBGvA/xMuDDwfrt6MUZeHPnbTigJsZtECQ1ikqLgPS1buvym' $Logo &= 'G29ubmkVXQHNPbjv2MKlXRDN6uprr77mKkyIkiDfgC24h0EPDFFepyLK2ZE21MjKFF0slZTAHvLhUBgeXLM7OyHNeH3uY4cTB/YdGB0ZGhwemNHc3t4+a9HiJQ//7Kfon0bznsOIGEklGEqRLqAwhtOg0kKMqwvXfuWPvpqKxze99dZhxHm1t3vgyiMiNkgAkWUR0WmrtHbaYzt+nkP9cYBYw9FIDMDXQN/I6kuX/+VffPOSleTgMBBJAG5yGZpuUOJYkAL2Klb5suTDG3QbDT63qamuC21uTf295bM3HT69deeRpFQ2dU3G1STmD7IiSuDIbqOkIGuklYDFGHeX4DScL8VzkteoDbg5WFoS2JfQmml2mnoD7C0aBe6AQYDFXrug9fVlszfvOj5+ajjQWqOTCYmMMexZYrksqkOoe8jmj1CN8UgCaUqrwwGvx4xm84pEYjMIsOwiZlpgxlYdcHc2AGJzfYANhOC8jr/88svPK5kxoCtI2SCp+MSihWwuKAWWcVdHW1tL/dG+iGkoPeNSTmlW/IbOuYop+ami2jRcUTHgAX+gqrq2mEmagZp041Jf22qN1p/CqgUJ+7bdXbJXFLtagTMJS4mF/zvJuPBNYnyGUBrO7IXDOG9JHoY9kUtSQehSQqmrDSFj9oyG6nlzZqWS45JKua/ViZSOkG1ntrWBAk5FoiZJ1iB8i7kJ82SSGwRhkL9JVbYwPiCXoHSQkd3cnCs7PODCkmvhyqj7edttt4maNE6wiAgwBPMDFT4vduWY7kUu0XXcQIjj3PB02K48eCpTESltgtzwvPjqTBun9NbZHge9/drXv3b3PXcLOFHcwtH24DCGMT/H4ziqHtjGt7/9bXRVfHUu5VTO/zC8v7j+PCRs5AqhHNQYC4zg9u07ddMb8JMosXTJUkRBQseEq2E6m9741lv1dc2trTMxzBDXFS5Lls6XE8UcVAiSlSbiEKk5wcPslufV1SpE0Qt3Q/uo8tDoUPfp' $Logo &= 'U2Bp2UyuKuybM6czFKqG1pLOZ2OxyJGjh1WFkt5JhNDkFbbVE11mqn/uWhrvk1lBtgd65fLV3/zv/9cPf/wfL730EooNYzC8fpB5E2tXwAdWOcdeZ6qVJ59O3lbIfoSFzAZmcMc0zA7JtNt0z5nX/uUvf/WO2+7MpBJDo2P7+8fzGCJdRVwp+zOwT20Bse7ktlvOFQAThU1dQp8vtHFJDwmJ53++5eDweBo57WEbtwsxgKCAwGO4NM0wFTA2qgwNNlAo+lXVpytFWUrmKV27HVWAY8miRKE4g+OJ3T3DnQ2+No9vLJZBUs7OhtB/u2mZkS+8seNYKpEp+kyDLyWLFJnQ5xSVtC+rANEB3g61deHlXc3RRGbzvm6oY16fWspTaEshncunsq5UVte1kNck5O2Da0Aezut4hGKcV651YYbZt3efSMIoXGM5H2sBosFVl19y9OfPgpBWB2ssPSSpXgP2J+LqquArzO8VgrlkBem11XJRMz31XSsM8B0FqiOlaDKxRZNeVTUymzgpuawS6Xu5LFlhs5Yrz8iSRfkPGAcT4evFLKGzwsKXz2Ab37DEVexwJRUpI+WSV152MzBHlEVGR8DfnFhrQHTvOxpOdJ5DyAxu0G+mz5grgTXXRbQ2blP3T7WZn1ciyEp3L5NbXV3dBXTPYXXvO6NEa+f2vhE2aOdQJcHV4EnxviVtfvsJJUl+shEweEEcP3EC7oP19U0d7bMjiSjiTlH99Ec//jEMf0je+fBDj3bO6gJTKXNdDF0mO/3m4/3P7e0dTGTcmlTj1TkbGD8DV7KG71bKKgFjXDen+Wu3XgYRWCBUXKJ55Ic/+N62d7eAHEfGoi2tTWsuv7S5pc3nCYyMjvz4R//+yssvqoqOCsFUf3BiKoMT8jDTl6kImBA33ndaV865jtldX/v6nzS2tPzskUdOnexOn+itb4Afv0cA6BDDbVdmhdJqC91FFg4H6Uw0GkdYPnIS19QHb7jphnXrblx7' $Logo &= '9XVk8JfKA8nMzpPw6Im4RuMRHeykovgbzi8UsT/npmqSSbIEVLkuqIlZcuWc1r+8bc3fPb05crgvUqoBnfCCi+CmmipRjhx0NYc/wp0Taa2x5oZls+9b1blp1/F/e3Kjy9QRm8lMmjuGY6Kp4/HUY4Z84+KZsu4ryxmkNQhq6tLWqruvnHcslurpHkqlsjk/vRfTCwRCAyCfz+Qh7ZKDdSQ+f1nHF69eAlvqExv2WqMxy9ByWQ9dGSyWOEqOij8Xi/YdP6AGeYiiu6fbJmOk01z8LU3NkL0gf0BZAVmXVYkCzSQlGk+uWbnw9Q3rTw4BATeL6ahLh2neJIVAsaQSc19wGFWDAiETE9EIypKLhRxyo8kuQ1XxM0JvKTYR2qQKXi+YvdA+qOIAl6YAMyG+AVtCngqRAs+k2hAFfFBmUTB1PrqAecVfs5jA6ULeo+Gk9IzG0KUrF8cTSWCjpmQnDQMng7UD9AgS8XSoMM46owPx2YhdpQHjIhlJZffK3M5hLDkvNWXq9tSnq7z11Md0th3cz9lTufG+FH/Sxac5bpWq5NRncUCwDyf3V5mUadalcwWoI55s/8DJEycefuQn7bPaZ8xsD/mrbrrllvUb18MRq79vEHP6pw//V31T/dKlKzHpo9ExxVA7G0O5HSefXb8T4pO3NpjnVLiSLUcrGVCQaLK2JXzP8tnYX/lsL7/ywi9+/vPRsRGvzx+JDD9w/QO///t/BMqNn1577ZWfP/royVPds2d3qnaZZvowTF1wQCgKZzPUT3/4hKaPAsMoVg+XNqQ4O3r4yP79+/oH+5OpBMBiuGPItquPTHmTFHJ0K1CJdRIKIPtXh4Pz586tqa4FhHrlNVevvmSNJqnDQ0Nen16iCA+tc2Z9X9BbG/ah844Cx5VgrBGve2lH49ymsFouXWRx1qDH/NK1Sz2q9JM39x4fTg7HUrF4kuwtBLbI4iDD7+moCzcHPVfMbbp8fst1XTN9ZdfPN+6Hvac6' $Logo &= '5GMPBdto5Gq0hhJJfBlPM1ivSIBSAM63hDyfuGoBjArPvXv48EDkQN9IJpLMoFaYgO/yFjKPzW2rnb2q4/NXzLu8sxWFCHcdqx1JZMFdfEDG2G8Y+opUKEYsqw22/VTaUMuKQad/IP7EMIBP/3h4+BCyfz5NGFHmdnUhpwhSKijcGNAnmALm6ltvXPfdHz+qezyUoa5scRpHieOjebXjn50n2iYAFXkKZDu7BQkwHCnF34TnmYvYTlkulrlcA3F+0Z+Ky/Cl2Lzpoj/aJHyAE7rpistQMPKFG9ddi9fX358ANxWYjNA24HcDMwCk8um7Tk2PYvL+3067MOgM7eKfDl8/8MesTLTzgY+Js/NDYyqcG4AtCEBlockixvU3r7/S2Nz4V3/+N3pVVXVd3Sc++clf/OwX+/bubZs1Y8PGDQ0NjW0zZtXV1luUlrXU2Vj3tXXL9p8eePdwfypN2LrkshPhQZxy4U/V/vCaZV+8fqVUwYNfe+OVp375RCYLq7gER4slyxbfcvPt1aFa0PGXXvnVY0/8AjlUmltaQtWhbDrFudZVgdKyowtzLekDmDQOb0fp389+5guIRd29d9eGjeu7u0/v3b0XJS6wuO0VK4rcMU/QDb2mNlxTHYJv5YoVqxYuWNTaMhMIIITlYoFBHqtU7davmttcFfImM7lqXWUjuGNdlxBiOhzPzKoLrmirDZoX5U4rGIHHUL+0bsWlHfU/2nh4Z//YicGIapVEnB2lzfcbXa21a2Y1r5vbuqjBh1wA+Kmuxv+FW1f4TB3lhCHXVrJk6CFgpG5VGo7G8PwY8nTegvmoJhT4zOXzL+toeP3A6Se3HeoZjacyBcrCiSMMbU5r3bVdTR9bNmN2fTAylqwy1euWz+qYWae7yj4VJNHpMBVlWVgfSKaSBUMJGh+M+zzIIrxuXL/9BuQaTAUGSJhkCQdTFIvTPYyPDF9xycq3t2zfuv+kx/Sm8hl6MQzWkh8yrzHOOVmSFKqh' $Logo &= 'whRfGLdlVuyFYUux/8m2P25JYE0i55iEJnjJRKhdkasX8ydporgatqkqJTCxAj7x59bLhUx0SVf7VZevHB2hIRK8UESoINIb5pBFixZVUKXftd+1i0p9L8PdHpTE5PILGuG5vt6evp07dq7f+Oolqy+fO3seDNqHDhzctXu7QtEVeeRQWb/h1SuuutbvC2YIuinNa6r+23uu+uYv3tyx56R3Vr0i0aXApSLjCa/PXL2k/crFszT5PaQTgSlvbtgIb/fu7t7W1hlf+sKXVq9axUHO+oF9Bzes39Dc1OjxecnDSDdgUJE4QoQiRTl6XVLZ++uDbgATAP3dccvdWHSWRZVcx0aH4/GYSF4N3qabBhLEVIdr/FBGdC5aoKrwVYODCNgJiARncaCS+qYidVV7WsMmFrtaYlRUoUcoc7UcXA5GV1NRAqbaWH9hDrWVUF5JcLvOpro/vtGXyhdhYMde/k2UlNQg3qouK2xKiI8hCdYVb/Krn1w5S9EUst0Xy3YKNR5bHCBZsB/qIElCwxAxRlCwVE1vrfZf01W3sDlgGl7hw8/e3rhMSZOsgKGkk1ncIeTVLmsLLW8I4M0rCg0Lg2yS8DV3qzLuSFVg/7/ThEUB+g20HJjrgbZjStBenpMFYFLZ5AMfv/vgP/1btlDUFRhOYDoxCCkGD6HkzDwEONp2meRPbpUypfjn4i2xy9lm1y4heDL0j8Y2ML4O60FFscfmORh0Dfy+mPG71Qfuv8fKpigSgptTxQRxeSjsAd9Z8R4vCnb/XfsdUxFRF5xxwYIlAF9JQlJUeKAjd8L3v/89UzMbb7oNNPQzn3oQZRA3btyMOXfy1Knvfe974XDNurU3pmGhTmfhvXDzko5t3SM7uocL8YzkNQyPSeUOk9n2hW1/cc8Va+c1w5ibyuaRmh0uws89//TLr7wUiyXh+dfQUL127bV33XE3XAMw4199/TdPPf0k5NzWVnKDgQkcn+glF1UtgSCC7ZH31zQw' $Logo &= '3/NFNlioJ93MXW+CYTg/ISkM1q+oV0qR5u+tuZJMpwB0c14EEQDFWXeLhItX+/RmTRGlnQyqSF+m3D7sey1xZUrZ7b+YyuqVXwVVcRtGR71xljOsfAbVTQpUNEzGwKb9utbUEqa4x8qgH3Z9lUmGRpQqIHsQRN6Lxsn8VTyLps1prptjl4iobEVQ1WQWUyCPedSIoIf/45oguKtXr4bXKVAj0GI42+iaRnZySRuLxtpmzPjsPTf9+389ZXrCMHmQUqbIGGSJFyJFk0qiQC+5RZBRsuTi2CL8YzmJNygiVegk9J/4k/AnEuKz1iyLAEhiJ0V8UmFHDnC3YJeRStikkyDDADBGMvD7Pn13R1tjb/dpx2NNqCl4BKjXeJzfqSm/ax8Q/FUsIeKGJRQKcnNMOlXh4PDg8Nub3nl79eZLLrnUssqrVq35xH2f2rvnANDaXC67fduOt958c8XyFVT9RbNvcf2yji1H+t5451C8YHnBD2Jprdp307L2tV3NMIv0IbxLVcBUtr679bvf/153T/fMma3wzr7p5hvv/+QnvT5K/L7xrQ1//7/+btfuHa1tjbkcGSZt0inyWlEBdUvXVBLDivTxwSkrDJdjmRkm5HGkvIQQDSaDRUwZetnNS5TizWUKk5iKz+NFkDBRC5nz0MiIIKt1fsVP6KhOxmwTXw3V/Vukd5x90CpZ4HPZfFYiJsAjpBC8T05zCtgdayRkuVJg/RrL5ESyA9pZuVFi+icUFIm/8nUc0RpDBWKaSIwjvK++pt4B9jQzGDJd/wc3oayAl8CnFmEx119/vaDRTqZFmHauu27Nse7+53+zxR+oSeXypJtSXXilxO8DG9BdFHyFwkIxjQQM0jY+KU+2UDN4g14AIWR8WLlksxaZ/jibuKi6IvzsixZWM4UWk7mRDSqaVPRprmR08Nar19x8w9qBvlPoJi7hRHWAwezbtw/mQPjgCgXl/2XvWqCbKvP8Te5NbpImafqkpZTWAgXK' $Logo &= 'UwqCQqkgQ2GWijCWx05FLNTHiKCz7OB4juPuzDg+OLM4Hkb2eHY4ux4FV0flNaAMVFcRKSCgSKEtfUgLSdO0Tdo8mvf+vu9jY5YcmZYpFOr3O+Fye7n39tLTL7/8X7+f8HeCg5MKFCagNn/xYrMM42xq+OwlrSxExrELhtfO4JZ/3xyfYHx49eM4GWJfBTOnf/zxJ+ZLFpQ69ny4Jysn56EVq6jiZKdBb5yWmbJw8vBDNU1uh6sLk9Vd7tIFk56aPQYyLN4wJt5kSVbV1J/b/9e9LWYLlgj9DQ9MmTIV8vLE0vns6df/tOXL41/C0tdrcHd22aO6L0jNH5mxFkuHKAk6g9bj8+A5ry1fdPUBIlkjY0W6vG78NIg0EtX5YcXPZFOSEAPW2I7t9/0TvPxMhmud7+t9QCaJEv128de7gKmhEH6owJg0VAIxAIj2fwzcSZLExA3R64uJpbKVJW3t9mNf1mDqz+0DBPRzCZjsoX0PiDiw0IjssyQFqUNfCK+wkvQN4y8SboTBG6KgwJk4QComVDsI7BLENkzC3QBetIMYeVra84VXkA3ck3hHGdSrFf7O1jsnjHiotMRqacZnQVHU4J9wniAQ7Uhk8PDM+I8IfQUOTioZGUOWLPvpzBYLJEtRfA4QEMkHGfv+IDJbVqsFWSn0R+HknGHD1zy+rrPTuaP5A4wtnjr59fZtb40eOWr02LEhmgXCZ/aSqaMuOj3/9t7nXRds2WOzfjp15ODE5FabFW2QRoMeWYLdu3a+te1NZNPRiZuSPPInZRjSXypQYMJo+LDc8vJHIDwF9WLMsSIuIdE+tXjBU+FytPBi9WYOycgdPtLV7Y7T6K6ZSK4yRoQmZiznoCTjSx9KJX7iTDXINEi4JsCJUhgo4EAswoIVzPTNmzdv27ZtbNSOjUzT31ilsxOCpB1PPrHyxZdeO17TGGccFERqmcwMERE4nEMdy0XsQdEghLQqvqYm8xIljOiIRGDe5pRaCJfQ' $Logo &= 'MryXKNHi5cMr7KOZLpwQJCfR4IXplKo8nZZxw4asfWRlt8vR7e5CZhvnUcE64kaFgc3Tp08vWrQIw3q9EnPk4JCuUlBBw+6TT66nZoyKSFqdVf0UFOh/J87JFMjq4LWg+N66hvPwh4fgDzo4N2/5A/qAp08vbGuzoSRo0mo3zM0//XXjZ4HQunn5Q5NM7k6kkpTGeB3ildras0c+/6Lpghl6i1hCELpf+8R6mPuyPpbxYyeOHTNBDXFfBWMCJsROUi6XS5R0I1PfEGTtkFMSrgMYCUEkgEmHQk4G6SAirHTDEZlt5rjZaioM0NZFZQUGgkVFRUy1CdSAMUTQQ4etIzlZ/OX6Rzf+ceuJry4Y9KkevxskAstUpA5JPEniDvAELFgkWKVACsgTUsoBRZxalHzwVVWIgDLA5HjBR/6QCK0dZF99XmqijUvwDRFTM8uVoKAKoQmNmE5qVKSH2GOzTRyT9fM1/4hf4dZ2u5quYkXUADYeG/V5+FP1XcspByeVcJi1xcesm6gj6isvL16wEJJcmzb9nghB+L2HPj28qPgnErGLJklhAGJWP8ofkZeTtjB/RKqByB5jLaUkJINU3njrjZq6msQkk81qGzUq9545hVA0iIhr/j99G/GK57kSPWeUSAZZ6C1omw1hFw35HCrcWIDZhZsVHJEuqcWLF7/88svHjh3DuzOTswQXMAtFTBRCg/WZteVbtr770aHTKmOSFFB6ibAw9UBFJgyMoGCjx7SyEgxRZTtBCQ9JL/JhNK657AUbwuqieS7sMul1QmAhBa2PEcVexCnkEjgMiZimtdtmzRixauUSv6fLYbPjYZg4bkQU5MSJE0jZ4eFjp7WvHRycVK6tym2IM8yf/+MjRw6dPHUSZXaky9CslZE5JG/seNRlMPIrSarFd+WBs1INugB0z0V1QrwBi+X9ne/t2LGzvd1mijd53C6sxtLSlbJad6PeAkK9GmyJTKYhMRhRFbthYDNsPHy5+Sv2' $Logo &= 'MCCBPSK8RtBnDPVAdLuw46iigF2s1lZ/XNfjDy9LH5L+7s4KhP1GrckDboAmMIlUJDpHoiJUpCTD9sTOR6kmvkZqFRiC9kdgC7YIYvSedeCFGP/QvmwFrguL1PsWNpQhrTIUcLWJAUfpfbPvKy5obzM7Oro0KgO1ArpcMgSjwJAKvZ3Qzoq0EfcdqXDwlmKK3nbijh83oWzVQ6/9sfvQ54eHZGbsP/CRrNNt2PDLoVnZyEqhvyvVoGU3d7p9GjWgeve9t//zv/5EHCB8REZ7wsSxc+4puiGMwqo1ToOBDo33HtG2232e3fq+qvtVGCVG36xHZaTrwUMcTBMIyrvLly+HjTHaFlBfQbyiBESRRQAYD3X6zy+eN31MdvZ/vLOr9ttLGsNgQaXtpnlmNqII0aawIOKFkgeZ3lGyrmEmZEo6ENmET1iJfTb7SAdKSLkRVKQGNUmYYvb4fI6LwzISHipZPC43s77R7A+4QFOwAoKSGFOjwhNCbAna9UuWLMG0Y+815xk4OKlcB8AUsqLik48//QRCkM5O99kzZ/Z9uOcfFiy8bWiOy9Glj9NJVFVJVEnI89rt7UePVJ75pgquqxgShKbWipWrMVYp3CiAURhrRtcq2E60/Mb3OdZdp7V3lXtGHg+g+9HH6VxJFHngYE8kNZk9eL8k0Knv1Hf6BXiwAcYrBQUFGObfvXs3SvfQBHN5iI89sSAgShAi5oKqz9cPycr49YbyPfs/3/vJSbvLozIm0+b4kDJMGvtDfkEUqTpxEH/Q+S1SMfzLTQFgGKrUgnBDEkAyAqzmJcgf08q9J4jJoPbmRFmYU3RH0dy7g6HuqroaUBT1siMS+CAupi5stbX+df/+OffMQSf0NfcQc3CQlXw9PsyeOHX8xZd+V3GgAqlkqOKbEhKe3vD08qUPQDgr3oiGMV2YhO3K89/WffDnd/57+/YzVVXwYjIY41aVlT++5ilZUgscfyuIjGY7ZxfmfwLxCQkYOIll' $Logo &= 'PsYiN7LyzxHRGWQ7sA48ePAgnKwGpaexeIWZEuI0ZvmuN5jS04dYWzsOHvzs6DeNDtjNGNIkfaKaCEiqw5Ia7jchmdg8CNinFteR4Xk/HWYR/AGi8uKTYJ4m+NF1bw13mA2yf3Le0KJZd6QkpmA8wOly4GoqlSRENOExzow5R0hxFxbMLCsriwm++xscPFLBTN+kiZPLyx6rra61tFzCurnQeKHy8OFpU6fpDDBKI4TBOqa+/vqrN958o8ViThuc7na6l9xfsnzJsp4wCmtG+8EiNtOtNxivOKG3qcs+ZBTe8BYb85WWlmKLeKVw1t2QMQevKCiY9wkSYp0Ou9PRkZKUUFoyZ+5sd+Wps0fPNFo66t1SnFqfoFInCqIiTqGRFHIYeyEVk6sk2S7krsIAJhs9AUgiuM3dnVbRZx9qkvMnjM6/fXRygqaj3XL2nBl5NyTFAmQG5jLhReooyHohQFlR+sDfaf/HwaHs+XrulQ8rtrm5wxctXpiUlNze1h6fEP/Rwf17/vKXQUmpyOR6Az5QQnVt1Yd7d9vb7NAqxtJKSIqfcPuk9MFZPSyVo7wvcFyVJAZSvQSMcitGKpE8ErbglZKSErjvQToP6SbGKEwPmLi9BbwgiGar9ZvzdaGws2j27f/82KJ1D8y6d0p6bnyn1lUdbv3K1XrO2XrO017rtZ/32eu7O+o8bbVuW63PfMrddNRrPqbsPDNUZy26PXXt0tm/WHHvnIJxIZ+z+lxdi9UN5R+aciMF/MiKxmNUVVVVVFQU31v84IoH8SR9GKNw8PRX36PFevHZXz27bdtbMGOoOddQUHjnr//1t5On3KHTxQV8/o0bf/fq5j/A+a2hril31LBV5WW/+PkzQg9AfREFJZPSG9DgiC0F3erZMLyDb926FUV71FpUshp6NiGKYIBaONIKfJD6NsKaxWQiuWLE+ohsOuwOc5fH4XS5PUSkyBtkls2SrFab1EqjXpeYCAUlo1FLvEfd1A7d' $Logo &= '091Ny1QiiVxD5M5MwBh/y7KM2x6trLRYLGhRQ14Ox/uBUTg4qfQ8jmHrf/s7b77yyu9bzDDWsmVkDh47fsyax9bdOXX68S8rN23atPfDvbflZDfU1c//cfH7f97Rq293q6R0ODipXGGOhODg9ddfx6jKtDunDc3KIi6NxAZbyUosQQqcFtEhAnMgSRUHyIIoSUS+FC8qSgwIZHCFuMP5vB6X04lGANwQR1WSJIrSd9PKgsgeA3eDlw+45NChQ+gbfri8fNz48TdXyouD11RiHRUjXLWg+L7z9XWvbd6skAQM+1YervzR7HMmk3HHzvcumpu0Wo35oiU/f9KyJff3kE4UN18thYMnvnpovce2eXl5zz333Pbt2ys+rhiSmQmTV/AFzA6AaMfZSOgAkkBAQ+RHcR8qBSai+0vwM1ohpSayRdMXHV8RpctWKwQ+dhM20oKDskaDIKbyyFeXLjXPmjV72bJlMEli/c03XcmKg6e/YnmFJKlEEcItmzZtrKg42NLSKsuamTNnYFT+iy++6OzswimSKK5fv/6xR9f29lsM4GCFw93tUZDP2io2gj4wQk8WDUQ6DrA9crTy7bffbmpqgu7kyNzRhFoocCY7jdEM+5KEJwLNkMHGi8qvhCMtKxhJwR7GGHFcDLPzo6lCBUgymAkmrbW1telpqUuXLr3rrruYfHKE8zip9Cc4qfR8sA4WKdXVVS+88MK+j/bljcnz+uDW6JIkFZwTEX0XFBb87NE1E8dP6vn9BzyvcLS0WZHgMUBxWtbEzIEOqIZjVD4OHDiwd99eh92Rk5MzYsQI1FFQXkF0QoIVIESI4f945Tt3H7rLNgAoKkjpgUQpjL1wOTVAEyVJguzKtw2NDQ0NaKKZP38+KigwprwFBoM4OKlEeCV2Uu+ljc+/+uorer0RcbhGo8bA2zenq++Ylv+b3z4/d1ZRr+48YHiFgw8bKShQ4cAUC/p622HtlZKSnXNb6qBUnVaHE5AWYwgz' $Logo &= 'RWJ6IYNASitXjiWxdjJswS6ebjcqN4iEMIaSlJBYWFiIvmH0CLD0GsuSCf0LDj78GMsZV788MqBX11j74ovP7961RxQVKSnJbW12gyFu1eryRx5do9fE/TBJhYPzSnTeCW/9lZWVqJ+fr6uDaBFClsGDM0zxCUiLofc3whwhigiFRI8xAqj5wycCJvktLS2Ozg7cGQHQjBkzpuRPBp3EakT2D69wcFKJRc8FpiK/97v27Xr+N//S1NwkKSW3y7NyxYM/W/OEzqBPS07rIaMMVFLh4BYskYFWVD7gyX3i5Ak0iTU2NMKjCJEHeAWZK2xlWQbBoETCrmYqxciVQa0S1r9Ic2EHh3B2VlbWmDGjJ0ycMHzYcI0sR8dGAkU/eM5zcFLpK15hp10yX/zgg3e3bNlyrrpmypRJT637p/tLllF9PIGTCgfHFZMioAqz2dzc3FxfX3/hwgVEHghBcNDrJSbfEUpgdXhwjdFoSE1NzczMzM7OxhZxCegn5s43PTg4qTDC6GFxxensfOaZp4+fPLZq9ep77p6bnXVbzxmlz0nF0mJJG5Qm3Ezg4IiujkQvAcw/IgpBLOJ0OhmvAGT4UZa1Wi2LYzDOAo6JXTi3joI9ByeV3vPK+zvesdqsxcWL4vUmrIO/qfHFvB37nFScXRgTcylVIizChOuDVrsNz89IEd2xifEJkRM4WttaBeKGTirGcRQu0hXoEonRekin0+q1epaf+WFGnGGKa6CEWMeKfpDz4uCkciNh77CZ8D7e3/B53U6XU0FdKcFdwUDQoDeoI7b24aDT7YQBjFIgRkdIaKtVWhz2eF1IQagUdPgM1wXC1FtPCHoD8YZ4SSM7uux+r1elVAkSLZwGw1TcPQRBDqOek4rgaLeRH7iogJ4ufi7YQUVar9PLmjjSau52iqIEiUWtRqfR6YUo8KglUhGJTmfFRjb9XIHn4Pjf9uqgCAAABgHQ+pd2JTxfUIKUAMBlBgCpAIBUAJAKAFIB' $Logo &= 'gAcIIS5QiH1PVwAAAABJRU5ErkJggg==' Local $bString = _WinAPI_Base64Decode($Logo) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\pspad4autoit.png", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Logo 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_Base64Decode1 point -
Help with Removing Email Address Suffix
Skysnake reacted to JockoDundee for a topic
A rare win for the non-regex team1 point -
Or : $sEmail = "some.user.name@hotmail.com" $sEmail = StringRegExpReplace($sEmail, "@.+", "") ConsoleWrite ($sEmail & @CRLF)1 point
-
OutlookEX UDF
Skysnake reacted to seadoggie01 for a topic
@water, I tested this and it works for me perfectly!1 point -
Would something like this solve your problem? I check @error after .Send. If we get 0x80070057 we can execute all statements to solve the problem. Func _OL_ItemSend($oOL, $vItem, $sStoreID = Default) Local $oInspector Local Const $olMinimized = 1 ; The window is minimized If Not IsObj($vItem) Then If StringStripWS($vItem, BitOR($STR_STRIPLEADING, $STR_STRIPTRAILING)) = "" Then Return SetError(1, 0, 0) $vItem = $oOL.Session.GetItemFromID($vItem, $sStoreID) If @error Then Return SetError(1, @error, 0) EndIf $vItem.Send() If @error Then ; Handle the MAPI_E_INVALID_PARAMETER (HRESULT 0x80070057) error found in Outlook 365 Version 2009. ; Described here and the following posts: https://www.autoitscript.com/forum/topic/126305-outlookex-udf/?do=findComment&comment=1466457 If @error = 0x80070057 Then $oInspector = $vItem.GetInspector $oInspector.Activate $oInspector.WindowState = $olMinimized $vItem.Send() If @error Then Return SetError(2, @error, 0) Else Return SetError(2, @error, 0) EndIf EndIf Return $vItem EndFunc ;==>_OL_ItemSend1 point