Jump to content

ATI HD framebuffer driver (10.5/10.6) with source code


dong
 Share

900 posts in this topic

Recommended Posts

some improvements

i found that i had EVOenabler somewhere in preboot.dmg or S/L/E

removed then radeonHD loaded but no image in laptop display

if i VNC can see the desktop with 1600x900

included EDID in info.plist of radeonHD and now i have distorted image on display, but in VNC still 1600x900

so, now what could i do? here goes my kernel log showing radeonHD entries

 

Sep 27 20:00:16 Luis-Sebastian-Cuellos-iMac kernel[0]: systemShutdown true

Sep 27 20:00:16: --- last message repeated 1 time ---

Sep 27 20:00:16 Luis-Sebastian-Cuellos-iMac kernel[0]: Kext loading now disabled.

Sep 27 20:00:16 Luis-Sebastian-Cuellos-iMac kernel[0]: Kext unloading now disabled.

Sep 27 20:00:16 Luis-Sebastian-Cuellos-iMac kernel[0]: Kext autounloading now disabled.

Sep 27 20:00:16 Luis-Sebastian-Cuellos-iMac kernel[0]: Kernel requests now disabled.

Sep 27 19:59:00 localhost kernel[0]: 520b4fc

Sep 27 19:59:00 localhost kernel[0]: kxld[com.apple.driver.AppleACPIPCI]: __ZN12AppleACPIPCID2Ev: 0x553b4050 - 0x5520b51c

Sep 27 19:59:00 localhost kernel[0]: kxld[com.apple.driver.AppleACPIPCI]: __ZNK12AppleACPIPCI12getMetaClassEv: 0x553b40c0 - 0x5520ad2a

Sep 27 19:59:00 localhost kernel[0]: kxld[com.apple.driver.AppleACPIPCI]: __ZNK12AppleACPIPCI9MetaClass5allocEv: 0x553b4172 - 0x5520b430

Sep 27 19:59:00 localhost kernel[0]: kxld[com.apple.driver.AppleACPIPCI]: __ZTV12AppleACPIPCI: 0x553b4de0 - 0x55231c40

Sep 27 19:59:00 localhost kernel[0]: kxld[com.apple.driver.AppleACPIPCI]: __ZTVN12AppleACPIPCI9MetaClassE: 0x553b53c0 - 0x55231bc0

Sep 27 19:59:00 localhost kernel[0]: Can't load kext com.apple.driver.AppleACPIPCI - link failed.

Sep 27 19:59:00 localhost kernel[0]: Failed to load executable for kext com.apple.driver.AppleACPIPCI.

Sep 27 19:59:00 localhost kernel[0]: Kext com.apple.driver.AppleACPIPCI failed to load (0xdc008016).

Sep 27 19:59:00 localhost kernel[0]: Failed to load kext com.apple.driver.AppleACPIPCI (error 0xdc008016).

Sep 27 19:59:00 localhost kernel[0]: Warning - com.apple.driver.AppleACPIThermal declares no kernel dependencies; using com.apple.kernel.6.0.

Sep 27 19:59:00 localhost kernel[0]: OSMetaClass: Kext com.yourcompany.driver.AppleACPIPS2Nub class AppleACPIPS2Nub is a duplicate;kext org.tgwbd.driver.ACPIPS2Nub already has a class by that name.

Sep 27 19:59:00 localhost kernel[0]: Kext com.yourcompany.driver.AppleACPIPS2Nub start failed (result 0xdc00400a).

Sep 27 19:59:00 localhost kernel[0]: Kext com.yourcompany.driver.AppleACPIPS2Nub failed to load (0xdc008017).

Sep 27 19:59:00 localhost kernel[0]: Failed to load kext com.yourcompany.driver.AppleACPIPS2Nub (error 0xdc008017).

Sep 27 19:59:00 localhost kernel[0]: Starting AppleACPIPS2Nub

Sep 27 19:59:00 localhost kernel[0]: Found mouse PNP device

Sep 27 19:59:00 localhost kernel[0]: AppleACPIPS2Nub startup complete

Sep 27 19:59:00 localhost kernel[0]: VoodooBattery.kext: VoodooBattery.kext 1.2.11 (Release) Sep 5 2009 00:31:34 [1060]

Sep 27 19:59:00 localhost kernel[0]: VoodooBattery.kext: Snow Leopard Pre-release © 2009 Superhai, All Rights Reserved

Sep 27 19:59:00 localhost kernel[0]: Loading VoodooHDA 0.2.1 (based on hdac version 20090401_0132)

Sep 27 19:59:00 localhost kernel[0]: Controller: Intel PCH (vendor ID: 8086, device ID: 3b56)

Sep 27 19:59:00 localhost kernel[0]: netkas presents fakesmc, a kext which emulates smc device

Sep 27 19:59:00 localhost kernel[0]: warning: couldn't set recording source to microphone

Sep 27 19:59:00 localhost kernel[0]: Codec #0: IDT 92HD73C1 (vendor ID: 111d, device ID: 7675)

Sep 27 19:59:00 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)

Sep 27 19:59:00 localhost kernel[0]: Kext com.dong.driver.RadeonHD - library kext com.apple.iokit.IONDRVSupport not found.

Sep 27 19:59:00 localhost kernel[0]: Can't load kext com.dong.driver.RadeonHD - failed to resolve library dependencies.

Sep 27 19:59:00 localhost kernel[0]: Kext com.dong.driver.RadeonHD failed to load (0xdc00800e).

Sep 27 19:59:00 localhost kernel[0]: Failed to load kext com.dong.driver.RadeonHD (error 0xdc00800e).

Sep 27 19:59:00 localhost kernel[0]: Loading VoodooHDA 0.2.1 (based on hdac version 20090401_0132)

Sep 27 19:59:00 localhost kernel[0]: Controller: ATI RV730 (vendor ID: 1002, device ID: aa38)

Sep 27 19:59:00 localhost kernel[0]: Couldn't alloc class "RadeonHD"

Sep 27 19:59:00 localhost kernel[0]: Not loading kext com.apple.driver.AppleACPIPCI - not found and kextd not available in early boot.

Sep 27 19:59:00 localhost kernel[0]: warning: couldn't set recording source to microphone

Sep 27 19:59:00 localhost kernel[0]: Codec #0: ATI R6xx HDMI (vendor ID: 1002, device ID: aa01)

Sep 27 19:59:00 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)

Sep 27 19:59:00 localhost kernel[0]: FireWire runtime power conservation disabled. (2)

Sep 27 19:59:00 localhost kernel[0]: FireWire (OHCI) VendorID 1180 ID e832 PCI now active, GUID 314fc0000bb4a661; max speed s400.

Sep 27 19:59:00 localhost kernel[0]: ApplePS2Controller: Timed out on mouse input stream.

Sep 27 19:59:00: --- last message repeated 1 time ---

Sep 27 19:59:00 localhost kernel[0]: VoodooPS2SynapticsTouchPad loaded

Sep 27 19:59:00 localhost kernel[0]: VoodooPS2Trackpad: Synaptics TouchPad v7.2

Sep 27 19:59:00 localhost kernel[0]: USBMSC Identifier (non-unique): 20080125000000000000041B 0x951 0x1603 0x200

Sep 27 19:59:00 localhost kernel[0]: VoodooBattery.kext: [Warning] Battery reports mWh but uses mAh (695)

Sep 27 19:59:00 localhost kernel[0]: mbinit: done (64 MB memory set for mbuf pool)

Sep 27 19:59:00 localhost kernel[0]: From path: "uuid",

Sep 27 19:59:00 localhost kernel[0]: Waiting for boot volume with UUID 6E365E38-0835-3EAC-B7DA-261CF0C56E97

Sep 27 19:59:00 localhost kernel[0]: Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>

Sep 27 19:59:00 localhost kernel[0]: com.apple.AppleFSCompressionTypeZlib load succeeded

Sep 27 19:59:00 localhost kernel[0]: Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SAT0@1F,2/AppleAHCI/PRT0@0/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/Hitachi HTS725050A9A362 Media/IOGUIDPartitionScheme/Untitled@2

Sep 27 19:59:00 localhost kernel[0]: BSD root: disk0s2, major 14, minor 3

Sep 27 19:59:02 localhost kernel[0]: systemShutdown false

Sep 27 19:59:11 Luis-Sebastian-Cuellos-iMac kernel[0]: Refusing new kext com.apple.iokit.IONetworkingFamily, v1.8: already have loaded v1.9.

Sep 27 19:59:11 Luis-Sebastian-Cuellos-iMac kernel[0]: BCM5751Enet: Ethernet address b8:ac:6f:68:4c:9a

Sep 27 19:59:11 Luis-Sebastian-Cuellos-iMac kernel[0]: Previous Shutdown Cause: 3

Sep 27 19:59:11 Luis-Sebastian-Cuellos-iMac kernel[0]: Refusing new kext com.apple.iokit.IONetworkingFamily, v1.8: already have loaded v1.9.

Sep 27 19:59:11: --- last message repeated 1 time ---

Sep 27 19:59:11 Luis-Sebastian-Cuellos-iMac kernel[0]: DSMOS has arrived

Sep 27 19:59:16 Luis-Sebastian-Cuellos-iMac kernel[0]: ACPI_SMC_PlatformPlugin::start - waitForService(resourceMatching(AppleIntelCPUPowerManagement) timed out

Sep 27 19:59:17 Luis-Sebastian-Cuellos-iMac kernel[0]: onHD]: cscGetFeatureConfiguration

Sep 27 19:59:17 Luis-Sebastian-Cuellos-iMac kernel[0]: [RadeonHD]: cscSetMode

Sep 27 19:59:17 Luis-Sebastian-Cuellos-iMac kernel[0]: [RadeonHD]: cscSetGray

Sep 27 19:59:17 Luis-Sebastian-Cuellos-iMac kernel[0]: [RadeonHD]: cscSavePreferredConfiguration

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cb6300]::volumeChanged(0x6cbbf00, 0, 38)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cb6300]::volumeChanged(0x6cbbe00, 0, 38)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cbb500]::volumeChanged(0x6cbb100, 0, 100)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cbb500]::volumeChanged(0x6cbb000, 0, 100)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cb6a00]::volumeChanged(0x6cb6600, 75, 94)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cb6a00]::volumeChanged(0x6cb6500, 75, 94)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cbbc00]::volumeChanged(0x6cbb800, 75, 91)

Sep 27 19:59:18 Luis-Sebastian-Cuellos-iMac kernel[0]: VoodooHDAEngine[0x6cbbc00]::volumeChanged(0x6cbb700, 75, 91)

Sep 27 19:59:20 Luis-Sebastian-Cuellos-iMac kernel[0]: NTFS driver 3.0 [Flags: R/W].

Sep 27 19:59:20 Luis-Sebastian-Cuellos-iMac kernel[0]: NTFS volume name , version 3.1.

Sep 27 19:59:20 Luis-Sebastian-Cuellos-iMac kernel[0]: [RadeonHD]: cscSavePreferredConfiguration

Sep 27 20:04:00 Luis-Sebastian-Cuellos-iMac kernel[0]: IOFireWireController:: Out of Transaction Labels

Link to comment
Share on other sites

no help for RadeonHD?

i've reinstalled everything. SL 10.6.2

radeonHD loaded. no image in screen but i can access thru sharescreen.

i attach two logs. one with debug enabled ( image in screen but scrambled. sharescreen shows vesa resolution)

 

one wothout debug ( no image in screen and sharescreen shows full resoution)

 

please help!!!!!

radeonHD_debugfalse.txt

radeonHD_debugtrue.txt

Link to comment
Share on other sites

When you said "no image", what is that exactly looking like? Did you try what I put in FAQ that suggest to set "BackLightLevel" to 0?

When you dump the debug info, please use "RadeonDump" come with 10/20/2009 version in the terminal to get the full log. I assume you can do that in vnc.

Link to comment
Share on other sites

dong

here goes the radeondump log

i forgot to mention that if i boot with vanilla drivers for ati (ATI4600Controller, ATIX2000, etc) i get the same results as with radeonHD . card gets detected , shows two connectors unused and i can access via vnc witout problems with full res

maybe there is a way to enable the lvds connection for vanilla drivers...

radeondump_log.txt

Link to comment
Share on other sites

Hm, did not figure out anything unusual from the log. Can you decrease the verbose level and post another log?

 

dong

here goes the radeondump log

i forgot to mention that if i boot with vanilla drivers for ati (ATI4600Controller, ATIX2000, etc) i get the same results as with radeonHD . card gets detected , shows two connectors unused and i can access via vnc witout problems with full res

maybe there is a way to enable the lvds connection for vanilla drivers...

Link to comment
Share on other sites

hi dong

the verbose level of the previous log was 1.

here goes two logs: verbose 1 and verbose 2.

im sendig these because i've changed the radeonHD kext from the last time. the results are the same but this version is newer.

i hope these logs help

my hackintosh is almost perfct, just lacking of full res and display sleep

 

 

im attaching one more log with verbose 3

radeonHD_verbose1.txt

radeonHD_verbose2.txt

radeonHD_verbose3.txt

Link to comment
Share on other sites

I found this in the first log: [RadeonHD]: Get BL level: 0x0

If the default Backlight level is 0, that could explain the problem.

 

I wrote a small tool to read and set IO register on the fly So that you can try set the backlight level to see if the screen will light up or not.

radeonIO.zip

run it as below:

sudo chown -R 0:0 RadeonPCI.kext

sudo kextload RadeonPCI.kext

./radeonIO mask 172C FF00 FF00

 

here 0x172C is the offset of the backlight control register hopefully correct for your card.

0xFF00 is the value to set with FF = 256, the max level for backlight. If it works, u can change it to other values in the range of 0-255

Another 0xFF00 is the mask.

If it not work, try ./radeonIO mask 7AFC FFFF01 FFFF01

 

I tested this tool, it works in my laptop where I have different offset and mask values for backlight. For my x1400 card, I need type ./radeonIO mask 7AF8 FF01 FF01

Seeing the backlight level change followed by my input is really some fun.

Link to comment
Share on other sites

dong

tried your utility but no change.

as fas as i see, i can tell yo that the backligth is on and full level, but the image displayed is black. if i dim the display BL with function keys i can see how it goes from dark gray to deep black

apllying the commands with your utility didnt change anything.

othr thing that i found is that in radeondump log, the EDID is the same that i got from windows app, but if i run swichresX from osx i get a generic EDID.

i saw that the radeondump logs are truncated. maby i can enable more size to the dump to see what is beyond? how ?

 

aldo, this is what system profiler shows about graphics/displays

ATI MOBILITY RADEON HD 4670:

 

Chipset Model: ATI MOBILITY RADEON HD 4670

Type: GPU

Bus: PCIe

PCIe Lane Width: x16

VRAM (Total): 256 MB

Vendor: ATI (0x1002)

Device ID: 0x9488

Revision ID: 0x0000

Displays:

Display:

Resolution: 1600 x 900

Pixel Depth: 32-Bit Color (ARGB8888)

Main Display: Yes

Mirror: Off

Online: Yes

Link to comment
Share on other sites

Yes, you can enlarge the buffer size for the log. There is a user option in RadeonHD.kext/Contents/Info.plist, called "MsgBufferSize", change its value to a big one.

 

So it's not a backlight problem at all. I don't know the mechanism vnc works with OSX. Does it use the same framebuffer from the video card or a copy from OSX system directly? I'm thinking there maybe a wrong match for which part of the vram the card and the OS take as display area. If the OS put the contents to one place, but the card displayed another place, u will see only plain screen with dumb thing. Think that ur card has 1Gb ram, but only 256Mb can be utilized by RadeonHD, the code may have some issues dealing with this.

Link to comment
Share on other sites

Hello hardworking guys. My post is all about ATI Radeon HD Mobility 3430 (ID:95c2) 

I've read all the threads from top to bottom if I didn't miss a few posts. And I really didn't get if a few! people have this graphic card. because it's really hard to find any info or problem replies for that card.

And this is my question. How can I make QE/CI work for HD Mobility 3430. I've tried so many things but didn't work. I have no problem with native resolution or mouse cursor. I can handle them easily with the RadeonHD.kext. But to make some audio plug-ins work I need to fix QE/CI. And also Logic 9 needs it.

By the way, when installing Logic 9, it says i have 0 mb of VRAM. actually it is 256 mb VRAM which I can see on System Profiler. I've read about this problem too but I couldn't come to that action because of QE. 

 

Specs:

Sony Vaio VGN-NS21Z/S

Intel P8600 2.4 GHz

ATI Radeon HD Mobility 3430 256 mb

4 GB DDR2 RAM

L2: 3mb

 

OS X: 10.6.3 (iAtkos S3 v2) Snow Leopard

OS X: 10.5.6 (iDeneb v1.4) Leopard

and goes on...

I've tried all OS X which I've got. And nothing changed about QE/CI as expected.

 

And lastly, when I install 10.6.3, on System Profiler, there is no info about QE. I mean no display which is usually seen, Quartz Extreme : Not Supported. 

 

I hope somebody has some ideas about ATI Radeon HD Mobility 3430. After 2 weeks day/night trials, I had to remove OS X. Because I need OS X just for Logic 9, Pro Tools 8, Waves Bundle v7 and bla bla. 

 

Hope to see your replies guys. 

       

Link to comment
Share on other sites

Hello hardworking guys. My post is all about ATI Radeon HD Mobility 3430 (ID:95c2) 

I've read all the threads from top to bottom if I didn't miss a few posts. And I really didn't get if a few! people have this graphic card. because it's really hard to find any info or problem replies for that card.

And this is my question. How can I make QE/CI work for HD Mobility 3430. I've tried so many things but didn't work. I have no problem with native resolution or mouse cursor. I can handle them easily with the RadeonHD.kext. But to make some audio plug-ins work I need to fix QE/CI. And also Logic 9 needs it.

By the way, when installing Logic 9, it says i have 0 mb of VRAM. actually it is 256 mb VRAM which I can see on System Profiler. I've read about this problem too but I couldn't come to that action because of QE. 

 

Specs:

Sony Vaio VGN-NS21Z/S

Intel P8600 2.4 GHz

ATI Radeon HD Mobility 3430 256 mb

4 GB DDR2 RAM

L2: 3mb

 

OS X: 10.6.3 (iAtkos S3 v2) Snow Leopard

OS X: 10.5.6 (iDeneb v1.4) Leopard

and goes on...

I've tried all OS X which I've got. And nothing changed about QE/CI as expected.

 

And lastly, when I install 10.6.3, on System Profiler, there is no info about QE. I mean no display which is usually seen, Quartz Extreme : Not Supported. 

 

I hope somebody has some ideas about ATI Radeon HD Mobility 3430. After 2 weeks day/night trials, I had to remove OS X. Because I need OS X just for Logic 9, Pro Tools 8, Waves Bundle v7 and bla bla. 

 

Hope to see your replies guys. 

       

radeonhd.kext can not produce QE,CI,3D acceleration or whatever special effects.

 

It is only a framebuffer-replacementes for the various ATI**.kexts. 

 

Your applications wont work with this one, sorry .  :D

 

I know what I tell you cause I have been through all these hopes like you. We would need a comercial Ati driver or a Apple hacked kext. Both is not there.

 

personally I myself have given up for the moment. I run Linux  for internet and Vista for photoshop and co on my machine - at least these OS have working 3D. 

 

 

the OSX cds are near me.. one day i will load them again on this laptop.. but only time will tell how useful the idea is. without qe/Ci osx these days is really only halfway useable.

 

 

However I peek into this forum every few days. Again many thanks to "dong".

Link to comment
Share on other sites

One of my friends has ATI Radeon 4670 and he could make QE/CI work on his PC. And everything seems to be fine. But it's hard to decide that "no OS X won't work enough on my lap top". Because as we all, I've spent so much time for it. And I can just hope some progress on these drivers. 

Link to comment
Share on other sites

No, I'm sorry forgot to add, his computer is not a lap top. But if the vendor ID's are the same (I don't know about that), I think it would work. And in these days, he is already thinking to post a detailed info about his OS X. A very detailed one. What works, what doesn't (but almost everything is working on his PC) and how to infos. 

 

And by the way I see we are on a new page on this thread that's why I'm repeating again:

 

If someone has some ideas how to make ATI Radeon HD Mobility 3430's QE/CI work, please tell us what to do or even try. And there is no problem about framebuffer/native resolution. The only problem is Quartz Extreme...

Hope to see your replies.

Link to comment
Share on other sites

No, I'm sorry forgot to add, his computer is not a lap top. But if the vendor ID's are the same (I don't know about that), I think it would work. And in these days, he is already thinking to post a detailed info about his OS X. A very detailed one. What works, what doesn't (but almost everything is working on his PC) and how to infos. 

 

And by the way I see we are on a new page on this thread that's why I'm repeating again:

 

If someone has some ideas how to make ATI Radeon HD Mobility 3430's QE/CI work, please tell us what to do or even try. And there is no problem about framebuffer/native resolution. The only problem is Quartz Extreme...

Hope to see your replies.

 

It isn't possible because with the ati desktop are used video roms, but with laptops isn't possible extract them from the card and if Apple continue using nvidia graphics for notebooks we can't have QE/CI because there aren't any driver.

 

 

(escuse my english, I'm italian).

Link to comment
Share on other sites

Does anyone know of a good way to block the ATI kexts that RadeonHD replaces? ie. ATIFramebuffer.kext, ATIxxxxController.kext, and ATISupport.kext. These kexts create all sorts of headaches running successful system updates and a kext that blocks them would make it a lot easier for myself and all the other hackintosh users I offer support.

Link to comment
Share on other sites

Does anyone know of a good way to block the ATI kexts that RadeonHD replaces? ie. ATIFramebuffer.kext, ATIxxxxController.kext, and ATISupport.kext. These kexts create all sorts of headaches running successful system updates and a kext that blocks them would make it a lot easier for myself and all the other hackintosh users I offer support.

 

I tried editing an old version of Disabler.kext to fit the purpose but it's not working. Perhaps someone could take a quick look at it and figure out why.

RadeonHDFBDisabler.kext.zip

Link to comment
Share on other sites

just a quick reply. Only ATIxxxxController.kext and ATIRadeonX2000.kext need to be blocked. ATIFramebuffer won't load if the controller kext is not function. ATISupport.kext has no effect on RadeonHD.

Link to comment
Share on other sites

just a quick reply. Only ATIxxxxController.kext and ATIRadeonX2000.kext need to be blocked. ATIFramebuffer won't load if the controller kext is not function. ATISupport.kext has no effect on RadeonHD.

 

I'll keep that in mind for when I get the disabler kext working. Right now, the kexts I set it up to block still load.

Link to comment
Share on other sites

I'm really sorry for my ignorance but i will be gratefull if anyone can help me.....

i'have a laptop with radeon x1600 mobility (devx71c5 venx1002)

I had managed to make it work for leopard until version 10.5.8 with atiinject and other files from this post Lg W1 Pro EP00E

 

With snow leopard once the installation completes laptop doesen't show me even 1024x768.

I have managed to have control of the machine that otherwise works perfectly through VNC

I have installed the latest version of radeonhd.kext and my installation is vanilla with iatkos S3 but it doesen't seem that

gets loaded. Any help from where to start would be very helpfull.

Link to comment
Share on other sites

@dong,

 

Would you mind helping me with an off-topic xcode build problem? Thing is that I cannot build IOGraphicsFamily, but we need it to cure the Intel GMA 5700 HD Graphics video problems. Feel free to PM when you want to help (I'm just looking for someone to make it build without the errors due to missing header files). Thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...