Jump to content

15" Dell M4400 + GTX460/R9_290@8Gbps-mPCIe1^4 (PE4H 2.4a) + Win7 [hishamkali]


hishamkali

Recommended Posts


So I've been working on this egpu build off and on as a hobby, and I'm getting close to finishing. I have two Dell M4400's and a Dell E6500. This thread will focus on my quest to make a clean x4.1 PE4H setup with one of the Dell M4400s. In addition, I hope to perform some electrical wizardry to create a switchable micro HDMI input for the internal LCD.



Notebook: 15" Dell Precision M4400

CPU: Intel Core 2 Quad QX9300 @ 3.06 GHz RAM: 8.0 GB DDR2 800 Mhz Internal LCD: 1920x1200 WUXGA 2CCFL dGPU: Nvidia Quadro FX1700m BIOS: Revision A19 OS: Windows 7 Professional x64

eGPU gear

PE4H 2.4a 1x Express Card Adapter with 60cm Flat mHDMI cable 3x PM3N 3x Cable Matters mHDMI to HDMI Female adapters 3x Cable Matters mHDMI to HDMI Cable (3 feet long each) 3x P22S-P22F mPCIe Extenders 1x Corsair CX430 PSU

eGPUS(on hand): Galaxy Nvidia GTX460 768mb, Sapphire x1950 Pro eGPU(to Purchase): Diamond Radeon R9 290 or GTX 970

External Monitor: Casio XJ 245v Laser-LED Projector

eGPU Setup 1.30 software

The port layout of the Dell M4400 (and Dell E6500) is as follows

Port 1: WWAN mPCIe Port 2: WLAN mPCIe Port 3: Bluetooth mPCIe Port 4: Express Card

This port layout is great for egpus, and means we can attempt an x4.1 link. However, these systems have TOLUD = 3.5GB, and require a DSDT override for the eGPU to coexist with the dgpu (there is no igpu). I have performed such an override (my DSDT syntax was the same as reported by avlan) on the computer, extending the rootbridge to the 12.25GB + 4 GB endpoint (0x417FFFFFF). Using the 12.25GB endpoint in setup 1.3 works just fine for the memory allocation.

Installation

So far, I have managed to get the GTX 460 working at an x4.1 link. The main stumbling point was the pci compaction, which I will list below in case someone runs into the same issue. These steps assume you have already performed the DSDT override above.

1. Connect 3 PM3Ns and 1 Express Card to PE4H. Plug in eGPU and switch PSU on.

2. Boot computer normally and load Setup 1.30 (Only from disk image, USB stick install freezes after compaction currently)

3. The eGPU won't be detected on the first boot, so set x4.1 link on port 1 and reboot using the menu

4. After the reboot, go into setup 1.30 again, the egpu should be visible and at an x4.1 link. If not, a cable may be faulty or not connected well.

5. Perform PCI compaction with the following options:

Scope: All devices Endpoint: 12.25 GB Options: Close unused bridges, force32 dGPU

6. Chainload to OS, should work.

Once in Windows, go ahead and install the Nvidia GPU drivers. I used the 337.88 GeForce drivers for both GPUs. Keep in mind that with two NVIDIA GPUs, using different driver versions is a no go and will lead to instability issues. Since Nvidia has dropped support for DX10 gpus such as my FX1700m (Geforce 9700m GT) as of driver revision 340.52 , that means that upgrading to a GTX970 would prove troublesome as it requires driver revision 344. If anyone has any experience running a GTX 970 with a Nvidia DX10 dgpu let me know.

The above covers the software setup for at least the GTX460. I was not able to achive x4.1 detection on the x1950pro (it did work on x1.1 using only one cable). I suspect that I will need to play with the delay switches on the port 2 and 3 PM3Ns as their CLKRUN signals may be interfering with port 1. Nando has informed me that only 4 TX / RX pins are used on ports 2 - 4 to make the 2nd, 3rd, and 4th lanes. Thus, if I can delay the CLKRUN signals on the Port2 and 3 PM3Ns, I may be able to set an x4.1 link on port 1 before the redundant CLKRUN signal is started. For those of you that have experience with this, please let me know if you have further suggestions. Will be trying this when I get more time.

On to the physical setup. I experimented with many different adapter combinations, but I found the cablematters cables to be the absolute best. Everything else eventually gave me errors or resulted in slightly less bandwidth (indicating excessive retransmission). I'll cut it short here as this is where the majority of my time was spent. Each cable combination was tested using a CUDA based PCI express bandwidth checker and the Crysis 2 benchmark tools. Unstable links simply ended up blue screening before passing either of those tests. Port 1 is the most important port, and faulty links sometimes went unnoticed on other ports. I eliminated those by testing in x1 mode on each port independently. Only when the setup could pass that did I try an x4.1 link again. I have been using the cable setup mentioned above now for a little while, and it has passed numerous benchmarks flawlessly.

I wanted to make this a clean, internal setup, so I went with the eGPU caddy approach. Essentially, I used the P22S-P22F extenders, and removed my laptop DVD drive. I then proceeded to remove the optical drive's guts so I could use the space for the P22S-P22Fs. By happy coincidence, the width available in the optical drive slot was almost exactly with the width of 3 P22s boards. To each of the circuit boards, I attached a mHDMI to HDMI female adapter, making the whole setup more easily pluggable without removing the bottom cover. Internally, the P22S-P22F board was connected to each mPCIe slot by way of a FFC ribbon cable provided in the kit (you can also buy these on digikey or a similar electronics shop).

To make everything fit and look nice, I cut out a hole in the bottom of the optical drive casing with a dremel to enable easy connecting/disconnecting of the cables. In addition, I designed a caddy face solid model that I 3D printed at my University's 3D printing lab to make the face. I then screwed everthing together, and the result is a self contained eGPU connector optical drive module. It also has enough space for the circuitry I plan to include that would enable external input into the internal LCD.

I have included pictures of the current setup in the following dropbox folder: [URL]https://www.dropbox.com/sh/r8j8scgafditgzh/AABggihY0gK2g7-HDFmDBwAOa?dl=0[/URL]

Everything's a bit of a mess right now as I square everything away. But my plan is to make a laser cut self contained enclosure that will also double as a laptop stand. I am also looking into using some the CNC equipment around here to mill my own copper heatsink fan assembly with quick disconnect water cooling connections for dockable water cooling (still doing research on the fittings, but seems feasible using a cheap all in one cpu cooler and a concept similar to this link: [URL]https://www.youtube.com/watch?v=uhw1n1N0hD0[/URL]). Once I am done with the encloser, it should have the same planform area as the laptop and make all cables / power adapters stowable for easy portability in a backpack. The idea is to be able to pull this system out, plug one power cord into the wall, and connect the laptop using the internal LCD for a portable, powerful mobile workstation.

I'm not quite done with a full scaling performance assesment, but the numbers look good so far, here is a preview that I will update as I get further along. I'm particularly interested in trying out the R9 290 as it has good performance at an x4.1 link. The best eGPU would be a GTX 970, but I think that is out due to the aforementioned conflicting Nvidia driver version issue. I will continue to update this thread as I get further along (look for another update involving the E6500 as well).

Performance

TEST TYPE Galaxy GTX 460 768MB x4.1 PCIe Link Result
PCIe Speed Test Computer to Card Bandwidth 616 MB/s
PCIe Speed Test Card to Computer Bandwidth 810 MB/s
PCIe Speed Test Bidirectional Bandwidth 720 MB/s
3D Mark 06 13822 3D Marks
3D Mark 06 SM 2.0 Score 5874
3D Mark 06 SM.0 Score 5745
3D Mark 06 CPU Score 4340
RE5 DX9 Variable 98.0 FPS
RE5 DX9 Fixed 49.8 FPS
3D Mark Vantage P11340
3D Mark Vantage Graphics 11132
3D Mark Vantage CPU 12017
RE5 DX10 Variable 98.2 FPS
RE5 DX10 Fixed 48.9 FPS
3d Mark 11 P3144
3D Mark 11 Graphics 3031
3D Mark 11 Physics 3956
Uniengine Heaven 4.0 907
Uniengine Heaven 4.0 Avg FPS 36.0 FPS
Uniengine Heaven 4.0 Max FPS 81.2 FPS
Uniengine Heaven 4.0 Min FPS 16.5 FPS
Guild Wars FPS (Eye of North Outside) 381 FPS
COD MW2 (Opening, looking towards trainees) 30.0 FPS
DMC4 DX9 Scene 1 227 FPS
DMC4 DX9 Scene 2 178 FPS
DMC4 DX9 Scene 3 275 FPS
DMC4 DX9 Scene 4 142 FPS
Crysis 2 DX11 Xtreme Times Square Adrenaline 26.0 FPS
  • Thumbs Up 2
Link to comment
Share on other sites

@hishamkali , fitting 3xmPCIe slots via your optical bay drive is ingenious :40_002:

Would you happen to have a clearer photo of what it all looks like connected up? There is one there but unfortunately quite fuzzy.

Are you using the same modified eGPU hardware to run the E6500 noted at http://forum.techinferno.com/diy-e-gpu-projects/2109-diy-egpu-experiences-%5Bversion-2-0%5D-363.html#post106368 ?

Link to comment
Share on other sites

Nando,

I actually went and bought a Diamond R9 290 today. Testing it out now. I also uploaded some clearer pics to the dropbox folder.

So far, I can only get the R9 290 to detect and work on an x1 link using port 1. When I connect all four cables, I don't have any hangup issues during POST, but the fans spin to maximum speed and the card is not detected. I suspect all this has something to do with the PM3N's CLCKRUN delay switches. I will try switching ports 2 and 3 to have the maximum delay in the hopes of setting an x4.1 link before the CLCKRUN signal conflicts. An alternative may be to tape the offending pins, although that is something I would rather avoid.

The x1.1 R9 290 results look very promising. About twice the performance of the x4.1 GTX 460 so far.

I am using same eGPU hardware I was using with the Latitude E6500. I managed to fry the mobo with the dGPU somehow, so I bought a cheap mobo with the Intel x4500MHD igpu so that I can use my spare PE4L to do an x1.1opt link. It should be a good backup machine for family / guests (have all adapters and will use XBOX360PSU).

  • Thumbs Up 1
Link to comment
Share on other sites

Nando,

I actually went and bought a Diamond R9 290 today. Testing it out now. I also uploaded some clearer pics to the dropbox folder.

So far, I can only get the R9 290 to detect and work on an x1 link using port 1. When I connect all four cables, I don't have any hangup issues during POST, but the fans spin to maximum speed and the card is not detected. I suspect all this has something to do with the PM3N's CLCKRUN delay switches. I will try switching ports 2 and 3 to have the maximum delay in the hopes of setting an x4.1 link before the CLCKRUN signal conflicts. An alternative may be to tape the offending pins, although that is something I would rather avoid.

The x1.1 R9 290 results look very promising. About twice the performance of the x4.1 GTX 460 so far.

I am using same eGPU hardware I was using with the Latitude E6500. I managed to fry the mobo with the dGPU somehow, so I bought a cheap mobo with the Intel x4500MHD igpu so that I can use my spare PE4L to do an x1.1opt link. It should be a good backup machine for family / guests (have all adapters and will use XBOX360PSU).

Congratulations on the R9 290 purchase. It should give some spectular 3dmark6/11 bench results.

With your x4 issue, I had problems getting a x2 link happening on a HP DV4 a while back. I found BPlus PM3N 1.0/1.1 didn't start/stop the PCI CLKRUN when you pull the HDMI cable. That's a real problem as then the only way I got a successful x2 link on the DV4 was to set the port to x2, have lane2 connected and then hotplug the lane1 PM3N into the wifi slot when the GTX470 was powered up.

Not only did this cause wear of the mPCIe slot but it was dangerous as could short something. It was annoying to the point that I modified the PM3N's PERST# jumper to be used as a CLKRUN instead. There I manually jumpered lane1's CLKRUN signal after having set port1 to x2 AND having lane2 already connected.

Maybe this info can help?

Link to comment
Share on other sites

I have a question then. All of my PM3Ns are version 1.2, which has the CLCKRUN delay switch. What event is this delay relative to? From looking at the pci express pinout, each lane after one has a refclock in addition to two tx/rx differential pairs. So I guess CLCKRUN is really needed. The question is, how do I make everything start in sync?

- - - Updated - - -

Actually, nevermind. It seems that http://pinouts.ru/Slots/pci_express_pinout.shtml gives a better explanation. I believe that that small portion after the key is still the part of the first lane. All other lanes do not rely on their own independent CLCKRUN signal. Thus, it seems it would be better for me set the CLCKRUN delay on ports 2 and 4 such that an x4.1 link is set before they have a chance to mess up detection. Will try after I'm done benchmarking at x1 speeds.

Link to comment
Share on other sites

I have a question then. All of my PM3Ns are version 1.2, which has the CLCKRUN delay switch. What event is this delay relative to? From looking at the pci express pinout, each lane after one has a refclock in addition to two tx/rx differential pairs. So I guess CLCKRUN is really needed. The question is, how do I make everything start in sync?

- - - Updated - - -

Actually, nevermind. It seems that PCI Express 1x, 4x, 8x, 16x bus pinout diagram @ pinouts.ru gives a better explanation. I believe that that small portion after the key is still the part of the first lane. All other lanes do not rely on their own independent CLCKRUN signal. Thus, it seems it would be better for me set the CLCKRUN delay on ports 2 and 4 such that an x4.1 link is set before they have a chance to mess up detection. Will try after I'm done benchmarking at x1 speeds.

AFAIK, on PM3N 1.2+ the CLKRUN signal will start 7s after it's been given power if set. Hence why I'd suggest the gear by (1) set port to x4 (2) connect up lane 2-4 and finally (3) hotplug lane1 to start CLKRUN.

The alternative is, as mentioned earlier, to implement a jumper on lane1 so you can provide the GND to the CLKRUN signal to start it on demand.

Link to comment
Share on other sites

So I got the R9 290 to run in x4 mode with the following procedure:

PERST and CLCKRUN delays all set to 0.

Boot with mHDMI Connected to port 1 into setup 1.30

Change link width on port 1 to be x4.1

Connect Ports 2, 3, and 4 mHDMI cables

Send hot reset to port 1 to register the x4.1 link

Perform pci compaction, assigning egpu to 36bit space

Chainload into Windows

Unfortunately, this is not what I was going for. I was hoping that it would simply be a push of the laptop power button as it is with the GTX 460. I really am interested in trying the GTX 970, but don't know about concurrent driver support for my Quadro FX 1700m.

If I have the other mHDMI cables connected at boot, the R9 290 spins up to maximum fan speed (very loud) and eludes detection even after setting the x4.1 link and rebooting. The GTX 460 on the other hand does not exhibit this behavior. Any idea why the Radeon is doing what it's doing?

In both cases, if all four mHDMI cables are left plugged in, the eGPU will not be detected on the first try. For the Nvidia GTX460, it simply requires setting the x4.1 link speed and rebooting. As mentioned above, this procedure does not work for the R9 290.

Link to comment
Share on other sites

So I got the R9 290 to run in x4 mode with the following procedure:

PERST and CLCKRUN delays all set to 0.

Boot with mHDMI Connected to port 1 into setup 1.30

Change link width on port 1 to be x4.1

Connect Ports 2, 3, and 4 mHDMI cables

Send hot reset to port 1 to register the x4.1 link

Perform pci compaction, assigning egpu to 36bit space

Chainload into Windows

Unfortunately, this is not what I was going for. I was hoping that it would simply be a push of the laptop power button as it is with the GTX 460. I really am interested in trying the GTX 970, but don't know about concurrent driver support for my Quadro FX 1700m.

If I have the other mHDMI cables connected at boot, the R9 290 spins up to maximum fan speed (very loud) and eludes detection even after setting the x4.1 link and rebooting. The GTX 460 on the other hand does not exhibit this behavior. Any idea why the Radeon is doing what it's doing?

In both cases, if all four mHDMI cables are left plugged in, the eGPU will not be detected on the first try. For the Nvidia GTX460, it simply requires setting the x4.1 link speed and rebooting. As mentioned above, this procedure does not work for the R9 290.

Your testing is about as far as I ventured in switching a port from x1 -> x2. Only suggestion I can make is a broad one.. keep plugging away at the various possibilities and *hopefully* you'll sort out the fan issue.

If not, and you decide to go for a GTX970, then please do some benchmark runs with the QX9300 + R9_290@x4 . That would be the fastest eGPU implementation we have from a 2009 Core series notebook.

Link to comment
Share on other sites

I am in the middle of some benchmarks now. The benchmarked games are pretty much what you saw above. I have completed x1.1 testing with the R9 290 and am moving through x4.1 testing now. I got much smaller performance increases in moving from x1.1 to x4.1 with the 290 as opposed to the GTX 460. I've been looking for a working utility to try and test the real throughput of the AMD card's pcie interface, but to no avail. Pciespeedtest.exe doesn't work on my system for some reason.

I am also seeing some relatively low DX9 performance (slower than the GTX 460 in some games). Not really sure what is going on here. Maybe the R9 290 doesn't think those games are quite worth it's time and it never comes out of downclocked mode?

Let me know if you want more benchmarks in the meantime. I will update when complete. My 3d Mark 11 GPU scores are 9661 and 12836 for x1.1 and x4.1 respectively.

Link to comment
Share on other sites

So I just wanted to provide an update. I am currently testing an EVGA GTX 970 with my M4400. As I suspected, there is no way (that I have discovered) to install the r343 drivers for the GTX 970 as well as the r340 drivers for the Quadro FX 1700m (DX10 GPU at the same time). This problem is the single greatest hurdle to the egpu setup with the GTX 970.

I also have a DELL E6500 with a x9100 cpu and integrated intel graphics, so I have been testing with that configuration. I plan to make this an x1.opt setup with the GTX460, but in the meantime have been using it for x1 and x4 testing of the GTX 970. However, I am having issues with one of the mpcie ports / riser cables (port #3). It returns errors and generally offers less performance than all the other ports. Want to try this again with shorter ribbon cables later.

I'm kind of wondering if I should swap the GTX 970 back for the R9 290. The GTX 970 with the Dell E6500 is great. It doesn't even require pcie compaction (DSDT override), just port switching to enable x4.1. However, due to the aforementioned instability issue on port 3, it's still not working perfectly. The GTX 970 has superior noise and thermal characteristics as well as more advanced driver support and also doesn't require wonky hotplugging of mpcie ports.

I am also making progress on the enclosure. I have purchased a 4'x2' sheet of cheap particle board from which I will make a prototype enclosure. I have drawn up the cutout in a Google Sketchup file for use by the laser cutter at my school. The case is designed to be roughly the same planform area as the laptop, with the laptop sitting on top.

I have updated my build log dropbox link with additional pictures. The circuit board you see next to the GTX 460 on the desk is a MT6820-b that takes an external GPU input and converts it into LVDS (same signal used by laptop internal display). Found at: Amazon.com : Beautyforall MT6820-B 10 Inch To 42 Inch 5V Universal LVDS LCD Monitor Driver Controller Board With Cable : Camera & Photo . It just so happens that this pcb fits inside my egpu caddy. In combination with a small micro hdmi to vga adapter and a custom switching board I want to design and build (using a MAXIM MAX14979E LVDS switching integrated circuit), I should be able to have a switchable external input into my internal laptop LCD.

With USB boot enabled, my M4400 and E6500 boot and run startup.bat extremely quickly. I found that in my old egpu case, the R9 290 was probably not as fully inserted in the slot as it should have been, which possibly fueled its detection issues. I have since rectified that on the GTX 970, which gave me no boot at all until I removed that particular problem. I'm still learning a lot with all this, but I'm determined to see it through to eventual completion. If my Dell E6500 could support my QX9300, I would be golden now. However, I still use my laptop for intensive computational work as a laptop, so the built in Quadro is useful (GPGPU and 3D Modeling).

With that said, I'm linking to a different picture archive with pics of the GTX 970 setup. I'm going to the laser cutter tomorrow, though you could just as easily cut it out with conventional tools if you wanted. Files are included in the dropbox link:

[URL]https://www.dropbox.com/sh/r8j8scgafditgzh/AABggihY0gK2g7-HDFmDBwAOa?dl=0[/URL]

I have also completed some additional benchmarking. Here are some results in progress:

TEST TYPE
Dell M4400
Dell E6500
Dell E6500
R9 290 @x1.1 R9 290 @x4.1 % Increase GTX 460 @x1.1 GTX 460@ x4.1 % Increase GTX 970 @X1.1 GTX 970 @x4.1 % Increase
3D Mark 06 3D Marks 17082 17082 0.0% 5447 12920 137.2% 6160 15117 145.4%
3D Mark 06 SM 2.0 Score 6125 6125 0.0% 2156 6026 179.5% 2535 6755 166.5%
3D Mark 06 SM.0 Score 8988 8988 0.0% 1992 5715 186.9% 2218 7770 250.3%
3D Mark 06 CPU Score 4429 4429 0.0% 3054 3080 0.9% 3111 3103 -0.3%
3D Mark Vantage Score 18339 20015 9.1% 7283 9572 31.4% 15317 16252 6.1%
3D Mark Vantage Graphics 22634 25924 14.5% 7574 11110 46.7% 26917 30300 12.6%
3D Mark Vantage CPU 11686 11887 1.7% 6531 6764 3.6% 6680 6797 1.8%
3d Mark 11 Score 6991 8188 17.1% 2495 2922 17.1% 6370 6517 2.3%
3D Mark 11 Graphics 9661 12836 32.9% 2393 2978 24.4% 11115 13563 22.0%
3D Mark 11 Physics 3828 3967 3.6% 2697 2754 2.1% 2774 2535 -8.6%

Guild Wars FPS (Eye of North Outside) 19 65 242.1% 87 345 296.6% 150 353 135.3%
COD MW2 (Opening, looking towards trainees) 8 22 175.0% 8 30 275.0% 12 30 150.0%
Crysis 2 Adrenaline Benchmark Times Square DX 11 FPS 55.8 73.5 31.7% 17.4 25.8 48.3% 59.4 69.5 17.0%


If anyone knows how to test the pcie realworld bandwidth of a r9 290, let me know. Pciespeedtest v0.2 doesn't work for me. May have to modify its source code to include the R9 200 Series. Once again, suggestions regarding the conflicting driver situation are welcome. There is not igpu in the M4400, but maybe I can disable the dgpu in setup 1.30 such that the Quadro and GeForce are never running at the same time (giving BSOD due to conflicting NVIDIA drivers).
  • Thumbs Up 1
Link to comment
Share on other sites

So I just wanted to provide an update. I am currently testing an EVGA GTX 970 with my M4400. As I suspected, there is no way (that I have discovered) to install the r343 drivers for the GTX 970 as well as the r340 drivers for the Quadro FX 1700m (DX10 GPU at the same time). This problem is the single greatest hurdle to the egpu setup with the GTX 970.

..

If anyone knows how to test the pcie realworld bandwidth of a r9 290, let me know. Pciespeedtest v0.2 doesn't work for me. May have to modify its source code to include the R9 200 Series. Once again, suggestions regarding the conflicting driver situation are welcome. There is not igpu in the M4400, but maybe I can disable the dgpu in setup 1.30 such that the Quadro and GeForce are never running at the same time (giving BSOD due to conflicting NVIDIA drivers).

Coming along nicely there. Sry to hear your E6500 port3 isn't working so well. I'll add that you could run the E6500 + R9 290 using x2E mode. There you're running the first two ports only, but have the port switched to x4. AMD cards getting extra performance that way .. think it somehow enables full duplexing on the AMD card? It's certainly a tangible performance benefit. Consider the performance increase on a R9 280X when I enabled x1E (1 port, in x2 mode): http://forum.techinferno.com/diy-e-gpu-projects/2109-diy-egpu-experiences-%5Bversion-2-0%5D-335.html#post96830

You could resolve your NVidia driver issues one of two ways:

1. try to add your Quadro FX 1700m to the r343 INF file. You might be lucky and still have support for the dGPU in the driver that's just been removed from the INF.

2. use Windows 8.x instead of Win7. It's newer driver model allowing the the primary video card to be disabled completely and still allow secondary ones to work. Windows 7 doesn't allow that unless you revert back to WinXP drivers, foregoing DX10 and aero support.

Link to comment
Share on other sites

I'll mention too that your E6500 isnt' seeing x1 pci-e compression enabled, as is evident by the 3dmark06 scores being 7 5k for both the GTX970 and GTX460. That's because NVidia has disabled Optimus support for the 4500MHD iGPU in newer drivers. You'd need to go back to 306.97WHQL for that: http://forum.techinferno.com/diy-e-gpu-projects/6253-t500-compat-q-4500mhd-optimus-ends-306-97whql-3.html#post89243

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.