Jump to content

HERE strings in AutoIT ?


Recommended Posts

Hi guys,

is there a similar concept to PERL here documents? I searched the help file, but was not able to find something about this.

Example:

$string = <<'EOF';

Formatted Text comes here

    No matter what....

So I don't have to use &_ at the end of a line???
EOF

Thanks

Kurt

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

i use this... i think its what your looking for

; Read in lines of text until the EOF is reached

While 1

$sLine = FileReadLine($hFile)

If @error = -1 Then ExitLoop

If $sLine <> "" Then

********* EndIf

;;;;;FileDelete($sLine)

;Sleep(50)

$Msg = GUIGetMsg()

If $Msg = $GUI_EVENT_CLOSE Then ExitLoop

If $Msg = $Auto_Cancel Then ExitLoop

EndIf

WEnd

FileClose($hFile)

cut out my stuff.... but you get the idea

hope it helps.... 8)

NEWHeader1.png

Link to comment
Share on other sites

maybe-not..... but i have this line and i cant see it all in sciTe

$iMsgBoxAnswer = MsgBox(32, "*XPClean Menu* , by Q.T. APPRAISAL SERVICE", "WHO IS, QT APPRAISAL SERVICE ?" & @CRLF & "" & @CRLF & "We are a Real Estate Appraisal Company based in Riverside, California. We spend hours upon hours researching various internet sites, sending and receiving e-mails, downloading and uploading large appraisal files, digital maps; photos; signatures and more. For this, our network of computers are connected to the internet at all times and are vulnerable to many types of attacks. Our computers are cluttered with files, cookies, downloads, temporary files, recently old files, digitally compulated files, e-mails, etc combined with virus attacks, attached adware creating pop-up ads and spyware tracking our usage. " & @CRLF & "" & @CRLF & "Thus, I have spent hours cleaning and tuning-up our computer system and have finally designed a menu system to manage these great clean-up and tune-up programs" & @CRLF & "" & @CRLF & "... I just thought you might appreciate and benefit from all of my efforts." & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "", 60)

there is no &_

NEWHeader1.png

Link to comment
Share on other sites

maybe-not..... but i have this line and i cant see it all in sciTe

That's O.K. because a line in AutoIT can have up to 4096 characters. BUT, then there is no formatting of the text, and that's what I'm looking for.

Cheers

Kurt

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

it worked for me here with &_

#include <GUIConstants.au3>

$Share_win = GUICreate("*XPClean Menu* - Share this Menu - E-Mail Instructions", 512, 384, -1, -1, -1, -1)
            GUICtrlCreateLabel("Simply...  Edit this E-Letter and Copy / Paste to your E-Mail", 10, 7, 600, 30)
            GUICtrlSetFont(-1, 14, 10);>>>> formated text here
        ;Create an edit box with text in it
            $Share_Edit = GUICtrlCreateEdit("Hey, " & @CRLF & @CRLF & "I found a Great Windows Xp Clean-up and Tune-up Menu System! " & @CRLF & @CRLF & _
                    "This Menu Program Cleans, Organizes and Optimizes Your Computer." & @CRLF & @CRLF & "Best of All it's FREE!" & @CRLF & @CRLF & _
                    "This menu can help remove pop-ups, clean ad and spy programs, clean junk files" & @CRLF & _ 
                    "and organize your hard drive to make Windows Xp faster and more fun!" & @CRLF & @CRLF & _ 
                    " It really works, Check it out here:" & @CRLF & @CRLF & "http://www.XPCleanMenu.HostRocket.com" & @CRLF & @CRLF & "Enjoy!", 10, 40, 480, 300)
            
            
            GUICtrlSetFont(-1, 14, 10);>>>>> and formated text here
            
            $Share_OK = GUICtrlCreateButton("OK", 210, 350, 70, 25)
            GUICtrlSetState($Share_Edit, 0)
            GUISetState(@SW_SHOW, $Share_win)     ; will display the dialog box
            
; Run the GUI until the dialog is closed
While 1
    $msg = GUIGetMsg()
    
    if $msg = $GUI_EVENT_CLOSE or $msg = $Share_OK Then
        ExitLoop
    EndIf
WEnd

is this what you want?

NEWHeader1.png

Link to comment
Share on other sites

$Share_Edit = GUICtrlCreateEdit("Hey, " & @CRLF & @CRLF & "I found a

is this what you want?

actually, no. One of the things I want to avoid is "& @CRLF & @CRLF & " for line breaks. I just want to define my formatted string, as I would like to see it on the screen.

$string = "; START of string
Here we go .........
      
    Just type the formatted string 
  Indet as you like 
....
";-- END of string
 
msgbox(4096, "", $tring)

instead of

$string = "Here we go ........." & @CRLF &_
"   Just type the formatted string" & @CRLF &_
"  Indet as you like " & @CRLF &_
"...."
 
msgbox(4096, "", $tring)

O.K. one might say. WTF, why do you care about the @CRLF? I would answer. It does'nt look nice in my code. I like clean and tidy looking source code, AND it's less characters to type.

Cheers

Kurt

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

So why not to use StringFormat? Not exactly what you want but much simpler to read.

$Share_Edit = GUICtrlCreateEdit(StringFormat("Hey, \n\r\n\rI found a"))

<{POST_SNAPBACK}>

I think what he's trying to do is make the string easier to read in code. This is an issue that cannot have a function written to fix it, it is a precomiler/compiler issue.
Link to comment
Share on other sites

I think what he's trying to do is make the string easier to read in code.  This is an issue that cannot have a function written to fix it, it is a precomiler/compiler issue.

You got it!

Cheers

Kurt

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

O.K. one might say. WTF, why do you care about the @CRLF? I would answer. It does'nt look nice in my code. I like clean and tidy looking source code, AND it's less characters to type.

Cheers

Kurt

<{POST_SNAPBACK}>

Plus it makes it so that you can easily cut and paste multi-line strings, in and out of your code, as simple text.
Link to comment
Share on other sites

Plus it makes it so that you can easily cut and paste multi-line strings, in and out of your code, as simple text.

True.

Cheers

Kurt

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

here's an idea:

Write a UDF that reads a string value in from a file

When you build, add this file to the EXE as a resource

Your UDF should determine weather the script is running as a script or an executable, and should read from the file or the resource accordingly.

A little more work, I know, but it's almost as good...

Link to comment
Share on other sites

You guys are close to a question i have.. how about this

from an outside source read in

$data=GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON)

then ... i tried this

GUICreate("My GUI")

$data

*********

it didnt work....is there any way to bring in a code and the apply it correctly

thx

NEWHeader1.png

Link to comment
Share on other sites

not sure if I understand you right or such but:

$data=GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON)

so $data is the return value.

Return Value

Success: Returns the identifier (controlID) of the new control.

Failure: Returns 0.

for an outside source, you can #include

code from myinclude.au3

func button()
   $_data=GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON)
   return $_data
endfunc

then:

#include "myinclude.au3"
GUICreate("My GUI")
button(); or $data=button()

just a reminder, all code done this way is pulled in at compile time.

If you want dynamic stuff, you have to use variables.

Edited by scriptkitty

AutoIt3, the MACGYVER Pocket Knife for computers.

Link to comment
Share on other sites

just a reminder, all code done this way is pulled in at compile time.

If you want dynamic stuff, you have to use variables.

<{POST_SNAPBACK}>

ok sorry if i wasn't clear

i have a compiled program and i wish to bring in what you call dynamic stuff

the data file has lines like

GUICreate...(button)

i brought it in with

$data_[80]

then stated

$button_1 = $data_[1]

then i tried

GUICreate('My GUI")

$button_1

GUIsetstate()

hope thats clearer......how could i improve....... thanks

NEWHeader1.png

Link to comment
Share on other sites

That won't work, what you might try doing and this is just a quick and dirty example, not finished either mind you:

; read in file into an array
; read function or code goes here
; then create the controls
_CreateGuiControls($av_Array)
GUISetState()
while 1
WEnd

Func _CreateGuiControls($av_Array)
    For $x = 0 To UBound($av_Array) - 1
        If (StringInStr($av_Array[$x],"GuiCtrlCreateButton") ) Then
        ElseIf; next control etc...
        EndIf
    Next
EndFunc

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

That won't work, what you might try doing and this is just a quick and dirty example, not finished either mind you:

; read in file into an array
; read function or code goes here
; then create the controls
_CreateGuiControls($av_Array)
GUISetState()
while 1
WEnd

Func _CreateGuiControls($av_Array)
    For $x = 0 To UBound($av_Array) - 1
        If (StringInStr($av_Array[$x],"GuiCtrlCreateButton") ) Then
        ElseIf; next control etc...
        EndIf
    Next
EndFunc

<{POST_SNAPBACK}>

this is new ground for me.... not totally clear

i will wait to hear more... thanks

here's what i have done... i think this is correct

;~ ;------------------ Set Menu Bar Skins--------------------

Func Set_Menu_Bar()

If $Full = "show" Then GUISetState(@SW_MINIMIZE, $MAIN)

TraySetState (@SW_HIDE)

SplashTextOn("Setup New Menu Bar", " ...Please wait... " & @CRLF & " Verifying New Menu File", 250, 80, 200, 200)

Sleep(1000)

If Not FileExists($New_Bar) Then

MsgBox(0, "Error 1", "Unable to open file.")

Return

EndIf

$NFile = FileOpen($New_Bar, 0)

; Check if file opened for reading OK

If $NFile = -1 Then

MsgBox(0, "Error 2", "Unable to open file.")

Return

EndIf

Dim $Data_[81], $newID=""

; Read in lines of text until the EOF is reached

While 1

$NLine = FileReadLine($NFile)

If @error = -1 Then ExitLoop

If $NLine <> "" Then

$newID = $newID + 1

$Data_[$newID] = $NLine

;MsgBox(0,"","$Data_" & $newID & " = " & $NLine)

EndIf

WEnd

FileClose($NFile)

Sleep(1000)

SplashTextOn("Setup New Menu Bar", " ...Please wait... " & @CRLF & " Creating New Menu Bar ", 250, 80, 200, 200)

Sleep(2000)

GUIDelete ( $Start_Menu )

If @error = -1 Then call("Ret_Menu_Bar")

Dim $VRMS= -88, $VX=600, $VY=80, $VU=91, $QTMB=""

;$Start_Menu = GUICreate("*XPClean Menu*", $VX, $VY, $VR_ST, $VMS, $WS_POPUP, $WS_EX_TOPMOST + $WS_EX_TOOLWINDOW, $Dummy_win)

$Bla_1 = $Data_[1]

$Title_1 = $Data_[2]

$Bla_2 = $Data_[3]

$Start_1 = $Data_[4]

$Start_2 = $Data_[5]

$Start_3 = $Data_[6]

$Start_4 = $Data_[7]

$Start_5 = $Data_[8]

$Start_6 = $Data_[9]

$Start_7 = $Data_[10]

$Start_8 = $Data_[11]

$Start_9 = $Data_[12]

$Start_10 = $Data_[13]

$Start_11 = $Data_[14]

$Start_12 = $Data_[15]

$Bla_3 = $Data_[16]

$Data_L1 = $Data_[17]

$Bla_4 = $Data_[18]

$Data_L2 = $Data_[19]

$Bla_5 = $Data_[20]

$Data_1 = $Data_[21]

$Data_2 = $Data_[22]

$Data_3 = $Data_[23]

$Data_4 = $Data_[24]

$Data_5 = $Data_[25]

$Data_6 = $Data_[26]

$Data_7 = $Data_[27]

$Data_8 = $Data_[28]

$Data_9 = $Data_[29]

$Data_10 = $Data_[30]

$Data_11 = $Data_[31]

$Data_12 = $Data_[32]

$Data_13 = $Data_[33]

$Data_14 = $Data_[34]

$Data_15 = $Data_[35]

$Data_16 = $Data_[36]

$Data_17 = $Data_[37]

$Data_18 = $Data_[38]

$Data_19 = $Data_[39]

$Data_20 = $Data_[40]

$Data_21 = $Data_[41]

$Data_22 = $Data_[42]

$Data_23 = $Data_[43]

$Data_24 = $Data_[44]

$Data_25 = $Data_[45]

$Data_26 = $Data_[46]

$Data_27 = $Data_[47]

$Data_28 = $Data_[48]

$Data_29 = $Data_[49]

$Data_30 = $Data_[50]

$Data_31 = $Data_[51]

$Data_32 = $Data_[52]

$Data_33 = $Data_[53]

$Data_34 = $Data_[54]

$Data_35 = $Data_[55]

$Data_36 = $Data_[56]

$Data_37 = $Data_[57]

$Data_38 = $Data_[58]

$Data_39 = $Data_[59]

$Data_40 = $Data_[60]

$Data_41 = $Data_[61]

$Data_42 = $Data_[62]

$Data_43 = $Data_[63]

$Data_44 = $Data_[64]

$Data_45 = $Data_[65]

$Data_46 = $Data_[66]

$Data_47 = $Data_[67]

$Data_48 = $Data_[68]

$Data_49 = $Data_[69]

$Data_50 = $Data_[70]

$Data_51 = $Data_[71]

$Data_52 = $Data_[72]

$Data_53 = $Data_[73]

$Data_54 = $Data_[74]

$Data_55 = $Data_[75]

$Data_56 = $Data_[76]

$Data_57 = $Data_[77]

$Data_58 = $Data_[78]

$Data_59 = $Data_[79]

$Data_60 = $Data_[80]

Sleep(2000)

$Start_Menu = GUICreate("*XPClean Menu*", $VX, $VY, $VR_ST, $VMS, $WS_POPUP, $WS_EX_TOPMOST + $WS_EX_TOOLWINDOW, $Dummy_win)

then i tried 50 different ways to create....

Edited by Valuater

NEWHeader1.png

Link to comment
Share on other sites

here's a better example:

#include <GuiConstants.au3>

$GUI_WIN = GUICreate("Dynamic GUI?", 500, 400)
; 1st line in file is number of controls
Dim $num_controls = 1

Dim $h_control[$num_controls]
Dim $c_command[$num_controls]
#region begin control creation
; similated read in file line(s) into an array
; process each line
; while read function or code goes here
Dim $av_Array[8]
$av_Array[0] = 5
$av_Array[1] = "GuiCtrlCreateButton"
$av_Array[2] = "command we want to do?"
$av_Array[3] = "Test Button"
$av_Array[4] = 20
$av_Array[5] = 20
$av_Array[6] = 180
$av_Array[7] = 25

; then create the controls

$h_control[0] = _CreateGuiControl($av_Array)
$c_command[0] = $av_Array[2]
; end of while here
#endregion end control creation

GUISetState()

Do
   $msg = GUIGetMsg()
    For $x = 0 To UBound($h_control) - 1
        Select
            Case $msg = $h_control[$x]
                MsgBox(0,"test",$c_command[$x])
        EndSelect
    Next
Until $msg = $GUI_EVENT_CLOSE

Func _CreateGuiControl($av_Array)
    Dim $num_params = $av_Array[0]
    If (StringInStr($av_Array[1],"GuiCtrlCreateButton") ) Then
        Select
            Case $num_params = 7
            Case $num_params = 6
            Case $num_params = 5
                Return GUICtrlCreateButton($av_Array[3],$av_Array[4],$av_Array[5],$av_Array[6],$av_Array[7])
            Case $num_params = 4
            Case $num_params = 3
            Case Else
            ; error not enough params
        EndSelect
    EndIf
EndFunc
Edited by gafrost

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

the data file looks very much like autoit in SciTe

Flexability is somethig i really wanted and worked towards

the file open/read keeps reading until the eof

results = able to work with unknown file length (less than 80 lines)

the array allows unknown/unlimited lines of data (less than 80 again)

the idea is for someone else to be able to submit a skin for my program... heres whar t have on this...

; *XPClean Menu* Skin Builder ver 1.0

#include <GUIConstants.au3>

#include <File.au3>

#include <Array.au3>

#include <String.au3>

#cs

*** The Rules are Simple *** Remember this is a Visual GUI-Window - it's only a "Skin"

The GUICreate "Window" is a Constant *Un-Changeable* The Size is 600 in Length and 80 in Height

There are 10 actions that Must BE Accomplished;

Restore, Adware, Spyware, AutoClean, Registry, Defrag, Full Menu, Share, Exit and.. Xpclean icon button ($Start_10)

Normally these are Buttons $Start_1 through $Start_9

Button $Start_11 is a switch/togle for buttons $Start_1 through $Start_9 and... Button $Start_12 is a select/go for $Start_11

For Example

You create a "Radio Tuner Skin" with 4 total buttons

Button $Start_9 Exit button

Button $Start_10 XPClean Icon Button ; All GUI's Must Have - you set the position

Button $Start_11 looks lik a Volume knob and flashes the names in the middle on a label (label $Data_L1 must be used)

Button $Start_12 Looks Like a Tuner knob and exicutes the selection

If you do not use button $Start_11 and button $Start_12, you must use button $Start_1 through button $Start_9

There is a built-in "share this menu message" on Label $Data_L2 that is not required

";;" means please do not remove this information line

***** OK - that was Short ****** Check out the example below (just ad/remove the ";" in fornt of #cs and #ce

#ce

;#cs Radio Tuner example

$Start_Menu = GUICreate("*XPClean Menu*", 600, 80, 200, 200, $WS_POPUP, $WS_EX_TOPMOST); to test

;;------------------ copy from here down and save as "Skin Name.xpc" ---------------------; do not copy this line

;; Below is the Authors Name that Displays after skin is installed... Designed by " Your Name "

; " Your Name Here " ;; leave the first ";" it will be removed in the program

;; Below is the button list $Start _1 through $Start_12

$Start_1 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_1 = "Restore"

$Start_2 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_2 = "Adware"

$Start_3 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_3 = "Spyware"

$Start_4 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_4 = "AutoClean"

$Start_5 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_5 = "Registry"

$Start_6 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_6 = "Defrag"

$Start_7 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_7 = "Full Menu"

$Start_8 = GUICtrlCreateButton("", 150, 0, 50, 40, $BS_ICON) ;; $Start_8 = "Share"

$Start_9 = GUICtrlCreateButton("X", 580, 0, 20, 20, $BS_ICON) ;; $Start_9 = "Exit"

$Start_10 = GUICtrlCreateButton("Logo", 0, 50, 32, 32, $BS_ICON) ;; $Start_10 = "XPClean Icon" - must be used - set location

$Start_11 = GUICtrlCreateButton("", 100, 20, 40, 40, $BS_ICON) ;; $Start_11 = "Toggle Selection"

$Start_12 = GUICtrlCreateButton("", 460, 20, 40, 40, $BS_ICON) ;; $Start_12 = "Exicute Toggled Selection"

;; Below is the Label for button $Start_11 - if you set $start_11 you must use this label- set the location below

$Data_L1 = GUICtrlCreateLabel("Press Select", 250, 30, 250, 40) ;; this is $Data_L1

;; Below is the Share Label - the length is mostly set - you set the location "$_Share" is the built-in words - not required

$Data_L2 = GUICtrlCreateLabel("", 20, 325, 540, 30) ;; this is $Data_L2

;; Below you can install pics, create labels, or ???? - no more buttons please

GUICtrlSetState($Start_1, $GUI_HIDE)

GUICtrlSetState($Start_2, $GUI_HIDE)

GUICtrlSetState($Start_3, $GUI_HIDE)

GUICtrlSetState($Start_4, $GUI_HIDE)

GUICtrlSetState($Start_5, $GUI_HIDE)

GUICtrlSetState($Start_6, $GUI_HIDE)

GUICtrlSetState($Start_7, $GUI_HIDE)

GUICtrlSetState($Start_8, $GUI_HIDE)

GUICtrlSetState($Data_L2, $GUI_HIDE)

GUISetBkColor ("")

GUICtrlCreateLabel("", 150, 10, 300, 60, $SS_BLACKRECT + $SS_SUNKEN)

$Data_L1 = GUICtrlCreateLabel("Press Select", 250, 30, 250, 40); added a seond time for visual

GUICtrlSetState($Data_L1, $GUI_FOCUS)

GUICtrlSetFont($Data_L1, 14, 500)

GUICtrlSetColor($Data_L1, 0x8080ff )

GUICtrlSetImage($Start_11, "shell32.dll", 112)

GUICtrlSetImage($Start_12, "shell32.dll", 27)

GUICtrlCreateLabel("XPC - -Radio", 10, 10, 70, 30)

GUICtrlSetFont(-1, 10, 500)

GUICtrlSetColor(-1, 0x8080ff )

; bla... bla... bla... as many lines as you want

; ---------------------------------- copy to here and save as "Skin Name.xpc" ------------------------ do not include this line

;; Below are Built-in Functioons

GUISetState()

While 1

$msg = GuiGetMsg()

If $msg = $GUI_EVENT_CLOSE Or $msg= $Start_9 Then ExitLoop

If $msg = $Start_11 then

$Data=GUICtrlRead($Data_L1)

If $Data = "Press Select" Then GUICtrlSetData($Data_L1, "Restore")

If $Data = "Exit" Then GUICtrlSetData($Data_L1, "Restore")

If $Data = "Restore" Then GUICtrlSetData($Data_L1, "Adware")

If $Data = "Adware" Then GUICtrlSetData($Data_L1, "Spyware")

If $Data = "Spyware" Then GUICtrlSetData($Data_L1, "AutoClean")

If $Data = "AutoClean" Then GUICtrlSetData($Data_L1, "Registry")

If $Data = "Registry" Then GUICtrlSetData($Data_L1, "Defrag")

If $Data = "Defrag" Then GUICtrlSetData($Data_L1, "Full Menu")

If $Data = "Full Menu" Then GUICtrlSetData($Data_L1, "Share")

If $Data = "Share" Then GUICtrlSetData($Data_L1, "Exit")

EndIf

If $msg= $Start_12 then

$Data=GUICtrlRead($Data_L1)

MsgBox(0,"Selection", "Exicute " & $Data)

EndIf

WEnd

looking to the future maybe...... i dont know

more-so i am still unclear with you very definitive code... how i can achieve my goals

i will look at your info more...

if you have more ideas please let me know

**********as always ********* thanks

beacause

NEWHeader1.png

Link to comment
Share on other sites

Basically what I'm showing you is can it be done, yes.

How, you'll probably have to create a function "_AutoIt_Skin"

That reads in up to a set amount of settings

Processes those settings

Creates the controls

etc...

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

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...