Bitcoin Forum
May 04, 2024, 09:58:30 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: how to claim Bitcoin gold from Block.io ?  (Read 246 times)
Lion BItcoin Shop (OP)
Hero Member
*****
Offline Offline

Activity: 586
Merit: 500

BitcoreService.com


View Profile
February 14, 2018, 10:50:18 PM
 #1

Hello today i remember i have some BTC during forking to bitcoingold at blcok.io the problem is my address type : P2WSH-over-P2SH, and I am frustrated to find a way to claim bitcoin gold.
i try using bitaddress to get private key support coinomi, to claim at coinomi, but coinomi not supported my type address.

anyone here can help me, the full tutorial how to claim bitcoin gold from my type wallet ?
i will give 1BTG for reward

Thanks

TalkImg was created especially for hosting images on bitcointalk.org: try it next time you want to post an image
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714816710
Hero Member
*
Offline Offline

Posts: 1714816710

View Profile Personal Message (Offline)

Ignore
1714816710
Reply with quote  #2

1714816710
Report to moderator
1714816710
Hero Member
*
Offline Offline

Posts: 1714816710

View Profile Personal Message (Offline)

Ignore
1714816710
Reply with quote  #2

1714816710
Report to moderator
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
February 15, 2018, 04:45:18 AM
 #2

Block.io utilises multi-sig doesn't it? If this is indeed the case... you need to make sure you have access to the required number of private keys to sign a transaction.

If you don't have the minimum number of private keys... there is pretty much nothing you will be able to do.

Assuming you DO have the minimum required number of private keys... you'd also need to know the public keys that were used to create the MultiSig address that the SegWit MultiSig address was created from. You could then (theoretically) "recreate" the MultiSig in Bitcoin Gold Core... and then create the SegWit MultiSig using the redeemscript for the "normal" MultiSig.

Once you had all that... you'd just need to create and sign a transaction using the redeemscripts that sent your BTG to the address of your choice.

An example that shows how it was done on Bitcoin Testnet is here: https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa

Unfortunately, it appears that the "createwitnessaddress" command is no longer available in Bitcoin Core nor is it available in Bitcoin Gold Core... so I'm not entirely sure you're going to be able to recreate the address at this point in time Undecided

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Lion BItcoin Shop (OP)
Hero Member
*****
Offline Offline

Activity: 586
Merit: 500

BitcoreService.com


View Profile
February 15, 2018, 08:29:28 AM
 #3

Block.io utilises multi-sig doesn't it? If this is indeed the case... you need to make sure you have access to the required number of private keys to sign a transaction.

If you don't have the minimum number of private keys... there is pretty much nothing you will be able to do.

Assuming you DO have the minimum required number of private keys... you'd also need to know the public keys that were used to create the MultiSig address that the SegWit MultiSig address was created from. You could then (theoretically) "recreate" the MultiSig in Bitcoin Gold Core... and then create the SegWit MultiSig using the redeemscript for the "normal" MultiSig.

Once you had all that... you'd just need to create and sign a transaction using the redeemscripts that sent your BTG to the address of your choice.

An example that shows how it was done on Bitcoin Testnet is here: https://0bin.net/paste/nfnSf0HcBqBUGDto#7zJMRUhGEBkyh-eASQPEwKfNHgQ4D5KrUJRsk8MTPSa

Unfortunately, it appears that the "createwitnessaddress" command is no longer available in Bitcoin Core nor is it available in Bitcoin Gold Core... so I'm not entirely sure you're going to be able to recreate the address at this point in time Undecided

thnks alot but this tips complicated to me, im trying use node.js from github. maybe will try it after my trick not working

i have 2 privekey, but i dont know how much the prive key i have

BitMaxz
Legendary
*
Offline Offline

Activity: 3248
Merit: 2965


Block halving is coming.


View Profile WWW
February 15, 2018, 07:03:19 PM
Last edit: February 16, 2018, 08:26:17 PM by BitMaxz
 #4

There is some user friendly tool that you can redeem your bitcoin cash or bitcoin gold or any fork coins supported
Never tested it yet but its looks like legit check the owner of the tool here https://bitcointalk.org/index.php?action=profile;u=151737
Check the tools here including the instruction how to redeem your bitcoin gold check it here http://www.motelmaya.com/BCH/BCH.html
you can change bitcoin cash into bitcoin gold just click settings  and choose what coin you wanted to redeem then follow the instruction..

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
February 15, 2018, 07:05:04 PM
Merited by Lion BItcoin Shop (10), DarkStar_ (3)
 #5

I believe that it is a 2-of-2 MultiSig... so it would appear you have access to required private keys.

As far as I can tell, the problem is that you simply cannot create the SegWit MultiSig address from the Legacy MultiSig address any more... as noted in that link, the "createwitnessaddress" command was removed from Bitcoin Core (so it also doesn't exist in BitcoinGold Core)...

Without that functionality, I don't know of any easy way to "convert" the legacy MultiSig (P2SH) address to a SegWit MultiSig (P2WSH-over-P2SH)... Undecided

However, what I've just tried is using Bitcoin Core 0.13.0 (The last version of Bitcoin Core with the "createwitnessaddress" command, it doesn't even need to be synced!)... and it seems to create the same P2WSH-over-P2SH... using "createwitnessaddress".

ie. from block.io:
Quote
* Address: 35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
...
* Public Keys: ["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]


Using Bitcoin Core 0.13.0:
Quote

createmultisig 2 '["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]'

{
  "address": "3GhvcWciiLjhH4avpBhpU749W5qXZmLTRe",
  "redeemScript": "5221..........52ae"
}

createwitnessaddress 5221..........52ae

{
  "address": "35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA",
  "witnessScript": "0020..........8f1a"
}


Theoretically, one should then be able to use BitcoinGold Core, the redeemScript, the witnessScript and the two private keys from block.io to manually create a transaction and sign it (following the instructions here:  Step 4 - Spending the MultiSig)

Unfortunately, I don't have any BitcoinGold to try and test my theory... Tongue So I can't guarantee it will work... but it shouldn't cost you anything to try, except a bit of time Wink

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Lion BItcoin Shop (OP)
Hero Member
*****
Offline Offline

Activity: 586
Merit: 500

BitcoreService.com


View Profile
February 17, 2018, 08:17:50 AM
 #6

I believe that it is a 2-of-2 MultiSig... so it would appear you have access to required private keys.

As far as I can tell, the problem is that you simply cannot create the SegWit MultiSig address from the Legacy MultiSig address any more... as noted in that link, the "createwitnessaddress" command was removed from Bitcoin Core (so it also doesn't exist in BitcoinGold Core)...

Without that functionality, I don't know of any easy way to "convert" the legacy MultiSig (P2SH) address to a SegWit MultiSig (P2WSH-over-P2SH)... Undecided

However, what I've just tried is using Bitcoin Core 0.13.0 (The last version of Bitcoin Core with the "createwitnessaddress" command, it doesn't even need to be synced!)... and it seems to create the same P2WSH-over-P2SH... using "createwitnessaddress".

ie. from block.io:
Quote
* Address: 35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
...
* Public Keys: ["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]


Using Bitcoin Core 0.13.0:
Quote

createmultisig 2 '["02b5a89a361fe7cc2aea909700f11a53c72fce3d1f10ccb9411d943dd2e6b00646", "03e8086a8f5160d161536557b02f24f49644d414b4d5ea43e4f9f6a596d655e31b"]'

{
  "address": "3GhvcWciiLjhH4avpBhpU749W5qXZmLTRe",
  "redeemScript": "5221..........52ae"
}

createwitnessaddress 5221..........52ae

{
  "address": "35x8Y6r9e4hnwPQ9y6RgEzgvCZ2urLmJJA",
  "witnessScript": "0020..........8f1a"
}


Theoretically, one should then be able to use BitcoinGold Core, the redeemScript, the witnessScript and the two private keys from block.io to manually create a transaction and sign it (following the instructions here:  Step 4 - Spending the MultiSig)

Unfortunately, I don't have any BitcoinGold to try and test my theory... Tongue So I can't guarantee it will work... but it shouldn't cost you anything to try, except a bit of time Wink

 i will contact you via PM send the detail

HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
February 19, 2018, 03:55:20 AM
Last edit: November 15, 2023, 08:14:26 AM by HCP
Merited by Lion BItcoin Shop (10)
 #7

Ok... so after the OP contacted me and provided some details... I was able to "liberate" the BTG from the block.io MultiSig SegWit wallet as follows:

Requirements: FULLY synced Bitcoin Gold Core (needs to be fully synced so that it detects that SegWit has been activated) that IS NOT "pruned" (so you can -rescan)

Step 1 - Get your private key data from block.io, this will be in the form:
Quote
* Address: 33o4MoDSFrfKSznHLBzwKigpTQvMiWWsHr
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
* Redeem Script: 2 035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1 029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d92 OP_CHECKMULTISIG
* Redeem Script Hex: 522xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2ae
* Public Keys: ["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]
* Private Keys: ["L4nSdddddddddddddddddddddddddddddddddddddddddBZ", "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE"]

* Complete. Handle with secrecy. Do not share. Do not store insecurely.
You will need the bits highlighted in BOLD, namely the private keys and public keys.


Step 2 - In Bitcoin Gold Core, import the two private keys that you got from block.io

In the Debug Console (Help -> Debug Window -> Console), use the following commands:
Code:
importprivkey "L4nSdddddddddddddddddddddddddddddddddddddddddBZ" "" false
importprivkey "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE" "" false


Step 3 - In Bitcoin Gold Core,  create the "legacy" multisig for the addresses you just imported, by using "Public Keys"

In the Debug Console, use the following command:
Code:
addmultisigaddress 2 '["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]'
NOTE: You can just copy/paste the "Public Keys" from block.io output

This will output the "Legacy" Multisig Address like: GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB


Step 4 - In Bitcoin Gold Core, create the "SegWit" address for the multisig address you just created

In debug console:
Code:
addwitnessaddress "GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB"

This will output the "SegWit" Multisig Address like: AHsv5kad3716AoHqmjzg3yaynVZLV7yuxN


NOTE: You can confirm you have done it successfully, by copy/pasting the "3"-Address from block.io into https://btgexplorer.com/ It will automatically convert the BTC address to the BTG one:




Once you have successfully created the "A"-Address in Bitcoin Gold Core, you need to shut it down, and restart it with the -rescan parameter. Then after waiting for it to rescan the blockchain, you should find all your BTG showing. You can then just send coins as you normally would with the Bitcoin Gold Core GUI and send all the BTG to the BTG address of your choice.

PROTIP: If you have multiple addresses from block.io, I'd recommend recreating them ALL in Bitcoin Gold Core first BEFORE you do the -rescan... as -rescan takes a LONG time Tongue

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Lion BItcoin Shop (OP)
Hero Member
*****
Offline Offline

Activity: 586
Merit: 500

BitcoreService.com


View Profile
February 19, 2018, 05:41:25 AM
 #8

Ok... so after the OP contacted me and provided some details... I was able to "liberate" the BTG from the block.io MultiSig SegWit wallet as follows:

Requirements: FULLY synced Bitcoin Gold Core (needs to be fully synced so that it detects that SegWit has been activated) that IS NOT "pruned" (so you can -rescan)

Step 1 - Get your private key data from block.io, this will be in the form:
Quote
* Address: 33o4MoDSFrfKSznHLBzwKigpTQvMiWWsHr
* Address Type: P2WSH-over-P2SH
* Required Signatures: 2
* Redeem Script: 2 035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1 029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d92 OP_CHECKMULTISIG
* Redeem Script Hex: 522xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2ae
* Public Keys: ["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]
* Private Keys: ["L4nSdddddddddddddddddddddddddddddddddddddddddBZ", "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE"]

* Complete. Handle with secrecy. Do not share. Do not store insecurely.
You will need the bits highlighted in BOLD, namely the private keys and public keys.


Step 2 - In Bitcoin Gold Core, import the two private keys that you got from block.io

In the Debug Console (Help -> Debug Window -> Console), use the following commands:
Code:
importprivkey "L4nSdddddddddddddddddddddddddddddddddddddddddBZ" "" false
importprivkey "L32eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaE" "" false


Step 3 - In Bitcoin Gold Core,  create the "legacy" multisig for the addresses you just imported, by using "Public Keys"

In the Debug Console, use the following command:
Code:
addmultisigaddress 2 '["035fdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadedf1", "029c7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb90d9"]'
NOTE: You can just copy/paste the "Public Keys" from block.io output

This will output the "Legacy" Multisig Address like: GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB


Step 4 - In Bitcoin Gold Core, create the "SegWit" address for the multisig address you just created

In debug console:
Code:
addwitnessaddress "GGtN2fhfhgfhgfhgfhgfgfhgfhfghMASB"

This will output the "SegWit" Multisig Address like: AHsv5kad3716AoHqmjzg3yaynVZLV7yuxN


NOTE: You can confirm you have done it successfully, by copy/pasting the "3"-Address from block.io into https://btgexplorer.com/ It will automatically convert the BTC address to the BTG one:




Once you have successfully created the "A"-Address in Bitcoin Gold Core, you need to shut it down, and restart it with the -rescan parameter. Then after waiting for it to rescan the blockchain, you should find all your BTG showing. You can then just send coins as you normally would with the Bitcoin Gold Core GUI and send all the BTG to the BTG address of your choice.

PROTIP: If you have multiple addresses from block.io, I'd recommend recreating them ALL in Bitcoin Gold Core first BEFORE you do the -rescan... as -rescan takes a LONG time Tongue

That's really usefull Cheesy

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!