Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Programming and Hacking > Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 29th November 2014, 14:28   #1081  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by lethedoom View Post
I extracted the new test folder and scanned it with Avast which reported no threat. LameXP Test-Build r1603 opened without the debug console and successfully converted flac files to mp3. Is this a beta or an unlabelled 4.11 final ?
This is far from anything "final" at this point, as the refactoring process is still going on

Quote:
Originally Posted by SeeMoreDigital View Post
I'm happy to confirm it's working a treat now with Win10 64-bit Build 9879
Good to know!
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline   Reply With Quote
Old 29th November 2014, 17:36   #1082  |  Link
lethedoom
Registered User
 
lethedoom's Avatar
 
Join Date: Dec 2010
Location: california
Posts: 23
Avast problem

Today Avast deemed the LameXP Test-Build r1603 application a virus and killed it. I tried to download the zip file again and it would not permit the download. I cannot satisfy their demand for information on their false positive form . It is not clear if 'Lord Mulder' as publisher or 'LameXP' as program is deemed not clear enough. I will try to let them know the problem.

I submitted the ticket and hope they respond favorably.If you contact them directly perhaps they can resolve the problem for future iterations.

Posted on: 29 November 2014 18:27
I downloaded from http://sourceforge.net/projects/lamexp/files/Snapshots (BETA)/ the LameXP-TEST.2014-11-29.zip
yesterday. I extracted the files and scanned both the zip and extracted files folders and avast found no threat. I opened the beta application and used it. This morning when I opened the same application Avast identified it as a virus and put it in the chest. I went to the chest and right clicked on the file and chose restore and add to exclusions. I attempted to fill out a false positive form but either 'Lord Mulder' or 'Source Forge' as publisher or 'LameXP' as program was deemed insufficiently informative and form refused to submit. This is a beta program distributed in a zip file which Avast on second thought has labelled Win32:Evo-gen {Susp}. I know what I am doing, I trust Lord Mulder even though he is too stubborn to change his zip program. Please check this folder from http://hivelocity.dl.sourceforge.net...mexp/Snapshots (BETA)/2014-11-29/LameXP-TEST.2014-11-29.zip :

LameXP-TEST.2014-11-29.zip < 16 hours ago 21.4 MB 66 weekly downloads i
SHA1:

09c3216a2decb4f0c980026015b5e0f97c4cf842

MD5:

aac1af01da9ba2ddbc9a76cf699ae70e

Downloads (All-Time):

6
If you agree it is not in fact malware please find a way to recognize the false positive and allow me to receive the folder and use the beta application.v
Attached Images
  

Last edited by lethedoom; 29th November 2014 at 18:40. Reason: more info
lethedoom is offline   Reply With Quote
Old 29th November 2014, 22:30   #1083  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 589
lethedoom, when LameXP starts it creates a temporary folder on your hard drive and extracts several applications into that folder.

One of those applications is called lxp_mpg123.exe and that's probably the file that's one of the reasons antivirus software may report it as virus.
That's now the case with Avira and Ikarus as you can see here: https://www.virustotal.com/en/file/e...is/1417295691/ (virustotal report for lxp_mpg123.exe).

LameXP.exe itself is compressed with UPX, the same executable compressor that's used in lxp_mpg123.exe

UPX is a legitimate compressor but the compression techniques it uses are often used in warez and trojans and dubious applications so it's normal that some antivirus software will do a false positive from time to time.

Mulder, I personally really don't see the point of compressing the executables with UPX.

upx says: 18203136 <- 16486912 90.57% win32/pe lame.exe

So you've saved a bit fat 2 MB by compressing your executable but you added the risk of antivirus software detecting your application as malware.

In the world of 1-4 TB hard drives people won't care that your application is 30-50 MB instead of 20 MB.
There's also no point in compressing those external executables when you can already compress them inside your main executable. As a suggestion - and I'm not sure, didn't bother to check source code, probably this is how you already do it now - you could 7z the files and embed the 7z inside the executable and you have a free 7z decoder library to unpack the contents nice and fast.

In addition, there's really no point in extracting all those files every time the application launches. Why not unpack the needed application when an encoding job is actually started?

Also... nowadays it really doesn't matter that much but in the past people with SSD drives would probably have cared about programs writing stuff to their boot drive at every launch.

And btw, I went into Advanced options and unchecked "Stored temporary files" and selected another folder and those executables are still unpacked there in the system default temp directory.

Last edited by mariush; 29th November 2014 at 22:37.
mariush is offline   Reply With Quote
Old 30th November 2014, 16:16   #1084  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by mariush View Post
UPX is a legitimate compressor but the compression techniques it uses are often used in warez and trojans and dubious applications so it's normal that some antivirus software will do a false positive from time to time.
I agree with this. But the conclusion to draw can not be that legitimate software should stop using a legitimate compressor, just because some malware uses the legitimate compressor!

The job of an Antivirus is to block malware while not affecting legitimate software in any kind of way. If legitimate software is affected, this is a bug in the Antivurs software and needs fixing in the Antivirus software.

Suspecting software of being malware, just because it uses an EXE packer, is just plain stupid! It's an invalid generalization, just like:
"Since 99% of all terrorists had bread for breakfast the day they went on rampage, all people who eat bread for breakfast probably are terrorists".

Antivirus software must be aware of "EXE packers", yes. But by analyzing the decompressed binary code in memory, not by analyzing the compressed code in the EXE file or, even worse, by stupid/invalid generalizations.

If we are at the point where Antivirus companies decided which legitimate techniques may be used by software developers and which legitimate techniques have to be avoided, because otherwise you will be blocked, there is only one name for this: Blackmail. And this cannot (and will not) be tolerated. So, this alone, is more than enough reason to continue using UPX, until even that last intellectually challenged person at those Antivirus companies has finally understood it.

Fortunately, Windows 8 ships with a (decent) free Antivirus software, so less and less people will pay for (crappy) Antivirus products. So, hopefully, most of the Antivirus companies will either change their field of business or go bankrupt...

[/rant]


Quote:
Originally Posted by mariush View Post
In addition, there's really no point in extracting all those files every time the application launches. Why not unpack the needed application when an encoding job is actually started?
It was major design decision to completely setup the application "environment" during the startup sequence. It means that, once the application has been started, we can be sure that all the required tools are in place and can be used when needed. If anything goes wrong during initialization, the application won't even launch. So you get either a 100% working state or nothing at all. You never get the application in some semi-broken state.

Extracting the tools "on demand" would be possible, but then errors would be much more difficult to handle. If anything goes wrong during extraction, it would probably happen in some background worker thread where the tool happens to be accessed for the first time. Propagating the error to our GUI/Main thread and finally having to stop all the other worker threads, before we can shut down "gracefully" would be much more complex and error prone than the current method...


Quote:
Originally Posted by mariush View Post
And btw, I went into Advanced options and unchecked "Stored temporary files" and selected another folder and those executables are still unpacked there in the system default temp directory.
This option only controls where intermediate Wave files will be located. Extracting the tools happens in a much earlier stage of the initialization process, long before any user options are loaded.
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 30th November 2014 at 17:35.
LoRd_MuldeR is offline   Reply With Quote
Old 30th November 2014, 17:36   #1085  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 589
So what are you really trying to do, are you on a crusade against antivirus software, or are you simply trying to write good software?

At some point, you drop the idealism and put your "customers" first, the people using the software. Your small application with maybe a few thousand active users is a drop in the ocean, you're not a priority for antivirus software makers. But you may be alienating people with your choices.

You have a large variety of users using your software, and not all of them are smart. Some may be so stupid they won't even understand what the error messages say, they'll just see the antivirus say it's a virus and they'll remove the application and stop using it for ever. Once trust is broken, they may never use it again.

In this particular case, using that compressor only has downsides. It's a poor use of technology. (but then again, it's not the only thing you're using just because you can, like those sounds in the license agreement and about screens)

You're compressing your application to 90%, so you're not saving significant disk space... you basically saved about 2 MB.
You're increasing the load time of your application because any antivirus software will have to load those 20 MB in memory, decompress it, scan for viruses and then allow the process to start.

I would also say you're making your own software harder to update but I guess this (how you update your software) is entirely your choice. For example, since you're embedding all those files inside the executable, I would take advantage of this and change the update mechanism to either download the full setup (20 MB or something) or choose to download a "binary patch" that you can simply create using a software like xdelta ( http://xdelta.org/ open source, you can easily incorporate the patch functionality in the app). So instead of downloading 20 megs, the update can download 1-2 MB of diff, create a new .exe from the old one and the information in the patch file and then replace the old executable. Lots of people still download with 50-100 KB/s (as you can see for yourself if you check the download logs) so spending just 10-15 seconds to download a patch instead of 5 minutes would only benefit and would be less annoying to users.

Using upx simply screws this up, because even a single byte change would change the whole executable after compression and prevent you from making a proper binary diff between two executables.

Quote:
It was major design decision to completely setup the application "environment" during the startup sequence. It means that, once the application has been started, we can be sure that all the required tools are in place and can be used when needed. If anything goes wrong during initialization, the application won't even launch. So you get either a 100% working state or nothing at all. You never get the application in some semi-broken state.
I'd rather have the application self-contained in a folder, where I put it. If I install it in D:\Programs\Lame , I don't expect it to write tens of megs to c:\ [...] \ TEMP folder. I'd rather have a Lame\Tools or Lame\Temp folder created automatically and so on. Or let user choose.
Maybe I run my Windows from a 64 GB SSD and I only have 300-500 MB free on the SSD. I wouldn't like to kill write cycles in those 300-500 MB of free space with 20-30 MB of tools. I know, it's unlikely, but you never know.

Also consider that you may want to make a "portable" version of the application, in which case having the files extracted in a subfolder would make it easy for you to just set some flags inside your application to just check for existence of those files at start instead of trying to unpack them from the executable each time.
mariush is offline   Reply With Quote
Old 30th November 2014, 17:45   #1086  |  Link
lethedoom
Registered User
 
lethedoom's Avatar
 
Join Date: Dec 2010
Location: california
Posts: 23
Well, even if your cause is just since I use Windows 7 and thus require some anti-virus program, all of which read the test files as suspected virus, I will not be able to acquire and try the betas under present circumstances. Fortunately the LameXP v4.10 Setup (21.0 MB) download and 4.10 final zip download are not blocked today by Avast and hopefully neither will final 4.11 be blocked. Thanks again for your generous provision of this freeware tool. In my view the free anti-virus program providers are internet public health workers and not bad guys. My problem with Avast is it will not let me override their 'suspect' label and are slow to test and certify as safe files that are submitted for reconsideration.
lethedoom is offline   Reply With Quote
Old 30th November 2014, 17:59   #1087  |  Link
SeeMoreDigital
Life's clearer in 4K UHD
 
SeeMoreDigital's Avatar
 
Join Date: Jun 2003
Location: Notts, UK
Posts: 12,219
Quote:
Originally Posted by lethedoom View Post
Well, even if your cause is just since I use Windows 7 and thus require some anti-virus program...
Hmmm...

When I had Windows 7 installed, I ran Microsoft's own Security Essentials anti-virus software. Same too with Windows 8, Windows 8.1 and now with Windows 10. I've never seen a virus warning when installing LameXP.
__________________
| I've been testing hardware media playback devices and software A/V encoders and decoders since 2001 | My Network Layout & A/V Gear |
SeeMoreDigital is online now   Reply With Quote
Old 30th November 2014, 18:04   #1088  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by mariush View Post
So what are you really trying to do, are you on a crusade against antivirus software, or are you simply trying to write good software?
What a specific proprietary so-called "Antivirus" software does (or does not do) is completely irrelevant to my decisions. As long as my software doesn't do anything that, without any doubt, classifies as "malware behavior" - and that certainly is not the case here - any so-called "Antivirus" software is strictly forbidden to interfere with my software in any possible kind of way. If it does so anyway, that's a bug, in the particular so-called "Antivirus" software. Bugs can happen. Bugs do happen. But I can only fix bugs in my own software. It's definitely not my job to fix bugs in proprietary so-called "Antivirus" software, created by some commercial company that I have no relation to. Also, I certainly will not implement any workarounds for buggy so-called "Antivirus" software, since that is completely pointless! There are hundreds of so-called "Antivirus" products out there. And since those products are proprietary software, we can only speculate what has gone wrong "behind the scenes" when our legitimate software gets blocked for no good reason. Even worse, behavior of the proprietary so-called "Antivirus" software can change at any time, e.g. with the next signature update. So should I implement highly speculative workarounds for hundreds of different so-called "Antivirus" programs? Workarounds that, if at all, will help only for a short time? Workarounds that would forbid me to make use 100% legitimate techniques? Certainly no, not in this life!

So what can be done? Educate people! If somebody is a paying customer of a so-called "Antivirus" software and that software doesn't work correctly, he or she must contact the support team and file a bug report. That's the one and only way to get the bugs fixed. Also, if the manufacturer doesn't fix bugs (in time), it's up to the paying customer to cancel his contract and get his or her monkey back. You certainly don't have to stick with a product that is a buggy mess...


Quote:
Originally Posted by SeeMoreDigital View Post
Hmmm...

When I had Windows 7 installed, I ran Microsoft's own Security Essentials anti-virus software. Same too with Windows 8, Windows 8.1 and now with Windows 10. I've never seen a virus warning when installing LameXP.
Security Essentials seems to be one of the Antivirus programs that tend to be less overcautious

And it's also clear why: Microsoft decided to give away Security Essentials for free, so it doesn't need to continuously scare the user with (alleged) "virus alters", in order to legitimize the subscription fees...

(It's safe to assume that in other Antivirus companies it's the marketing department who tells their programmers how often, e.g. at least once per week, each customer must see a virus alert)
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 30th November 2014 at 19:21.
LoRd_MuldeR is offline   Reply With Quote
Old 30th November 2014, 19:12   #1089  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by mariush View Post
I'd rather have the application self-contained in a folder, where I put it. If I install it in D:\Programs\Lame , I don't expect it to write tens of megs to c:\ [...] \ TEMP folder. I'd rather have a Lame\Tools or Lame\Temp folder created automatically and so on. Or let user choose.
Maybe I run my Windows from a 64 GB SSD and I only have 300-500 MB free on the SSD. I wouldn't like to kill write cycles in those 300-500 MB of free space with 20-30 MB of tools. I know, it's unlikely, but you never know.

Also consider that you may want to make a "portable" version of the application, in which case having the files extracted in a subfolder would make it easy for you to just set some flags inside your application to just check for existence of those files at start instead of trying to unpack them from the executable each time.
It is already possible, for quite some time now, to use your own tool binaries.

See here:
http://muldersoft.com/docs/lamexp_faq.html#3d6684e9
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline   Reply With Quote
Old 30th November 2014, 22:07   #1090  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
LameXP Test-Build r1608

New build. This should fix a few bugs introduced in the previous build(s). So if you encountered strange crashes, this will fix it, hopefully.
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 25th December 2014 at 14:31.
LoRd_MuldeR is offline   Reply With Quote
Old 1st December 2014, 07:29   #1091  |  Link
lethedoom
Registered User
 
lethedoom's Avatar
 
Join Date: Dec 2010
Location: california
Posts: 23
re Avast blockade

Avast is blocking LameXP Test-Build r1608 too. I thought about accepting the suggestion to change to Security Essentials, but the reviews deem it so weak I will not. For what it is worth I followed my support request to Avast asking them to agree their label is a false positive with a forum posting. I hope it will get some response.
Attached Images
 

Last edited by lethedoom; 1st December 2014 at 07:32. Reason: attach file
lethedoom is offline   Reply With Quote
Old 1st December 2014, 16:23   #1092  |  Link
lethedoom
Registered User
 
lethedoom's Avatar
 
Join Date: Dec 2010
Location: california
Posts: 23
Avast now clear

I received an email from Avast acknowledging that their decision had been a false positive. I was able to download the newest Test version, so they have updated their virus definitions to fulfill their stated intention. fyi:
Hello
Thank you for contacting our support center with your concerns.Thank you for your message.It's false positive. The detection will be fixed in the next VPS.We are sorry for the inconvenience.If I can be of any further assistance, please do not hesitate to contact me again.
Best regards,
Lukas Havel
Technical Support Specialist

www.avast.com

Ticket Details
Ticket ID: YXL-216-11481
Department: Virus and FP reports
Type: FalsePositive
Status: On Hold
Priority: Normal
Support Center: https://support.avast.com/index.php?

I converted two groups of .shn files to .mp3 without any problems with this test version.
Attached Images
 

Last edited by lethedoom; 1st December 2014 at 19:40. Reason: addition info
lethedoom is offline   Reply With Quote
Old 6th December 2014, 01:34   #1093  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
LameXP Test-Build r1624

More refactoring has been done. But, most important, I tracked down and fixed (hopefully) a long-standing problem in the worker thread creating code, which caused an unnecessary slow-down of the "worker" process creation and also made the GUI less responsive than it should be. Things appear to run quite a bit more smoothly now, especially when you crank up the number of parallel encoder instances! Limit for the number of parallel instances has been raised to 32 too...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 25th December 2014 at 14:31.
LoRd_MuldeR is offline   Reply With Quote
Old 13th December 2014, 23:51   #1094  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
LameXP Test-Build r1628

LameXP r1582 vs. r1624:
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 25th December 2014 at 14:31.
LoRd_MuldeR is offline   Reply With Quote
Old 14th December 2014, 01:02   #1095  |  Link
SeeMoreDigital
Life's clearer in 4K UHD
 
SeeMoreDigital's Avatar
 
Join Date: Jun 2003
Location: Notts, UK
Posts: 12,219
Jeez... That looks fast
__________________
| I've been testing hardware media playback devices and software A/V encoders and decoders since 2001 | My Network Layout & A/V Gear |
SeeMoreDigital is online now   Reply With Quote
Old 14th December 2014, 01:20   #1096  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 589
86 wav files that are a few seconds each... seems kind of a pointless test.
mariush is offline   Reply With Quote
Old 14th December 2014, 01:58   #1097  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by mariush View Post
86 wav files that are a few seconds each... seems kind of a pointless test.
Not pointless at all, considering that this was chosen specifically to illustrate the specific problem that has been fixed recently. Nowhere I said that this is supposed to be the most common use case

Anyway, it should be clear that the longer the individual files are, the more time each encoding task takes to complete - and thus the "freeze" that did happened on the creation of each new task will become less apparent.

Conversely, with an increasing number of CPU cores the problem increases! I have report from one person who ran a test with ~1200 regular audio files on a 20 cores machine that there was a huge speed up.
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline   Reply With Quote
Old 14th December 2014, 05:14   #1098  |  Link
lethedoom
Registered User
 
lethedoom's Avatar
 
Join Date: Dec 2010
Location: california
Posts: 23
Thanks--terrific improvement

I have downloaded and used the test builds provided on 2014-12-13, 2014-12-08, 2014-12-06, 2014-12-05,2014-11-30 since my antivirus program stopped blocking the zips. Taking your point that more instances are better I use 32 on my i5 dual core Win 7 PC with the test builds and I find the increase in speed quite substantial compared to LameXP v.4.10 final. I download trade friendly artist live concerts (usually flac) with Deluge and convert them to mp3 with LameXP almost daily. Thanks again for your very useful tool which you share as a gift.
lethedoom is offline   Reply With Quote
Old 14th December 2014, 14:42   #1099  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by lethedoom View Post
I have downloaded and used the test builds provided on 2014-12-13, 2014-12-08, 2014-12-06, 2014-12-05,2014-11-30 since my antivirus program stopped blocking the zips. Taking your point that more instances are better I use 32 on my i5 dual core Win 7 PC with the test builds and I find the increase in speed quite substantial compared to LameXP v.4.10 final. I download trade friendly artist live concerts (usually flac) with Deluge and convert them to mp3 with LameXP almost daily. Thanks again for your very useful tool which you share as a gift.
Just to clarify: I did not say "that more instances are better" in general. What I said is that the recent fix will probably give the most noticeable improvement when you run a high number of instances in parallel. But that does not mean that you are supposed to crank up the number of parallel instances just because you can. It usually doesn't make much sense to run more instances in parallel than you have (logical) CPU cores available - even though this should work much better now with the "new" version. Furthermore, because of the possible I/O bottleneck, running too many instances in parallel may even considerably slow things down! Though the use of SSD's should eliminate the I/O bottleneck issue to a large extent...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 14th December 2014 at 16:06.
LoRd_MuldeR is offline   Reply With Quote
Old 15th December 2014, 02:47   #1100  |  Link
Romario
Registered User
 
Romario's Avatar
 
Join Date: Dec 2005
Location: Qetchua mountains in Peru, and Klingon battlecruiser D'Mar
Posts: 393
@ LoRd_MuldeR

Can you, please, give me all changelogs from 4.11 beta 1 to newest beta 8 ? Thanks in advance.


Another question for you : What if someone have 18-core beast Xeon ? Is then running more instances in parallel much better ??? Or on 8-core 5960X, for example ? How good is your latest optimisations ?
__________________
Live long and prosperLive long and prosperLive long and prosper
Romario is offline   Reply With Quote
Reply

Tags
aac, aotuv, flac, lame, lamexp, mp3, mp4, ogg, oggenc, opus, vorbis

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 11:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.