Bitcoin Forum
September 21, 2019, 05:49:20 AM *
News: Latest Bitcoin Core release: 0.18.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 »  All
  Print  
Author Topic: VanitySearch (Yet another address prefix finder)  (Read 6097 times)
DaveF
Hero Member
*****
Offline Offline

Activity: 1471
Merit: 774



View Profile WWW
April 19, 2019, 06:36:06 PM
 #281

I know a few pages back you said that you needed some help with OpenCL, did you find anyone able to help?
I am sitting on a bunch of older RX470 cards and figure this would be a good way for them to spend their retirement years :-)

If not, no big deal but I can always hope.

Thanks,
Dave




.




  ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄████████▀▀▀▀███▄
███████▀     ████
███████   ███████
█████        ████
███████   ███████
▀██████   ██████▀
  ▀▀▀▀▀   ▀▀▀▀▀

  ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄██▀▀▀▀▀▀▀▀▀▀▀██▄
██    ▄▄▄▄▄ ▀  ██
██   █▀   ▀█   ██
██   █▄   ▄█   ██
██    ▀▀▀▀▀    ██
▀██▄▄▄▄▄▄▄▄▄▄▄██▀
  ▀▀▀▀▀▀▀▀▀▀▀▀▀

            ▄▄▄
█▄▄      ████████▄
 █████▄▄████████▌
▀██████████████▌
  █████████████
  ▀██████████▀
   ▄▄██████▀
    ▀▀▀▀▀

    ██  ██
  ███████████▄
    ██      ▀█
    ██▄▄▄▄▄▄█▀
    ██▀▀▀▀▀▀█▄
    ██      ▄█
  ███████████▀
    ██  ██




               ▄
       ▄  ▄█▄ ▀█▀      ▄
      ▀█▀  ▀   ▄  ▄█▄ ▀█▀
███▄▄▄        ▀█▀  ▀     ▄▄▄███       ▐█▄    ▄█▌   ▐█▌   █▄    ▐█▌   ████████   █████▄     ██    ▄█████▄▄   ▐█████▌
████████▄▄           ▄▄████████       ▐███▄▄███▌   ▐█▌   ███▄  ▐█▌      ██      █▌  ▀██    ██   ▄██▀   ▀▀   ▐█
███████████▄       ▄███████████       ▐█▌▀██▀▐█▌   ▐█▌   ██▀██▄▐█▌      ██      █▌   ▐█▌   ██   ██          ▐█████▌
 ████████████     ████████████        ▐█▌    ▐█▌   ▐█▌   ██  ▀███▌      ██      █▌  ▄██    ██   ▀██▄   ▄▄   ▐█
  ████████████   ████████████         ▐█▌    ▐█▌   ▐█▌   ██    ▀█▌      ██      █████▀     ██    ▀█████▀▀   ▐█████▌
   ▀███████████ ███████████▀
     ▀███████████████████▀
        ▀▀▀█████████▀▀▀
FIND OUT MORE AT MINTDICE.COM
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Jean_Luc
Full Member
***
Offline Offline

Activity: 154
Merit: 193


View Profile
April 20, 2019, 06:12:33 AM
 #282

No, for the moment, nobody has proposed an OpenCL kernel for VanitySearch and I didn't find a good bigint library for OpenCL.
If somebody has some infos, it would be appreciated Wink
FistBump
Member
**
Offline Offline

Activity: 98
Merit: 12


View Profile
April 21, 2019, 07:54:40 PM
 #283

Salut Jean-Luc Smiley

Do you plan to add support for P2SH (segwit starting with 3) adresses anytime soon to your tool? That would be a nice to have.

For instance this project by nullios implemented both P2SH and bech32 addies.

Is this included in your roadmap?

Nice work anyway!
asche
Hero Member
*****
Offline Offline

Activity: 630
Merit: 723


I forgot more than you will ever know.


View Profile
April 21, 2019, 08:39:01 PM
Last edit: April 26, 2019, 05:16:34 PM by asche
Merited by OgNasty (1)
 #284

Do you plan to add support for P2SH (segwit starting with 3) adresses anytime soon to your tool? That would be a nice to have.

This is already supported in the current version afaik.


It is a first attempt, this is just to allow to run VanitySearch like this (for those who want a private address starting with 3).

Code:
C:\C++\VanitySearch\x64\ReleaseSM30>VanitySearch.exe -stop 3Priv
VanitySearch v1.11
Difficulty: 4553521
Search: 3Priv [Compressed]
Start Tue Apr  2 07:43:52 2019
Base Key:B0A317C56CF0CF3C63E118687C153CD1336F2D5DCE33A3ADB3CE5E4EEA401436
Number of CPU thread: 8

Pub Addr: 3PrivG5uq7hwXLyAHbYkFTnFkzx1FEWQdf
Priv (WIF): p2wpkh-p2sh:L2wAVD273GwAxGuEDHvrCqPfuWg5wWLZWy6H3hjsmhCvNVuCERAQ
Priv (HEX): 0xAA83217B3A11FCCFF8142EF0681AD774D7AB6822F574C4BB99CBF9B9DD01E7F2



Bech32/native segwit supported as well


Hello,

I just published the release 1.11 of VanitySearch:
https://github.com/JeanLucPons/VanitySearch/releases/tag/1.11
- Added support for segwit address P2SH and BECH32
I upload the windows release for CUDA8 asap.


Code:
C:\C++\VanitySearch\x64\Release>VanitySearch.exe -stop bc1queen
VanitySearch v1.11
Difficulty: 1048576
Search: bc1queen [Compressed]
Start Wed Apr  3 08:56:32 2019
Base Key:6F907FDE30067DCDE802739E47C6463FE49C32791242458C2D141212DB107A55
Number of CPU thread: 8

Pub Addr: bc1queenu8kq0vjrl509w88mwefdu4pztkdvlst4at
Priv (WIF): p2wpkh:L24UVC7ZYgYjy4cStQvBHD3quJkeYN3xHYBqFjTYjJjwmht84jsg
Priv (HEX): 0x906F8021CFF9823217FD8C61B839B9BED612AA6D9D065AAF92BE4C79F5251BBA

Thanks for testing Wink


Edit: Now I see you are just another multi account spammer. => https://bitcointalk.org/index.php?topic=5134513
Edit2: You are banned, goodbye.

BitCryptex
Hero Member
*****
Offline Offline

Activity: 700
Merit: 1015


Write @BitCryptex or quote my post to notify me


View Profile WWW
April 24, 2019, 04:12:34 PM
 #285

@Jean_Luc, what about case sensitive addresses? Is there any ETA on this feature? How difficult is it to implement such feature?

Jean_Luc
Full Member
***
Offline Offline

Activity: 154
Merit: 193


View Profile
April 24, 2019, 05:02:02 PM
 #286

No, this is not difficult to implement.
I'll add this feature in the new release.
escope
Newbie
*
Offline Offline

Activity: 13
Merit: 20


View Profile
April 24, 2019, 09:43:01 PM
Merited by DarkStar_ (4), OgNasty (1)
 #287

Hello, @Jean_Luc!

First of all I want to say a big thank you for the amazing project you are developing. Just a huge pleasure to use it.
Had you been thinking about expanding pattern abilities? Search for a word at the end of an address or inside an address? What do you think about the implementation of regular expressions?
I know regex in vanitygen working with CPU only. I don't know if this is possible but I think it would be just awesome to see something like a hybrid algo for finding regex patterns faster.
Thank you!
feryjhie
Hero Member
*****
Offline Offline

Activity: 854
Merit: 586



View Profile
April 24, 2019, 11:00:14 PM
 #288

No, this is not difficult to implement.
I'll add this feature in the new release.


can you add an option to search all address in lowercase or upper case?

...loteo...
DIGITAL ERA LOTTERY


r

▄▄███████████▄▄
▄███████████████████▄
▄███████████████████████▄
▄██████████████████████████▄
▄██  ███████▌ ▐██████████████▄
▐██▌ ▐█▀  ▀█    ▐█▀   ▀██▀  ▀██▌
▐██  █▌ █▌ ██  ██▌ ██▌ █▌ █▌ ██▌
▐█▌ ▐█ ▐█ ▐█▌ ▐██  ▄▄▄██ ▐█ ▐██▌
▐█  ██▄  ▄██    █▄    ██▄  ▄███▌
▀████████████████████████████▀
▀██████████████████████████▀
▀███████████████████████▀
▀███████████████████▀
▀▀███████████▀▀
r

RPLAY NOWR
BE A MOON VISITOR!
[/center]
Jean_Luc
Full Member
***
Offline Offline

Activity: 154
Merit: 193


View Profile
April 25, 2019, 06:07:27 AM
Merited by DaveF (2), OgNasty (1)
 #289

can you add an option to search all address in lowercase or upper case?

I'm not sure to fully understand your request ? Could you be more precise ?

Hello, @Jean_Luc!

First of all I want to say a big thank you for the amazing project you are developing. Just a huge pleasure to use it.
Had you been thinking about expanding pattern abilities? Search for a word at the end of an address or inside an address? What do you think about the implementation of regular expressions?
I know regex in vanitygen working with CPU only. I don't know if this is possible but I think it would be just awesome to see something like a hybrid algo for finding regex patterns faster.
Thank you!

What do you think about using wildcard and using pattern like 1*Bit*Coin* ?
feryjhie
Hero Member
*****
Offline Offline

Activity: 854
Merit: 586



View Profile
April 25, 2019, 07:12:06 AM
 #290

can you add an option to search all address in lowercase or upper case?

I'm not sure to fully understand your request? Could you be more precise?


the one i ask about is like this
in this thread  no upper/no lower address giveaway he can generate an address like this no upper case letters(e.g. 184wwh1dtg8xv858d1n1ktj2cpvvbjugft) or no lower case letters (e.g. 1GNGTB96XPDHQ47Y6SNP8KN3YNPLFUP6B8)

now he doesn't do that anymore and he doesn't share the application he uses to generate the address

...loteo...
DIGITAL ERA LOTTERY


r

▄▄███████████▄▄
▄███████████████████▄
▄███████████████████████▄
▄██████████████████████████▄
▄██  ███████▌ ▐██████████████▄
▐██▌ ▐█▀  ▀█    ▐█▀   ▀██▀  ▀██▌
▐██  █▌ █▌ ██  ██▌ ██▌ █▌ █▌ ██▌
▐█▌ ▐█ ▐█ ▐█▌ ▐██  ▄▄▄██ ▐█ ▐██▌
▐█  ██▄  ▄██    █▄    ██▄  ▄███▌
▀████████████████████████████▀
▀██████████████████████████▀
▀███████████████████████▀
▀███████████████████▀
▀▀███████████▀▀
r

RPLAY NOWR
BE A MOON VISITOR!
[/center]
OgNasty
Donator
Legendary
*
Offline Offline

Activity: 3038
Merit: 1720


I 💚 Bitcoin


View Profile
April 25, 2019, 09:41:47 PM
 #291

What do you think about using wildcard and using pattern like 1*Bit*Coin* ?

I think that's a great idea.

DaveF
Hero Member
*****
Offline Offline

Activity: 1471
Merit: 774



View Profile WWW
April 26, 2019, 06:52:42 PM
Merited by OgNasty (1)
 #292

What do you think about using wildcard and using pattern like 1*Bit*Coin* ?

Would like that very much!

Also, is it possible to encrypt the -o text file that you save the keys to?
I am running this on a offline PC that in theory nobody has access to. But, since it's alone churning for days on end other people in the office can walk up to it.

It would be another switch that encrypts the file, and clears the screen so nobody can see the command you ran.

Paranoid, I know.

-Dave




.




  ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄████████▀▀▀▀███▄
███████▀     ████
███████   ███████
█████        ████
███████   ███████
▀██████   ██████▀
  ▀▀▀▀▀   ▀▀▀▀▀

  ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄██▀▀▀▀▀▀▀▀▀▀▀██▄
██    ▄▄▄▄▄ ▀  ██
██   █▀   ▀█   ██
██   █▄   ▄█   ██
██    ▀▀▀▀▀    ██
▀██▄▄▄▄▄▄▄▄▄▄▄██▀
  ▀▀▀▀▀▀▀▀▀▀▀▀▀

            ▄▄▄
█▄▄      ████████▄
 █████▄▄████████▌
▀██████████████▌
  █████████████
  ▀██████████▀
   ▄▄██████▀
    ▀▀▀▀▀

    ██  ██
  ███████████▄
    ██      ▀█
    ██▄▄▄▄▄▄█▀
    ██▀▀▀▀▀▀█▄
    ██      ▄█
  ███████████▀
    ██  ██




               ▄
       ▄  ▄█▄ ▀█▀      ▄
      ▀█▀  ▀   ▄  ▄█▄ ▀█▀
███▄▄▄        ▀█▀  ▀     ▄▄▄███       ▐█▄    ▄█▌   ▐█▌   █▄    ▐█▌   ████████   █████▄     ██    ▄█████▄▄   ▐█████▌
████████▄▄           ▄▄████████       ▐███▄▄███▌   ▐█▌   ███▄  ▐█▌      ██      █▌  ▀██    ██   ▄██▀   ▀▀   ▐█
███████████▄       ▄███████████       ▐█▌▀██▀▐█▌   ▐█▌   ██▀██▄▐█▌      ██      █▌   ▐█▌   ██   ██          ▐█████▌
 ████████████     ████████████        ▐█▌    ▐█▌   ▐█▌   ██  ▀███▌      ██      █▌  ▄██    ██   ▀██▄   ▄▄   ▐█
  ████████████   ████████████         ▐█▌    ▐█▌   ▐█▌   ██    ▀█▌      ██      █████▀     ██    ▀█████▀▀   ▐█████▌
   ▀███████████ ███████████▀
     ▀███████████████████▀
        ▀▀▀█████████▀▀▀
FIND OUT MORE AT MINTDICE.COM
Jean_Luc
Full Member
***
Offline Offline

Activity: 154
Merit: 193


View Profile
April 27, 2019, 07:49:39 AM
Merited by DaveF (2), BitCryptex (1)
 #293

Hi there Wink

Some news:
- The case insensitive search is ready and working well at almost nominal speed.
- For the search with wildcard, the speed is still very low, in that case I have to calculate the full base58 address for each generated point and the base58 is very slow, so I'm trying to implement this at the GPU level.
- I will also add an encryption mechanism for the output file and think to a manner to have a safe command line.
escope
Newbie
*
Offline Offline

Activity: 13
Merit: 20


View Profile
April 27, 2019, 11:10:05 AM
Merited by DarkStar_ (4)
 #294

Hi there Wink

Some news:
- The case insensitive search is ready and working well at almost nominal speed.
- For the search with wildcard, the speed is still very low, in that case I have to calculate the full base58 address for each generated point and the base58 is very slow, so I'm trying to implement this at the GPU level.
- I will also add an encryption mechanism for the output file and think to a manner to have a safe command line.


Awesome!
Hope to see all upper-case or all lower-case search. Also hope to see regexp search for finding whatever want.

I am not an expert but I guess there are some algos for base64 encoding/decoding on GPU:
https://www.codeproject.com/Articles/276993/Base64-Encoding-on-a-GPU
https://lemire.me/blog/2018/01/17/ridiculously-fast-base64-encoding-and-decoding/

Also there are several fast GPU regexp:
https://madhumithasridhara.github.io/QuickMatch/
OgNasty
Donator
Legendary
*
Offline Offline

Activity: 3038
Merit: 1720


I 💚 Bitcoin


View Profile
April 27, 2019, 01:46:54 PM
 #295

Hope to see all upper-case or all lower-case search.

I don’t believe anything is stopping you from doing this now.

RobertPaulig
Newbie
*
Offline Offline

Activity: 8
Merit: 1


View Profile
April 27, 2019, 06:04:00 PM
 #296

Jean_Luc
Here's your piece of code for generating pseudorandom numbers.
/* Knuth's PRNG as used in the Mersenne Twister reference implementation */
Code:
 for (pos=0; pos<RK_STATE_LEN; pos++)
  {
    state->key[pos] = seed;
    seed = (1812433253UL * (seed ^ (seed >> 30)) + pos + 1) & 0xffffffffUL;
  }

  state->pos = RK_STATE_LEN;
}
This is a quote from the Wiki
Quote
Is not cryptographically secure, unless the CryptMT variant (discussed below) is used. The reason is that observing a sufficient number of iterations (624 in the case of MT19937, since this is the size of the state vector from which future iterations are produced) allows one to predict all future iterations.
https://en.wikipedia.org/wiki/Mersenne_Twister
escope
Newbie
*
Offline Offline

Activity: 13
Merit: 20


View Profile
April 27, 2019, 06:27:34 PM
 #297

I don’t believe anything is stopping you from doing this now.
I can. But I guess it is possible by slow CPU regexp in slow Vanitygen only.
Please if you know something lmk about that
Jean_Luc
Full Member
***
Offline Offline

Activity: 154
Merit: 193


View Profile
April 27, 2019, 07:14:19 PM
Merited by escope (1)
 #298

Hope to see all upper-case or all lower-case search. Also hope to see regexp search for finding whatever want.

I am not an expert but I guess there are some algos for base64 encoding/decoding on GPU:
https://www.codeproject.com/Articles/276993/Base64-Encoding-on-a-GPU
https://lemire.me/blog/2018/01/17/ridiculously-fast-base64-encoding-and-decoding/

Also there are several fast GPU regexp:
https://madhumithasridhara.github.io/QuickMatch/

Thanks for the link, I will have a look at this.
Adding a way to generate only upper or lower case is easy except for the difficulty calculation.

Jean_Luc
Here's your piece of code for generating pseudorandom numbers.
...

Thanks for the info but as written in the readme it is better to use a seed for generating a safe base key and obviously to run it on a machine where you are alone. The PNRG is not used at all by default, it is enabled only if you want to use the -r option which I do not recommend (I will add a UNSAFE message in the command line usage infos for the - r option).





DaveF
Hero Member
*****
Offline Offline

Activity: 1471
Merit: 774



View Profile WWW
April 29, 2019, 02:27:50 PM
Last edit: July 25, 2019, 06:31:57 PM by DaveF
Merited by DarkStar_ (4), Jean_Luc (4), OgNasty (1), malevolent (1)
 #299

Has anyone put together (or started to put together) a list of CPUs / Video Cards & the speed you can get out of them.
I know it's a newer project and Jean_Luc is working VERY VERY hard on it so getting accurate numbers is going to be a moving target. But for now all we can do is look through the thread and see who is running what to get a general idea.
So far I have pulled from this thread:

GPU: GPU #0 GeForce GTX 1080 Ti (28x128 cores) Grid(224x128)
914.418 MK/s (GPU 896.216 MK/s)

GPU: GPU #0 GeForce GTX 1050 Ti (6x128 cores) Grid(48x128)
220.180 MK/s (GPU 220.180 MK/s)

GPU: GPU #0 GeForce GT 520M (1x48 cores) Grid(8x128)
10.233 MK/s (GPU 7.026 MK/s)

GPU: GPU #0 GeForce RTX 2070 (36x64 cores) Grid(288x128)
1535.880 MK/s (GPU 1470.257 MK/s)

Added 30-April-2019

GPU: GPU #0 GeForce GTX 1060 3GB (9x128 cores) Grid(72x128)
321.929 MK/s (GPU 321.929 MK/s)

GPU: GPU #0 GeForce GTX 1080 (20x128 cores) Grid(160x128)
672.062 MK/s (GPU 672.062 MK/s)

Added 1-May-2019

GPU: GPU #0 Tesla V100-SXM2-16GB (80x64 cores) Grid(640x128)
GPU: GPU #3 Tesla V100-SXM2-16GB (80x64 cores) Grid(640x128)
GPU: GPU #2 Tesla V100-SXM2-16GB (80x64 cores) Grid(640x128)
GPU: GPU #1 Tesla V100-SXM2-16GB (80x64 cores) Grid(640x128)
7260.449 MK/s (GPU 7212.931 MK/s)
So 7260 / 4 = 1815 MK/s

GPU: GPU #0 GeForce GTX 750 (4x128 cores) Grid(32x128)
104.960 MK/s (GPU 94.405 MK/s) (2^32.12)

Added 3-May-2019
i7-7700K CPU Number of CPU thread: 8
22.092 MK/s (GPU 0.000 MK/s)

With -t 7
Number of CPU thread: 7
21.609 MK/s

Added 8-May-2019

EVGA RTX 2080 XC ULTRA
1427.967 MK/s (GPU 1424.946 MK/s)

Added 23-May-2019

GPU: GPU #0 GeForce GTX 1660 Ti
961.319 MK/s (GPU 961.319 MK/s)

GPU: GPU #0 GeForce RTX 2080 Ti (68x64 cores) Grid(544x128)
GPU: GPU #1 GeForce RTX 2080 Ti (68x64 cores) Grid(544x128)
5128.213 MK/s (GPU 5128.213 MK/s)
So 5128 / 2  = 2564 MK/s


Added 8-June-2019

GPU: GPU #0 GeForce GTX 960M (5x128 cores) Grid(40x128)
117.802 MK/s (GPU 117.802 MK/s)

Added 23-July-2019

GPU: GPU #0 GeForce GTX 1660 (22x64 cores) Grid(176x128)
839.061 MK/s (GPU 839.061 MK/s)

Added 25-July-2019

GPU: GPU #0 GeForce GTX 1650 (14x64 cores) Grid(112x128)
511.906 MK/s (GPU 511.906 MK/s) (2^36.97)

Anything else?

-Dave

Last updated 25-July-2019.




.




  ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄████████▀▀▀▀███▄
███████▀     ████
███████   ███████
█████        ████
███████   ███████
▀██████   ██████▀
  ▀▀▀▀▀   ▀▀▀▀▀

  ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄██▀▀▀▀▀▀▀▀▀▀▀██▄
██    ▄▄▄▄▄ ▀  ██
██   █▀   ▀█   ██
██   █▄   ▄█   ██
██    ▀▀▀▀▀    ██
▀██▄▄▄▄▄▄▄▄▄▄▄██▀
  ▀▀▀▀▀▀▀▀▀▀▀▀▀

            ▄▄▄
█▄▄      ████████▄
 █████▄▄████████▌
▀██████████████▌
  █████████████
  ▀██████████▀
   ▄▄██████▀
    ▀▀▀▀▀

    ██  ██
  ███████████▄
    ██      ▀█
    ██▄▄▄▄▄▄█▀
    ██▀▀▀▀▀▀█▄
    ██      ▄█
  ███████████▀
    ██  ██




               ▄
       ▄  ▄█▄ ▀█▀      ▄
      ▀█▀  ▀   ▄  ▄█▄ ▀█▀
███▄▄▄        ▀█▀  ▀     ▄▄▄███       ▐█▄    ▄█▌   ▐█▌   █▄    ▐█▌   ████████   █████▄     ██    ▄█████▄▄   ▐█████▌
████████▄▄           ▄▄████████       ▐███▄▄███▌   ▐█▌   ███▄  ▐█▌      ██      █▌  ▀██    ██   ▄██▀   ▀▀   ▐█
███████████▄       ▄███████████       ▐█▌▀██▀▐█▌   ▐█▌   ██▀██▄▐█▌      ██      █▌   ▐█▌   ██   ██          ▐█████▌
 ████████████     ████████████        ▐█▌    ▐█▌   ▐█▌   ██  ▀███▌      ██      █▌  ▄██    ██   ▀██▄   ▄▄   ▐█
  ████████████   ████████████         ▐█▌    ▐█▌   ▐█▌   ██    ▀█▌      ██      █████▀     ██    ▀█████▀▀   ▐█████▌
   ▀███████████ ███████████▀
     ▀███████████████████▀
        ▀▀▀█████████▀▀▀
FIND OUT MORE AT MINTDICE.COM
Coinettin
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
April 30, 2019, 12:25:12 AM
 #300

Hi Jean_Luc,

Thank you for your work. It's a huge step for generating vanity addresses. I appreciate it.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!