Jump to content

AutoCom v1.0.0.1


 Share

Recommended Posts

AutoCom was inspired by Au3Int, OptParse which provides core functions for command line parsing of arguments into an array (Found Here on the forums), is currently being developed to assist in working with more complex commands and functions within AutoCom

Autocom.exe was built on autoit scripting language and allows you to execute autoit commands from within in cmd's environment or script file along with other pre built functions built on the autoit language. AutoCom was built with two scenarios in mind.

Scenario 1:

Execute the command as is and return 0 value (AutoCom Beep 500 1000)

Executes the beep sound and returns

Scenario 2:

Execute the command and return the value to the command window (AutoCom FileExists "c:\file.txt")

Executes FileExists and returns 0 or 1 if the file exist

AutoCom is meant to be integrated into Windows script files, .bat, .vbs, etc...

(Refer to the notes below)

Here are a couple of examples related to the two above scenarios.

Example 1: (Execute and return 0 value)

C:\>AutoCom Beep 500 100

C:\>

Example 2: (Execute and Return value to the command line)

C:\>AutoCom FileExists "c:\windows\system32\cmd.exe"
1

C:\>

In Example 2: we simply check for the file and if it exist we return 1. In a batch/cmd script we would simply...

@echo off

if exist c:\windows\system32\cmd.exe echo;File Found

We can now if we want to integrate this into a batch/cmd script to process based on our output.

@echo off

for /f "tokens=*" %%a in ('AutoCom FileExists c:\windows\system32\cmd.exe') do (
    if [%%a]==[1] (echo;File exist
    ) else echo;File does not exists
))

Resource Links:

http://xpdll.nirsoft.net/

http://www.win7dll.info/

http://en.wikipedia.org/wiki/Windows_API

http://msdn.microsoft.com/en-us/library/

External Scripts, Plugins, and Libraries:

(Under Development)

Notes:

Once all commands have been updated two packaged versions will be released. Package one for people worried about size which includes all commands compiled into the AutoCom.exe file, and package two which includes all commands compiled independently (Beep.exe, InetGet.exe, etc...) and source files. All commands are meant to be ran from the command prompt or from within a script file. You can type the command name with no arguments to retrieve the internal help. You can also refer to the README.txt for more links to help documentation. The list of currently available and working commands is located in the CurrentlyAvailableCommands.txt file. AutoCom.exe is completely independent and only reliant upon cmd's environment. All standard cmd rules apply when using AutoCom commands. If you would like to be involved in the development of this project send all mail request to contact@scriptingpros.com or autocom@scriptingpros.com. If enough people show an interest in this project I will bring the source online. For now the project is hosted over on our forum because it is over the 64k size, and is currently closed source.

Download AutoCom v1.0.0.1 here

UPDATE: 06/23/2011

AUTOCOM v_1.0.0.5 Beta (Release Date TBA)

For more information on a command type the command without parameters

[ENVIRONMENT FUNCTIONS]
 ClipGet              Retrieves text from the clipboard.
 ClipPut              Writes text to the clipboard.
 EnvGet               Retrieves an environment variable.
 EnvSet               Writes an environment variable.
 EnvUpdate            Refreshes the OS environment.
 MemGetStats          Retrieves memory related information.

[FILE, DIRECTORY, and DISK FUNCTIONS]
 ConsoleRead          Read from the STDIN stream of the AutoIt script process.
 ConsoleWrite         Writes data to the STDOUT stream.
 ConsoleWriteError    Writes data to the STDERR stream.
 DirCopy              Copies a directory and all sub-directories and files (Similar to xcopy).
 DirCreate            Creates a directory/folder.
 DirGetSize           Returns the size in bytes of a given directory.
 DirMove              Moves a directory and all sub-directories and files.
 DirRemove            Deletes a directory/folder.
 DriveGetDrive        Returns an array containing the enumerated drives.
 DriveGetFileSystem   Returns File System Type of a drive.
 DriveGetLabel        Returns Volume Label of a drive, if it has one.
 DriveGetSerial       Returns Serial Number of a drive.
 DriveGetType         Returns drive type.
 DriveMapAdd          Maps a network drive.
 DriveMapDel          Disconnects a network drive.
 DriveMapGet          Retrieves the details of a mapped drive.
 DriveSetLabel        Sets the Volume Label of a drive.
 DriveSpaceFree       Returns the free disk space of a path in Megabytes.
 DriveSpaceTotal      Returns the total disk space of a path in Megabytes.
 DriveStatus          Returns the status of the drive as a string.
 FileChangeDir        Changes the current working directory.
 FileClose            Closes a previously opened text file.
 FileCopy             Copies one or more files.
 FileCreateNTFSLink   Creates an NTFS hardlink to a file or a directory
 FileCreateShortcut   Creates a shortcut (.lnk) to a file.
 FileDelete           Delete one or more files.
 FileExists           Checks if a file or directory exists.
 FileFindFirstFile    Returns a search handle according to file search string.
 FileFindNextFile     Returns a filename according to a previous call to FileFindFirstFile.
 FileFlush            Flushes the file's buffer to disk.
 FileGetAttrib        Returns a code string representing a file's attributes.
 FileGetEncoding      Determines the text encoding used in a file.
 FileGetLongName      Returns the long path+name of the path+name passed.
 FileGetPos           Retrieves the current file position.
 FileGetShortcut      Retrieves details about a shortcut.
 FileGetShortName     Returns the 8.3 short path+name of the path+name passed.
 FileGetSize          Returns the size of a file in bytes.
 FileGetTime          Returns the time and date information for a file.
 FileGetVersion       Returns the File version information.
 FileInstall          Include and install a file with the compiled script.
 FileMove             Moves one or more files
 FileOpen             Opens a text file for reading or writing.
 FileOpenDialog       Initiates a Open File Dialog.
 FileRead             Read in a number of characters from a previously opened text file.
 FileReadLine         Read in a line of text from a previously opened text file.
 FileRecycle          Sends a file or directory to the recycle bin.
 FileRecycleEmpty     Empties the recycle bin.
 FileSaveDialog       Initiates a Save File Dialog.
 FileSelectFolder     Initiates a Browse For Folder dialog.
 FileSetAttrib        Sets the attributes of one or more files.
 FileSetPos           Sets the current file position.
 FileSetTime          Sets the timestamp of one of more files.
 FileWrite            Append a text/data to the end of a previously opened file.
 FileWriteLine        Append a line of text to the end of a previously opened text file.
 IniDelete            Deletes a value from a standard format .ini file.
 IniRead              Reads a value from a standard format .ini file.
 IniReadSection       Reads all key/value pairs from a section in a standard format .ini file.
 IniReadSectionNames  Reads all sections in a standard format .ini file.
 IniRenameSection     Renames a section in a standard format .ini file.
 IniWrite             Writes a value to a standard format .ini file.
 IniWriteSection      Writes a section to a standard format .ini file.

[GRAPHIC and SOUND FUNCTIONS]
 Beep                 Plays back a beep to the user.
 PixelChecksum        Generates a checksum for a region of pixels.
 PixelGetColor        Returns a pixel color according to x,y pixel coordinates.
 PixelSearch          Searches a rectangle of pixels for the pixel color provided.
 SoundPlay            Play a sound file.
 SoundSetWaveVolume   Sets the system wave volume by percent.

[KEYBOARD FUNCTIONS]
 HotKeySet            Sets a hotkey that calls a user function.
 Send                 Sends simulated keystrokes to the active window.
 SendKeepActive       Attempts to keep a specified window active during Send().

[MATH FUNCTIONS]
 Abs                  Calculates the absolute value of a number.
 ACos                 Calculates the arcCosine of a number.
 ASin                 Calculates the arcsine of a number.
 ATan                 Calculates the arctangent of a number.
 BitAND               Performs a bitwise AND operation.
 BitNOT               Performs a bitwise NOT operation.
 BitOR                Performs a bitwise OR operation.
 BitRotate            Performs a bit shifting operation, with rotation.
 BitShift             Performs a bit shifting operation.
 BitXOR               Performs a bitwise exclusive OR (XOR) operation.
 Cos                  Calculates the cosine of a number.
 Ceiling              Returns a number rounded up to the next integer.
 Exp                  Calculates e to the power of a number.
 Floor                Returns a number rounded down to the closest integer.
 Log                  Calculates the natural logarithm of a number.
 Mod                  Performs the modulus operation.
 Random               Generates a pseudo-random float-type number.
 Round                Returns a number rounded to a specified number of decimal places.
 Sin                  Calculates the sine of a number.
 Sqrt                 Calculates the square-root of a number.
 SRandom              Set Seed for random number generation.
 Tan                  Calculates the tangent of a number.

[MESSAGE BOX and DIALOG FUNCTIONS]
 InputBox             Displays an input box to ask the user to enter a string.
 MsgBox               Displays a simple message box with optional timeout.
 ProgressOff          Turns Progress window off.
 ProgressOn           Creates a customizable progress bar window.
 ProgressSet          Sets the position and/or text of a previously created Progress bar window.
 SplashImageOn        Creates a customizable image popup window.
 SplashOff            Turns SplashText or SplashImage off.
 SplashTextOn         Creates a customizable text popup window.
 ToolTip              Creates a tooltip anywhere on the screen.

[MISC. FUNCTIONS]
 AdlibRegister        Registers an Adlib function.
 AdlibUnRegister      Unregisters an adlib function.
 AutoItSetOption      Changes the operation of various AutoIt functions/parameters.
 AutoItWinGetTitle    Retrieves the title of the AutoIt window.
 AutoItWinSetTitle    Changes the title of the AutoIt window.
 BlockInput           Disable/enable the mouse and keyboard.
 Break                Enables or disables the users' ability to exit a script from the tray icon menu.
 Call                 Calls a user-defined function contained in a string parameter.
 CDTray               Opens or closes the CD tray.
 Execute              Execute an expression.
 OnAutoItExitRegister Registers a function to be called when AutoIt exits.
 OnAutoItExitUnReg    UnRegisters a function that was called when AutoIt exits.
 AutoItSetOption      Changes the operation of various AutoIt functions/parameters.
 SetError             Manually set the value of the @error macro.
 SetExtended          Manually set the value of the @extended macro.
 VarGetType           Returns the internal type representation of a variant.

[MOUSE FUNCTIONS]
 MouseClick           Perform a mouse click operation.
 MouseClickDrag       Perform a mouse click and drag operation.
 MouseDown            Perform a mouse down event at the current mouse position.
 MouseGetCursor       Returns the cursor ID Number for the current Mouse Cursor.
 MouseGetPos          Retrieves the current position of the mouse cursor.
 MouseMove            Moves the mouse pointer.
 MouseUp              Perform a mouse up event at the current mouse position.
 MouseWheel           Moves the mouse wheel up or down. NT/2000/XP ONLY. 

[NETWORK FUNCTIONS]
 FtpSetProxy          Sets the internet proxy to use for ftp access.
 HttpSetProxy         Sets the internet proxy to use for http access.
 HttpSetUserAgent     Sets the user-agent string sent with InetGet() and InetRead() requests.
 InetClose            Closes a handle returned from InetGet().
 InetGet              Downloads a file from the internet using the HTTP, HTTPS or FTP protocol.
 InetGetInfo          Returns detailed data for a handle returned from InetGet().
 InetGetSize          Returns the size (in bytes) of a file located on the internet.
 InetRead             Downloads a file from the internet using the HTTP, HTTPS or FTP protocol.
 Ping                 Pings a host and returns the roundtrip-time.
 TCPAccept            Permits an incoming connection attempt on a socket.
 TCPCloseSocket       Closes a TCP socket.
 TCPConnect           Create a socket connected to an existing server.
 TCPListen            Creates a socket listening for an incoming connection.
 TCPNameToIP          Converts an Internet name to IP address.
 TCPRecv              Receives data from a connected socket.
 TCPSend              Sends data on a connected socket.
 TCPShutdown,         UDPShutdown Stops TCP/UDP services.
 TCPStartup,          UDPStartup Starts TCP or UDP services.
 UDPBind              Create a socket bound to an incoming connection.
 UDPCloseSocket       Close a UDP socket.
 UDPOpen              Open a socket connected to an existing server .
 UDPRecv              Receives data from a opened socket
 UDPSend              Sends data on an opened socket
 TCPShutdown,         UDPShutdown Stops TCP/UDP services.
 TCPStartup,          UDPStartup Starts TCP or UDP services.

[OBJ/COM FUNCTIONS]
 ObjCreate            Creates a reference to a COM object from the given classname.
 ObjEvent             Handles incoming events from the given Object.
 ObjGet               Retrieves a reference to a COM object from an existing process or filename.
 ObjName              Returns the name or interface description of an Object

[PROCESS FUNCTIONS]
 DllCall              Dynamically calls a function in a DLL.
 DllCallbackFree      Frees a previously created handle created with DllCallbackRegister.
 DllCallbackGetPtr    Returns the pointer to a callback function that can be passed to the Win32 API.
 DllCallbackRegister  Creates a user-defined DLL Callback function.
 DllClose             Closes a previously opened DLL.
 DllOpen              Opens a DLL file for use in DllCall.
 DllStructCreate      Creates a C/C++ style structure to be used in DllCall.
 DllStructGetData     Returns the data of an element of the struct.
 DllStructGetPtr      Returns the pointer to the struct or an element in the struct.
 DllStructGetSize     Returns the size of the struct in bytes.
 DllStructSetData     Sets the data in of an element in the struct.
 ProcessClose         Terminates a named process.
 ProcessExists        Checks to see if a specified process exists. 
 ProcessGetStats      Returns an array about Memory or IO infos of a running process.
 ProcessSetPriority   Changes the priority of a process
 ProcessList          Returns an array listing the currently running processes (names and PIDs).
 ProcessWait          Pauses script execution until a given process exists.
 ProcessWaitClose     Pauses script execution until a given process does not exist.
 Run                  Runs an external program.
 RunWait              Runs an external program and pauses script execution until the program finishes.
 RunAs                Runs an external program under the context of a different user.
 RunAsWait            Runs an external program under the context of a different user and pauses script execution until the program finishes.
 ShellExecute         Runs an external program using the ShellExecute API.
 ShellExecuteWait     Runs an external program using the ShellExecute API and pauses script execution until it finishes.
 Shutdown             Shuts down the system.
 StderrRead           Reads from the STDERR stream of a previously run child process.
 StdinWrite           Writes a number of characters to the STDIN stream of a previously run child process.
 StdioClose           Closes all resources associated with a process previously run with STDIO redirection.
 StdoutRead           Reads from the STDOUT stream of a previously run child process.

[REGISTRY FUNCTIONS]
 RegDelete            Deletes a key or value from the registry.
 RegEnumKey           Reads the name of a subkey according to it's instance.
 RegEnumVal           Reads the name of a value according to it's instance.
 RegRead              Reads a value from the registry.
 RegWrite             Creates a key or value in the registry.

[STRING FUNCTIONS]
 StringAddCR          Takes a string and prefixes all linefeed characters ( Chr(10) ) with a carriage return character ( Chr(13) ).
 StringCompare        Compares two strings with options.
 StringInStr          Checks if a string contains a given substring.
 StringIsAlNum        Checks if a string contains only alphanumeric characters.
 StringIsAlpha        Checks if a string contains only alphabetic characters.
 StringIsASCII        Checks if a string contains only ASCII characters in the range 0x00 - 0x7f (0 - 127).
 StringIsDigit        Checks if a string contains only digit (0-9) characters.
 StringIsFloat        Checks if a string is a floating point number.
 StringFormat         Returns a formatted string (similar to the C sprintf() function).
 StringFromASCIIArray Converts an array of ASCII codes to a string.
 StringIsInt          Checks if a string is an integer.
 StringIsLower        Checks if a string contains only lowercase characters.
 StringIsSpace        Checks if a string contains only whitespace characters.
 StringIsUpper        Checks if a string contains only uppercase characters.
 StringIsXDigit       Checks if a string contains only hexadecimal digit (0-9, A-F) characters.
 StringLeft           Returns a number of characters from the left-hand side of a string.
 StringLen            Returns the number of characters in a string. 
 StringLower          Converts a string to lowercase.
 StringMid            Extracts a number of characters from a string.
 StringRegExp         Check if a string fits a given regular expression pattern.
 StringRegExpReplace  Replace text in a string based on regular expressions.
 StringReplace        Replaces substrings in a string.
 StringRight          Returns a number of characters from the right-hand side of a string.
 StringSplit          Splits up a string into substrings depending on the given delimiters.
 StringStripCR        Removes all carriage return values ( Chr(13) ) from a string.
 StringStripWS        Strips the white space in a string.
 StringToASCIIArray   Converts a string to an array containing the ASCII code of each character.
 StringTrimLeft       Trims a number of characters from the left hand side of a string.
 StringTrimRight      Trims a number of characters from the right hand side of a string.
 StringUpper          Converts a string to uppercase.

[TIMER and DELAY FUNCTIONS]
 Sleep                Pause script execution.
 TimerInit            Returns a timestamp (in milliseconds).
 TimerDiff            Returns the difference in time from a previous call to TimerInit().

[TRAY FUNCTIONS]
 TrayCreateItem       Creates a menuitem control for the tray.
 TrayCreateMenu       Creates a menu control for the tray menu.
 TrayItemDelete       Deletes a menu/item control from the tray menu.
 TrayItemGetHandle    Returns the handle for a tray menu(item).
 TrayItemGetState     Gets the current state of a control.
 TrayItemGetText      Gets the itemtext of a tray menu/item control.
 TrayItemSetOnEvent   Defines a user-defined function to be called when a tray item is clicked.
 TrayItemSetState     Sets the state of a tray menu/item control.
 TrayItemSetText      Sets the itemtext of a tray menu/item control.
 TrayGetMsg           Polls the tray to see if any events have occurred.
 TraySetClick         Sets the clickmode of the tray icon - what mouseclicks will display the tray menu.
 TraySetIcon          Loads/Sets a specified tray icon.
 TraySetOnEvent       Defines a user function to be called when a special tray action happens.
 TraySetPauseIcon     Loads/Sets a specified tray pause icon.
 TraySetState         Sets the state of the tray icon.
 TraySetToolTip       Sets the tooltip text for the tray icon.
 TrayTip              Displays a balloon tip from the AutoIt Icon. (2000/XP only)

[VARIABLES and CONVERSION FUNCTIONS]
 Asc                  Returns the ASCII code of a character.
 AscW                 Returns the unicode code of a character.
 Chr                  Returns a character corresponding to an ASCII code.
 ChrW                 Returns a character corresponding to a unicode code.
 Assign               Assigns a variable by name with the data.
 Binary               Returns the binary representation of an expression.
 BinaryLen            Returns the number of bytes in a binary variant.
 BinaryMid            Extracts a number of bytes from a binary variant.
 BinaryToString       Converts a binary variant into a string.
 Dec                  Returns a numeric representation of a hexadecimal string.
 Eval                 Return the value of the variable defined by an string.
 Hex                  Returns a string representation of an integer or of a binary type converted to hexadecimal.
 HWnd                 Converts an expression into an HWND handle.
 Int                  Returns the integer (whole number) representation of an expression.
 IsAdmin              Checks if the current user has full administrator privileges.
 IsArray              Checks if a variable is an array type.
 IsBinary             Checks if a variable or expression is a binary type.
 IsBool               Checks if a variable's base type is boolean.
 IsDeclared           Check if a variable has been declared.
 IsDllStruct          Checks if a variable is a DllStruct type.
 IsFloat              Checks if a variable or expression is a float-type.
 IsHWnd               Checks if a variable's base type is a pointer and window handle.
 IsInt                Checks if a variable or expression is an integer type.
 IsKeyword            Checks if a variable is a keyword (for example, Default).
 IsNumber             Checks if a variable's base type is numeric.
 IsObj                Checks if a variable or expression is an object type.
 IsPtr                Checks if a variable's base type is a pointer.
 IsString             Checks if a variable is a string type.
 Number               Returns the numeric representation of an expression. 
 Ptr                  Converts an expression into a pointer variant.
 String               Returns the string representation of an expression.
 StringToBinary       Converts a string into binary data.
 UBound               Returns the size of array dimensions.

[WINDOW FUNCTIONS]
 WinActivate          Activates (gives focus to) a window.
 WinActive            Checks to see if a specified window exists and is currently active.
 WinClose             Closes a window.
 WinExists            Checks to see if a specified window exists.
 WinFlash             Flashes a window in the taskbar.
 WinGetCaretPos       Returns the coordinates of the caret in the foreground window
 WinGetClassList      Retrieves the classes from a window.
 WinGetClientSize     Retrieves the size of a given window's client area.
 WinGetHandle         Retrieves the internal handle of a window.
 WinGetPos            Retrieves the position and size of a given window.
 WinGetProcess        Retrieves the Process ID (PID) associated with a window.
 WinGetState          Retrieves the state of a given window.
 WinGetText           Retrieves the text from a window.
 WinGetTitle          Retrieves the full title from a window.
 WinKill              Forces a window to close.
 WinList              Retrieves a list of windows.
 WinMenuSelectItem    Invokes a menu item of a window.
 WinMinimizeAll       Minimizes all windows.
 WinMinimizeAllUndo   Undoes a previous WinMinimizeAll function.
 WinMove              Moves and/or resizes a window.
 WinSetOnTop          Change a window's Always On Top attribute.
 WinSetState          Shows, hides, minimizes, maximizes, or restores a window.
 WinSetTitle          Changes the title of a window.
 WinSetTrans          Sets the transparency of a window. (Windows 2000/XP or later)
 WinWait              Pauses execution of the script until the requested window exists.
 WinWaitActive        Pauses execution of the script until the requested window is active.
 WinWaitClose         Pauses execution of the script until the requested window does not exist.
 WinWaitNotActive     Pauses execution of the script until the requested window is not active.

UPDATE: 06/25/2011

AUTOCOM v_1.0.0.1 Beta (Release Date 06/25/2011)

For more information on a command type the command without parameters

Abs
ACos
Asc
AscW
Beep
Binary
BinaryLen
BitNOT
CDTray
Ceiling
Chr
ChrW
ClipGet
ClipPut
Dec
DirCreate
DirRemove
DriveGetDrive
DriveGetFileSystem
DriveGetLabel
DriveGetSerial
DriveGetType
DriveMapDel
DriveMapGet
DriveSetLabel
DriveSpaceFree
DriveSpaceTotal
DriveStatus
EnvGet
Exp
FileChangeDir
FileDelete
FileExists
FileFindFirstFile
FileGetAttrib
FileGetSize
FileRecycle
FileRecycleEmpty
Floor
Hex
IniDelete
IniRead
IniReadSection
IniReadSectionNames
IniWrite
Int
MemGetStats
Sqrt
StringCompare
StringInStr
StringIsAlNum
StringIsAlpha
StringIsASCII
StringIsDigit
StringIsFloat
StringIsInt
StringIsLower
StringIsSpace
StringIsUpper
StringIsXDigit
StringLeft
StringLen
StringLower
StringMid
StringReplace
StringRight
StringSplit
StringStripCR
StringStripWS
StringTrimLeft
StringTrimRight
StringUpper
Edited by Cleptography
Link to comment
Share on other sites

Missing recourse link. (I'm lazy like that)

(AutoIt3 Interpreter.)

(damn nice formatted message otherwise.)

---

(Aha, no wonder, your Mod on scriptingpros. :) )

Edited by iEvKI3gv9Wrkd41u

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Link to comment
Share on other sites

Missing recourse link. (I'm lazy like that)

(AutoIt3 Interpreter.)

Sorry about that was trying to find the link and edit the post at the same time got cut off by time, thank you for posting it. Here's the link to the _OptParse that is being integrated into the next build

http://code.google.com/p/my-autoit/source/browse/trunk/doc/optparse.html?r=118

Should probably add a couple of other links one for the pole/home page

http://scriptingpros.com/viewtopic.php?f=153&t=94

Finally a link to Ed's Macro library which will also be introduced into the next build once himself, and the others get a stable release up and running.

http://scriptingpros.com/viewtopic.php?f=152&t=70

Please leave comments thoughts, ideas, good bad or indifferent on the project as they are always welcome and appreciated. Thank You

Link to comment
Share on other sites

  • 1 month later...

The download link doesn't work for me though.

Your probably not the only one ... considering the whole site seems to be down at the moment.

(Give it some time(days).)

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Link to comment
Share on other sites

  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...