Sign in to follow this  
Followers 0
Kiti

Demo Script

20 posts in this topic

I want to make my script expire in a number of days, so it cannot be run again on the same computer unless Windows is reinstalled. I've tried Valuater's XProTec but it's MUCH too complicated for my needs. I don't want to connect to the internet, don't send any email, no paypal, no registration, nothing but just to expire in x number of days. Is there any simple method to do this?

Share this post


Link to post
Share on other sites



cnt you just use a ini file that stores the number of days and save it in system 32 dir

Share this post


Link to post
Share on other sites

cnt you just use a ini file that stores the number of days and save it in system 32 dir

I'm still some kind of a newbie, so can you tell me how to do this?

Now I realize that I want an activation code, that is unique to a certain computer, so if anyone decides to buy my program and gets the code, it will be useless to give it to others because that code will only work on his computer. I found some intresting work at ChrisL. I thought of giving that Keygen to the buyer, then generate the code and delete itself. Is it the right way I should go?

Share this post


Link to post
Share on other sites

Hello,

I think that can help you :

If FileExists(@ScriptDir&"\trialversion.txt") Then
$Trial=FileRead(@ScriptDir&"\trialversion.txt")

If $Trial=@MDAY Then  ;If trial Expire=Day
Exit
EndIf

Else ;If Trial files doesnt exists Then

If @MDay=1 Then ; If Day=1 Then Expire in 3days
FileWrite(@ScriptDir&"\trialversion.txt","4") ; So expire at 4
EndIf

If @MDay=2 Then
FileWrite(@ScriptDir&"\trialversion.txt","5")
EndIf

If @MDay=3 Then
FileWrite(@ScriptDir&"\trialversion.txt","6")
EndIf

;Etc....Warning ! Month could be 31 or 30 So...

If @MDay=30 and @MON Then ; If Day=1 and Mon=January Then Expire in 3days [January = 31 days]
FileWrite(@ScriptDir&"\trialversion.txt","3") ; So expire at 3
EndIf

;Etc....
EndIf

;But place Trialtext file in other directory like windows/system32/ for user dont see it...

;You can do "FileSetAttrib(@ScriptDir&"\trialversion.txt","HS")" ==> HS for Hidden and system file :)

No-life of autoit...what could be better ?LAST SCRIPTS WITH AUTO-IT : CLICK HERE

Share this post


Link to post
Share on other sites

If you want an activation code you have to do encrypt text for exemple your computer have ID"020202" so you encrypt the password with ID"020202" and you have the trial software code, you understand ?

;====================================================
;============= Encryption Tool With GUI ============= 
;====================================================
; AutoIt version: 3.0.103
; Language:       English
; Author:         "Wolvereness"
;
; ----------------------------------------------------------------------------
; Script Start
; ----------------------------------------------------------------------------
#include <guiconstants.au3>
#include <string.au3>
;#include files for encryption and GUI constants
;~~
$WinMain = GuiCreate('Encryption tool', 400, 400)
; Creates window
;~~
$EditText = GuiCtrlCreateEdit('',5,5,380,350)
; Creates main edit
;~~
$InputPass = GuiCtrlCreateInput('',5,360,100,20, 0x21)
; Creates the password box with blured/centered input
;~~
$InputLevel = GuiCtrlCreateInput(1, 110, 360, 50, 20, 0x2001)
$UpDownLevel = GUICtrlSetLimit(GuiCtrlCreateUpDown($inputlevel),10,1)
; These two make the level input with the Up|Down ability
;~~
$EncryptButton = GuiCtrlCreateButton('Encrypt', 170, 360, 105, 35)
$DecryptButton = GuiCtrlCreateButton('Decrypt', 285, 360, 105, 35)
; Encryption/Decryption buttons
;~~
GUICtrlCreateLabel('Password', 5, 385)
GuiCtrlCreateLabel('Level',110,385)
; Simple text labels so you know what is what
;~~
GuiSetState()
; Shows window
;~~

Do
   $Msg = GuiGetMsg()
   If $msg = $EncryptButton Then
     ; When you press Encrypt
     ;~~
      GuiSetState(@SW_DISABLE,$WinMain)
     ; Stops you from changing anything
     ;~~
      $string = GuiCtrlRead($EditText)
     ; Saves the editbox for later
     ;~~
      GUICtrlSetData($EditText,'Please wait while the text is Encrypted/Decrypted.')
     ; Friendly message
     ;~~
      GuiCtrlSetData($EditText,_StringEncrypt(1,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
     ; Calls the encryption. Sets the data of editbox with the encrypted string
     ;~~
      GuiSetState(@SW_ENABLE,$WinMain)
     ; This turns the window back on
     ;~~
   EndIf
   If $msg = $DecryptButton Then
     ; When you press Decrypt
     ;~~
      GuiSetState(@SW_DISABLE,$WinMain)
     ; Stops you from changing anything
     ;~~
      $string = GuiCtrlRead($EditText)
     ; Saves the editbox for later
     ;~~
      GUICtrlSetData($EditText,'Please wait while the text is Encrypted/Decrypted.')
     ; Friendly message
     ;~~
      GuiCtrlSetData($EditText,_StringEncrypt(0,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
     ; Calls the encryption. Sets the data of editbox with the encrypted string
     ;~~
      GuiSetState(@SW_ENABLE,$WinMain)
     ; This turns the window back on
     ;~~
   EndIf
Until $msg = $GUI_EVENT_CLOSE; Continue loop untill window is closed

Modify this script for tiral software


No-life of autoit...what could be better ?LAST SCRIPTS WITH AUTO-IT : CLICK HERE

Share this post


Link to post
Share on other sites

Strip the '.'s and encrypt his IP.

IPs change. Look for UUIDs (Google it "Universally Unique Identifer"). Something that doesn't change even if there is a reformat of the PC.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

Kiti

Dim $UUID, $stdOut

$RunPID = Run(@ComSpec & " /c wmic csproduct get UUID", @SystemDir, @SW_HIDE, 2 + 4)

While 1
    $stdOut = StdoutRead($RunPID)
    If @error Then ExitLoop
    If StringRegExp($stdOut, "\d", 0) = 1 Then
        $UUID = StringRegExp($stdOut, "(\d.*)  \r", 1)
        $UUID = $UUID[0]
        ExitLoop
    EndIf
WEnd

MsgBox(64, "Computer Universally Unique Identifer", $UUID)

Share this post


Link to post
Share on other sites

Kiti

Dim $UUID, $stdOut

$RunPID = Run(@ComSpec & " /c wmic csproduct get UUID", @SystemDir, @SW_HIDE, 2 + 4)

While 1
    $stdOut = StdoutRead($RunPID)
    If @error Then ExitLoop
    If StringRegExp($stdOut, "\d", 0) = 1 Then
        $UUID = StringRegExp($stdOut, "(\d.*)  \r", 1)
        $UUID = $UUID[0]
        ExitLoop
    EndIf
WEnd

MsgBox(64, "Computer Universally Unique Identifer", $UUID)oÝ÷ Ûú®¢×£kÊØZ·­­XÂzÙz0ü¨¹ø§u¬ÊÇ«¬)hý½æÞz{)à~êº+^²¶)~Úªê-²)©+-Ê®¢ÜÊÝ¢)àÛaz·¬º[l«Þmmç§ëlwÁæ«zíå"g­ZºÚ"µÍÙÐÞ
ÕÓRWÕURQ

JB[ÈÕÓRWÕURQ
    ÌÍÜ×ØÛÛ]HÛÛ][YJBSØØ[ ÌÍÜ×ÛÝ]]H ][ÝÉ][ÝÂSØØ[  ÌÍÛØÝÛZHHØÙ]
    ][ÝÝÚ[]ÎÌLÉÌLÉ][ÝÈ [ÈÂBBBBIÌÍÜ×ØÛÛ]   [ÈÂBBBBI][ÝÉÌLÜÛÝ   ÌLÐÒSU][ÝÊBRYÓØ  ÌÍÛØÝÛZJHH[]Ù]ÜK    ][ÝÉ][ÝÊBBSØØ[    ÌÍØÛÛÚ][ÈH   ÌÍÛØÝÛZK^]YJ   ][ÝÔÑSPÕ
ÓHÚ[ÌÐÛÛ]ÞÝ[TÙXÝ  ][ÝËÂBBBBBI][ÝÕÔS ][ÝËÂBBBBBP]ÔL
JBRYÓØ    ÌÍØÛÛÚ][ÊHH[]Ù]Ü   ][ÝÉ][ÝÊBBSØØ[    ÌÍÛØÚ][BQÜ    ÌÍÛØÚ][H[  ÌÍØÛÛÚ][ÂBRY
    ÌÍÛØÚ][KURQ    ÉÝÈ  ][ÝÉ][ÝÊH[] ÌÍÛØÚ][KURQS^BT]Ù]ÜË    ][ÝÉ][ÝÊB[[

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

Hello,

For you ip trial software encrypt :

Opt("GuiOnEventMode",1) ;EventMode for guictrlbutton
#Include <INet.au3> ;When the script start always take ip because it can change
#include <string.au3>

$IP=_GetIP() ;Get Current Adress Ip

;-- Encrypt password by Ip --
$Trial=_StringEncrypt(1,$IP,"Kiti",1) ;Encrypt with IP and Kiti password at Level 1

;Window for Trial Key
$win=GUICreate("Enter trial Key",200,100)
GUICtrlCreateLabel("Write trial Key for Kiti Software",5,5)
$TrialKey=GUICtrlCreateEdit("",5,25,190,17) ;Enter there previous trial key
$reg=GUICtrlCreateButton("Register",20,50) ;Register key
GUICtrlSetOnEvent(-1,"_Reg")
$cancel=GUICtrlCreateButton("Cancel",70,50) ;Cancel
GUICtrlSetOnEvent(-1,"_Cancel")
GUISetState(@SW_SHOW,$win)


Func _Reg()
$ReadTrial=GUICtrlRead($TrialKey)
If $ReadTrial=$Trial Then ; TrialIp = Previous Trial
MsgBox(48,"Kiti Registered","Key Validated !")
GUISetState(@SW_HIDE,$win)
Else
MsgBox(16,"Kiti Wrong Key","Wrong Key !")
EndIf
EndFunc

Func _Cancel()
GUISetState(@SW_HIDE,$win)
EndFunc

While 1

WEnd
Edited by d3mon

No-life of autoit...what could be better ?LAST SCRIPTS WITH AUTO-IT : CLICK HERE

Share this post


Link to post
Share on other sites

an ip address can change, wouldn't it be easier to store a value in the registry?

Share this post


Link to post
Share on other sites

SmOke_N

Now try that without WMI (Let me know if you find a way seriously lol ... I've been trying for quite sometime for a "simplistic" way of doing it, the results haven't been good).

But since we are on the WMI method:

Ok, thanks for this example, i didn`t know this. But why need this two params: "WQL" and "BitOr(0x0000010, 0x0000020)"? Seem works fine without said two params:

Dim $strComputer = ".", $string

$objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$colItems = $objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct")

For $objItem In $colItems
    $string = "UUID - " & $objItem.UUID & @LF
Next

MsgBox(0, "", $string)

Share this post


Link to post
Share on other sites

an ip address can change, wouldn't it be easier to store a value in the registry?

Hello,

muzle6074 do you know read topic, because In my script I take ip always when the script is running so if ip change or not I have the current ip...


No-life of autoit...what could be better ?LAST SCRIPTS WITH AUTO-IT : CLICK HERE

Share this post


Link to post
Share on other sites

SmOke_N

Ok, thanks for this example, i didn`t know this. But why need this two params: "WQL" and "BitOr(0x0000010, 0x0000020)"? Seem works fine without said two params:

Dim $strComputer = ".", $string

$objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$colItems = $objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct")

For $objItem In $colItems
    $string = "UUID - " & $objItem.UUID & @LF
Next

MsgBox(0, "", $string)
muttley

I took it out of one of my old functions that got more data than just the UUID.

Hello,

muzle6074 do you know read topic, because In my script I take ip always when the script is running so if ip change or not I have the current ip...

I think we all read the topic very well.

IP is a faulty method IMO.

If I get my license from you with an IP of 90.90.1.2.3 and I run my PC that way... then I shut down, and my ISP changes my IP on my next boot up to 90.73.3.2.1 ... how does your script recognize that it is the same pc/person that was originally licensed?


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

IP is a faulty method IMO.

If I get my license from you with an IP of 90.90.1.2.3 and I run my PC that way... then I shut down, and my ISP changes my IP on my next boot up to 90.73.3.2.1 ... how does your script recognize that it is the same pc/person that was originally licensed?


No-life of autoit...what could be better ?LAST SCRIPTS WITH AUTO-IT : CLICK HERE

Share this post


Link to post
Share on other sites

IP is a faulty method IMO.

If I get my license from you with an IP of 90.90.1.2.3 and I run my PC that way... then I shut down, and my ISP changes my IP on my next boot up to 90.73.3.2.1 ... how does your script recognize that it is the same pc/person that was originally licensed?

Well, when the license has been registered, you can write on computer file or write in registry...

d3mon,

im a bit lost... if u are validating the expiry with their ip, how can it be validated if the ip is always changing (assuming its not static).

Share this post


Link to post
Share on other sites

d3mon,

im a bit lost... if u are validating the expiry with their ip, how can it be validated if the ip is always changing (assuming its not static).

So, the software will all 1min check ip I you want that's not a problem...


No-life of autoit...what could be better ?LAST SCRIPTS WITH AUTO-IT : CLICK HERE

Share this post


Link to post
Share on other sites

I've finally realized that ChrisL's script works great for this!

You put your program into this code:

#Region converted Directives from D:\My Documents\AutoITscripts\DriveTester\TrialSoftware.au3.ini
#AutoIt3Wrapper_aut2exe=C:\Program Files\AutoIt3\Aut2Exe\Aut2Exe.exe
#AutoIt3Wrapper_outfile=D:\My Documents\AutoITscripts\DriveTester\TrialSoftware.exe
#AutoIt3Wrapper_Res_Comment=http://www.hiddensoft.com/autoit3/compiled.html
#AutoIt3Wrapper_Res_Description=AutoIt v3 Compiled Script
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
#AutoIt3Wrapper_Run_AU3Check=4
#EndRegion converted Directives from D:\My Documents\AutoITscripts\DriveTester\TrialSoftware.au3.ini
;
; ----------------------------------------------------------------------------
;
; AutoIt Version: 3.2.4.9 
; Author:         Chris Lambert
;
; Script Function: trial/licensed software system
;   Template AutoIt script.
;
; ----------------------------------------------------------------------------

; Script Start - Add your code below here

#include <date.au3>
#include <string.au3>

Global $Debugit = 0
Local $securityCodeEncryptionKey = "MyPa55w0rd" ;this must match the key generator
Global $mac
Global $Generate
Global $restore
Global $RequiresRegCode = 1 ;if set to 1 then software will prompt for a registration code if set to 0 then no registration code is required but can still be ran as a time limited trial

If $RequiresRegCode then 
    $mac = StringUpper (StringReplace (_GetMAC(),":","") & StringRight ( Hex(@mon),1)); this makes the mac address only valid during this month or registration, so if they discover the fake dll and delete it, the code only registers during this month of cousre they could figure on putting it back to the original registration month
    $Generate = StringRight ($mac,5)
    $restore = StringUpper (_StringEncrypt (1, $Generate, $securityCodeEncryptionKey , 1 ))
EndIf

Global $myFakeDll = @Windowsdir & "\TMy.dll" ; I suggest using a prefix of T for Trial software in the dllname and be sure it's not a dll name that is going to already exist you could hide it in the windows directory or anywhere else really
Global $trialPeriod = 14 ;days (use -1 if not trial software just regkey licenced)
Global $ShowEvaluationWarning = 1 ;1 displays an evaluation warning during checking the authorisation, 0 will not show a warning
Global $applicationName = "My App"
Global $dllEncKey = "aBc" ;you can change this to whatever you like it is the ini encryption if made too long and it takes longer to read and write
Global $dlliniSection = Encrypt("iniSectionName");you can change this too if you really want to

If NOT FileExists ($myFakeDll) then 
    EnterNewCode()
    FileSetAttrib($myFakeDll,"+HS")
EndIf

$validation = CheckValidation()

;============================================Main app Starts here============================================

If $validation <> -1 then 
    Msgbox(0,"","This is the main application start point" & @crlf & "If you can see this then you have a successfully registered application" & @crlf & "You have " & $validation & " Days left to evaluate this software")
Else
    Msgbox(0,"","This is the main application start point" & @crlf & "If you can see this then you have a successfully registered application") 
EndIf

Msgbox(0,"","Hurray!!!")


;============================================Main app Finishes here============================================


Func EnterNewCode()
    ClipPut ($mac)
    If $RequiresRegCode then 
        $entered = InPutBox ("Register", "This software is for trial please telephone" & @crlf & "00000 0000000 to obtain a registration code" & @crlf & "Please quote the following Code " & @crlf & @crlf & $mac & @crlf & @crlf & "Enter the unlock code below","","",-1,200 )
        If @error = 1 then Exit ;CANCEL WAS PRESSED
        Else
            $entered = $restore
        EndIf
        
    If $entered = $restore then 
        If $RequiresRegCode then MsgBox (262144,$applicationName,"Successfully Registered")
        
        IniWrite ($myFakeDll,$dlliniSection,Encrypt ("DecodeKey"),Encrypt ($restore))
        IniWrite ($myFakeDll,$dlliniSection,Encrypt ("GeneratedMac"),Encrypt ($Mac))
        
        If $trialPeriod <> -1 then
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("RegDate"),Encrypt (_NowCalcDate()))
            $sysprep = _DateAdd ( "D", $trialPeriod, _NowCalcDate() )
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("FinalDate"),Encrypt ($sysprep))
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("LastRunDate"),Encrypt (_NowCalcDate()))
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("Count"),Encrypt (0))
        endif

    Else 
        MsgBox (262144,"Error","Registration code is incorrect")
        Exit
        
    EndIf
EndFunc ;==> EnterNewRegCode()

    
    

Func CheckValidation()  
    
        If $RequiresRegCode then 
            $RecordedMacCheck = StringLeft (StringRight (Decrypt (IniRead ($myFakeDll,$dlliniSection,Encrypt ("GeneratedMac"),"Eric")),5),4)
            $MacCheck = StringLeft (StringRight ($mac,5),4) 
            If $RecordedMacCheck <> $MacCheck then 
                Debug ("Recorded Mac = " & $RecordedMacCheck)
                Debug ("Macaddress = " & $MacCheck )
                Debug ("The Mac code didn't match")
                If FileExists ($myFakeDll) then FileDelete($myFakeDll)
                EnterNewCode()
                Return -1
            EndIf
        EndIf
        
        If $trialPeriod = -1 then return -1
    
        If $ShowEvaluationWarning then Splashtexton ($applicationName,@crlf & "This is evaluation software",250,60)
        
        $finalDateCheck =  Decrypt ( IniRead ($myFakeDll,$dlliniSection, Encrypt("FinalDate"),"")) 
        $RegDateCheck = Decrypt ( IniRead ($myFakeDll,$dlliniSection, Encrypt("RegDate"),"")) 
        $LastRunDateCheck =  Decrypt ( IniRead ($myFakeDll,$dlliniSection, Encrypt("LastRunDate"),"")) 
        $CountCheck = Number( Decrypt ( IniRead ($myFakeDll,$dlliniSection, Encrypt("Count"),"")) )
        
        If  _DateDiff ("D", _NowCalcDate(),$finalDateCheck) < 0 Then
            ;the date is 14 days past the registration date
            Debug ("passed the " & $trialPeriod & " days Expired " &  _DateDiff ("D",$finalDateCheck, _NowCalcDate() ) )
            SplashOff()
            Msgbox (262144,$applicationName,"Evaluation Expired")
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("Count"),Encrypt ($trialPeriod + 1))
            Exit
        EndIf
        
        
        If _DateDiff ("D",$LastRunDateCheck,_NowCalcDate()) < 0 Then
            ;they have changed the clock bacwards so expire
            Debug ("Clock date is set before last run date")
            SplashOff()
            Msgbox (262144,$applicationName,"Date tampering detected Evaluation Expired")
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("Count"),Encrypt ($trialPeriod + 1))
            Exit
        EndIf
        
        If $CountCheck >= $trialPeriod then ;second method for checking days used
            ;trialPeriod days are up so expire
            Debug ("Count is greater than " & $trialPeriod)
            SplashOff()
            Msgbox (262144,$applicationName,"Evaluation Expired")
            Exit
        EndIf
        
        If _NowCalcDate() <> $LastRunDateCheck Then ;if the date is different to the last ran date then increase the days used by 1
            $CountCheck += 1
            Debug ("Increase the used count; Count is now " & $CountCheck)
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("Count"),Encrypt ($CountCheck))
            IniWrite ($myFakeDll,$dlliniSection,Encrypt ("LastRunDate"),Encrypt (_NowCalcDate()));log the new last run date
        EndIf
        
        If $ShowEvaluationWarning then 
            Sleep (2000)
            SplashOff()
        EndIf
        
        Return ($trialPeriod - $CountCheck)
EndFunc ;==> CheckValidation()

Func Encrypt ($string) 
    
     Return _StringEncrypt (1, $String, $dllEncKey , 1 )
    
EndFunc ;==> Encrypt()


Func Decrypt ($String)
    
    Return _StringEncrypt (0, $String, $dllEncKey , 1 )
    
EndFunc ;==> Decrypt()

Func Debug ($var)
    
    If $Debugit then ConsoleWrite ($var & @crlf)

EndFunc;==> Debug to Scite()

Func _GetMAC($getmacindex = 1)
    $ipHandle = Run(@ComSpec & ' /c ipconfig /all', '', @SW_HIDE, 2)
    $read = ""
    Do
        $read &= StdoutRead($ipHandle)
    Until @error
    
    $read = StringStripWS($read,7)
    
    $macdashed = StringRegExp( $read , '([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})', 3)
    If Not IsArray($macdashed) Then Return 0
    If $getmacindex <  1 Then Return 0
    If $getmacindex > UBound($macdashed) Or $getmacindex = -1 Then $getmacindex = UBound($macdashed)
    $macnosemicolon = StringReplace($macdashed[$getmacindex - 1], '-', ':', 0)
    Return $macnosemicolon 
EndFunc;==>_GetMACoÝ÷ Ù8Z·Mú§'z÷«r§ëÛazë­é["¶Ú2¢æ§w*.ºÇ­+${(Ú ÷¡fÚrF¤{*',(®H§ú++¢jnµêÚºÚ"µÍÈKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKBÂÈ]]Ò]Ú[ÛËHÈ]]ÜÚÈ[XÂÈØÜ[Ý[ÛÙ^QÙ[ÜX[ÛXÙ[ÙYÛÙØBÂU[]H]]Ò]ØÜÂÈKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKBÈØÜÝHY[ÝÛÙH[ÝÈBÚ[ÛYIÜÝ[Ë]LÉÝÂØØ[ ÌÍÜÙXÝ]PÛÙQ[Ü[ÛÙ^HH   ][ÝÓ^TMM]Ì   ][ÝÈÝÈ]ÝX]ÚHXØ][ÛÈÙ^BÌÍÜÝH[]Þ
    ][ÝÒTÔÈ]HÚXÚÈYÚÝ][Û][ÝË ][ÝÒ[]ÛÙI][ÝÊBYÜHH[^]BÌÍÑÙ[]HHÝ[Õ
Ý[ÔYÚ
    ÌÍÜÝ
JJBÌÍÜÝÜHHÝ[ÕÔÝ[Ñ[Ü
K   ÌÍÑÙ[]K ÌÍÜÙXÝ]PÛÙQ[Ü[ÛÙ^HH
JBÛ]
    ÌÍÜÝÜJBÙØÞ
    ][ÝÒTÔÈ]HÚXÚÉ][ÝË  ][ÝÕHYÚÝ][ÛÛÙHÎ ][ÝÈ  [È ÌÍÜÝÜH [ÈÜ   [ÈÜ   [È ][ÝÕHÛÙHÈY[XÙYÛHÛØ ][ÝÊ

Share this post


Link to post
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
Sign in to follow this  
Followers 0