I embedded a font to my winform application and the font showed up on my computer as well as many others. But for some wierd reason it shows up as blank buttons (I used the font on buttons) on some peoples computers.

It is not the OS they use as many are Windows 7 Ultimate 64bit users (which I am and it works for me) as well others on Vista and XP (32bit and 64bit for all 3 different versions of OSs)

Can someone fix this problem for me

my code

[DllImport("gdi32.dll")]
        private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont, IntPtr pdv, [In] ref uint pcFonts);
        FontFamily ff;
        Font font;

        private void CargoPrivateFontCollection()
                {
                //ConvectionRegular1 is my font...
                byte[] fontArray = Myapplication.Properties.Resources.ConvectionRegular1;
                int dataLength = Myapplication.Properties.Resources.ConvectionRegular1.Length;
                
                

                IntPtr ptrData = Marshal.AllocCoTaskMem(dataLength);
                Marshal.Copy(fontArray, 0, ptrData, dataLength);
                
                
                uint cFonts = 0;
                AddFontMemResourceEx(ptrData, (uint)fontArray.Length, IntPtr.Zero, ref cFonts);
                
                PrivateFontCollection pfc = new PrivateFontCollection();

                pfc.AddMemoryFont(ptrData, dataLength);
                

                Marshal.FreeCoTaskMem(ptrData);
                
                ff = pfc.Families[0];
                font = new Font(ff, 15f, FontStyle.Bold);
                }

        private void CargoEtiqueta(Font font)
        {
            float size = 11f;
            FontStyle fontStyle = FontStyle.Regular;

            this.textBox1.Font = new Font(ff, 9, fontStyle);
            this.textBox2.Font = new Font(ff, 9, fontStyle);
            this.textBox3.Font = new Font(ff, 9, fontStyle);
            this.textBox4.Font = new Font(ff, 9, fontStyle);
            this.textBox5.Font = new Font(ff, 9, fontStyle);
            this.textBox6.Font = new Font(ff, 9, fontStyle);
            this.textBox7.Font = new Font(ff, 9, fontStyle);
            this.textBox8.Font = new Font(ff, 9, fontStyle);
            this.textBox9.Font = new Font(ff, 9, fontStyle);
            this.textBox10.Font = new Font(ff, 9, fontStyle);
            this.textBox11.Font = new Font(ff, 9, fontStyle);
            this.textBox12.Font = new Font(ff, 9, fontStyle);
            this.textBox13.Font = new Font(ff, 9, fontStyle);
            this.textBox14.Font = new Font(ff, 9, fontStyle);
            this.textBox15.Font = new Font(ff, 9, fontStyle);
            this.textBox16.Font = new Font(ff, 9, fontStyle);
            this.textBox17.Font = new Font(ff, 9, fontStyle);
            this.textBox18.Font = new Font(ff, 9, fontStyle);
            this.textBox19.Font = new Font(ff, 9, fontStyle);
            this.textBox20.Font = new Font(ff, 9, fontStyle);
            this.textBox21.Font = new Font(ff, 9, fontStyle);
            this.textBox22.Font = new Font(ff, 9, fontStyle);
            this.textBox23.Font = new Font(ff, 9, fontStyle);
            this.textBox24.Font = new Font(ff, 9, fontStyle);
            this.textBox25.Font = new Font(ff, 9, fontStyle);
            this.textBox26.Font = new Font(ff, 9, fontStyle);
            this.textBox27.Font = new Font(ff, 9, fontStyle);
            this.textBox28.Font = new Font(ff, 9, fontStyle);
            this.textBox29.Font = new Font(ff, 9, fontStyle);
            this.textBox30.Font = new Font(ff, 9, fontStyle);
            this.textBox31.Font = new Font(ff, 9, fontStyle);
            this.textBox32.Font = new Font(ff, 9, fontStyle);
            this.textBox33.Font = new Font(ff, 9, fontStyle);
            this.textBox34.Font = new Font(ff, 9, fontStyle);
            this.textBox35.Font = new Font(ff, 9, fontStyle);
            this.textBox36.Font = new Font(ff, 9, fontStyle);
            this.textBox37.Font = new Font(ff, 9, fontStyle);
            this.textBox38.Font = new Font(ff, 9, fontStyle);
            this.textBox39.Font = new Font(ff, 9, fontStyle);
            this.textBox40.Font = new Font(ff, 9, fontStyle);
            this.textBox41.Font = new Font(ff, 9, fontStyle);
            this.textBox42.Font = new Font(ff, 9, fontStyle);
            this.textBox43.Font = new Font(ff, 9, fontStyle);
            this.textBox44.Font = new Font(ff, 9, fontStyle);
            this.textBox45.Font = new Font(ff, 9, fontStyle);
            this.textBox46.Font = new Font(ff, 9, fontStyle);
            this.textBox47.Font = new Font(ff, 9, fontStyle);
            this.textBox48.Font = new Font(ff, 9, fontStyle);
            this.textBox49.Font = new Font(ff, 9, fontStyle);
            this.textBox50.Font = new Font(ff, 9, fontStyle);
            this.textBox51.Font = new Font(ff, 9, fontStyle);
            this.textBox52.Font = new Font(ff, 9, fontStyle);
            this.textBox53.Font = new Font(ff, 9, fontStyle);
            this.textBox54.Font = new Font(ff, 9, fontStyle);
            this.textBox55.Font = new Font(ff, 9, fontStyle);
            this.textBox56.Font = new Font(ff, 9, fontStyle);
            this.textBox57.Font = new Font(ff, 9, fontStyle);
            this.textBox58.Font = new Font(ff, 9, fontStyle);
            this.textBox59.Font = new Font(ff, 9, fontStyle);
            this.textBox60.Font = new Font(ff, 9, fontStyle);
            this.textBox61.Font = new Font(ff, 9, fontStyle);
            this.textBox62.Font = new Font(ff, 9, fontStyle);
            this.textBox63.Font = new Font(ff, 9, fontStyle);
            this.textBox64.Font = new Font(ff, 9, fontStyle);
            this.textBox65.Font = new Font(ff, 9, fontStyle);
            this.textBox66.Font = new Font(ff, 9, fontStyle);
            this.textBox67.Font = new Font(ff, 9, fontStyle);
            this.textBox68.Font = new Font(ff, 9, fontStyle);
            this.textBox69.Font = new Font(ff, 9, fontStyle);
            this.textBox70.Font = new Font(ff, 9, fontStyle);
            this.textBox71.Font = new Font(ff, 9, fontStyle);
            this.textBox72.Font = new Font(ff, 9, fontStyle);
            this.textBox73.Font = new Font(ff, 9, fontStyle);
            this.textBox74.Font = new Font(ff, 9, fontStyle);
            this.textBox75.Font = new Font(ff, 9, fontStyle);
            this.textBox76.Font = new Font(ff, 9, fontStyle);
            this.textBox77.Font = new Font(ff, 9, fontStyle);
            this.textBox78.Font = new Font(ff, 9, fontStyle);
            this.textBox79.Font = new Font(ff, 9, fontStyle);
            this.textBox80.Font = new Font(ff, 9, fontStyle);
            this.textBox81.Font = new Font(ff, 9, fontStyle);
            this.textBox82.Font = new Font(ff, 9, fontStyle);
            this.textBox83.Font = new Font(ff, 9, fontStyle);
            this.textBox84.Font = new Font(ff, 9, fontStyle);
            this.textBox85.Font = new Font(ff, 9, fontStyle);
            this.textBox86.Font = new Font(ff, 9, fontStyle);
            this.textBox87.Font = new Font(ff, 9, fontStyle);
            this.textBox88.Font = new Font(ff, 9, fontStyle);
            this.textBox89.Font = new Font(ff, 9, fontStyle);
            this.textBox90.Font = new Font(ff, 9, fontStyle);
            this.textBox91.Font = new Font(ff, 9, fontStyle);
            this.textBox92.Font = new Font(ff, 9, fontStyle);
            this.textBox93.Font = new Font(ff, 9, fontStyle);
            this.textBox94.Font = new Font(ff, 9, fontStyle);
            this.textBox95.Font = new Font(ff, 9, fontStyle);
            this.textBox96.Font = new Font(ff, 9, fontStyle);
            this.textBox97.Font = new Font(ff, 9, fontStyle);
            this.textBox98.Font = new Font(ff, 9, fontStyle);
            this.textBox99.Font = new Font(ff, 9, fontStyle);
            this.textBox100.Font = new Font(ff, 9, fontStyle);
            this.textBox101.Font = new Font(ff, 9, fontStyle);
            this.textBox102.Font = new Font(ff, 9, fontStyle);
            this.textBox103.Font = new Font(ff, 9, fontStyle);
            this.textBox104.Font = new Font(ff, 9, fontStyle);
            this.textBox105.Font = new Font(ff, 9, fontStyle);
            this.textBox106.Font = new Font(ff, 9, fontStyle);
            this.textBox107.Font = new Font(ff, 9, fontStyle);
            this.textBox108.Font = new Font(ff, 9, fontStyle);
            this.textBox109.Font = new Font(ff, 9, fontStyle);
            this.textBox110.Font = new Font(ff, 9, fontStyle);
            this.textBox111.Font = new Font(ff, 9, fontStyle);
            this.textBox112.Font = new Font(ff, 9, fontStyle);
            this.textBox113.Font = new Font(ff, 9, fontStyle);
            this.textBox114.Font = new Font(ff, 9, fontStyle);
            this.textBox115.Font = new Font(ff, 9, fontStyle);
            this.textBox116.Font = new Font(ff, 9, fontStyle);
            this.textBox117.Font = new Font(ff, 9, fontStyle);
            this.textBox118.Font = new Font(ff, 9, fontStyle);
            this.textBox119.Font = new Font(ff, 9, fontStyle);
            this.textBox120.Font = new Font(ff, 9, fontStyle);
            this.textBox121.Font = new Font(ff, 9, fontStyle);
            this.textBox122.Font = new Font(ff, 9, fontStyle);
            this.textBox123.Font = new Font(ff, 9, fontStyle);
            this.textBox124.Font = new Font(ff, 9, fontStyle);
            this.textBox125.Font = new Font(ff, 9, fontStyle);
            this.textBox126.Font = new Font(ff, 9, fontStyle);
            this.textBox127.Font = new Font(ff, 9, fontStyle);
            this.textBox128.Font = new Font(ff, 9, fontStyle);
            this.textBox129.Font = new Font(ff, 9, fontStyle);
            this.textBox130.Font = new Font(ff, 9, fontStyle);
            this.textBox131.Font = new Font(ff, 9, fontStyle);
            this.textBox132.Font = new Font(ff, 9, fontStyle);
            this.textBox133.Font = new Font(ff, 9, fontStyle);
            this.textBox134.Font = new Font(ff, 9, fontStyle);
            this.textBox135.Font = new Font(ff, 9, fontStyle);
            this.textBox136.Font = new Font(ff, 9, fontStyle);
            this.textBox137.Font = new Font(ff, 9, fontStyle);
            this.textBox138.Font = new Font(ff, 9, fontStyle);
            this.textBox139.Font = new Font(ff, 9, fontStyle);
            this.textBox140.Font = new Font(ff, 9, fontStyle);
            this.textBox141.Font = new Font(ff, 9, fontStyle);
            this.textBox142.Font = new Font(ff, 9, fontStyle);
            this.textBox143.Font = new Font(ff, 9, fontStyle);
            this.textBox144.Font = new Font(ff, 9, fontStyle);
            this.textBox145.Font = new Font(ff, 9, fontStyle);
            this.textBox146.Font = new Font(ff, 9, fontStyle);
            this.textBox147.Font = new Font(ff, 9, fontStyle);
            this.textBox148.Font = new Font(ff, 9, fontStyle);
            this.textBox149.Font = new Font(ff, 9, fontStyle);
            this.textBox150.Font = new Font(ff, 9, fontStyle);
            this.textBox151.Font = new Font(ff, 9, fontStyle);
            this.textBox152.Font = new Font(ff, 9, fontStyle);
            this.textBox153.Font = new Font(ff, 9, fontStyle);
            this.textBox154.Font = new Font(ff, 9, fontStyle);
            this.textBox155.Font = new Font(ff, 9, fontStyle);
            this.textBox156.Font = new Font(ff, 9, fontStyle);
            this.textBox157.Font = new Font(ff, 9, fontStyle);
            this.textBox158.Font = new Font(ff, 9, fontStyle);
            this.textBox159.Font = new Font(ff, 9, fontStyle);
            this.textBox160.Font = new Font(ff, 9, fontStyle);
            this.textBox161.Font = new Font(ff, 9, fontStyle);
            this.textBox162.Font = new Font(ff, 9, fontStyle);
            this.textBox163.Font = new Font(ff, 9, fontStyle);
            this.textBox164.Font = new Font(ff, 9, fontStyle);
            this.textBox165.Font = new Font(ff, 9, fontStyle);
            this.textBox166.Font = new Font(ff, 9, fontStyle);
            this.textBox167.Font = new Font(ff, 9, fontStyle);
            this.textBox168.Font = new Font(ff, 9, fontStyle);
            this.textBox169.Font = new Font(ff, 9, fontStyle);
            this.textBox170.Font = new Font(ff, 9, fontStyle);
            this.button1.Font = new Font(ff, 9, fontStyle);
            this.button2.Font = new Font(ff, 9, fontStyle);
            this.button3.Font = new Font(ff, 9, fontStyle);
            this.button4.Font = new Font(ff, 9, fontStyle);
            this.button5.Font = new Font(ff, 9, fontStyle);
            this.button6.Font = new Font(ff, 9, fontStyle);
            this.button7.Font = new Font(ff, 9, fontStyle);
            this.button8.Font = new Font(ff, 9, fontStyle);
            this.button9.Font = new Font(ff, 9, fontStyle);
            this.button10.Font = new Font(ff, 9, fontStyle);
            this.button11.Font = new Font(ff, 9, fontStyle);
            this.button12.Font = new Font(ff, 9, fontStyle);
            this.button13.Font = new Font(ff, 9, fontStyle);
            this.button14.Font = new Font(ff, 9, fontStyle);
            this.button15.Font = new Font(ff, 9, fontStyle);
            this.button16.Font = new Font(ff, 9, fontStyle);
            this.button17.Font = new Font(ff, 9, fontStyle);
            this.button18.Font = new Font(ff, 9, fontStyle);
            this.button19.Font = new Font(ff, 9, fontStyle);
            this.button20.Font = new Font(ff, 9, fontStyle);
            this.button21.Font = new Font(ff, 9, fontStyle);
            this.button22.Font = new Font(ff, 9, fontStyle);
            this.button23.Font = new Font(ff, 9, fontStyle);
            this.button24.Font = new Font(ff, 9, fontStyle);
            this.button25.Font = new Font(ff, 9, fontStyle);
            this.button26.Font = new Font(ff, 9, fontStyle);
            this.button27.Font = new Font(ff, 9, fontStyle);
            this.button28.Font = new Font(ff, 9, fontStyle);
            this.button29.Font = new Font(ff, 9, fontStyle);
            this.button30.Font = new Font(ff, 9, fontStyle);
            this.button31.Font = new Font(ff, 9, fontStyle);
            this.button32.Font = new Font(ff, 9, fontStyle);
            this.button33.Font = new Font(ff, 9, fontStyle);
            this.button34.Font = new Font(ff, 9, fontStyle);
            this.button40.Font = new Font(ff, 9, fontStyle);
            this.button41.Font = new Font(ff, 9, fontStyle);
            this.button42.Font = new Font(ff, 9, fontStyle);
            this.button43.Font = new Font(ff, 9, fontStyle);
            this.button44.Font = new Font(ff, 9, fontStyle);
            this.button45.Font = new Font(ff, 9, fontStyle);
            this.button46.Font = new Font(ff, 9, fontStyle);
            this.button47.Font = new Font(ff, 9, fontStyle);
            this.button48.Font = new Font(ff, 9, fontStyle);
            this.button49.Font = new Font(ff, 9, fontStyle);
            this.button50.Font = new Font(ff, 9, fontStyle);
            this.button35.Font = new Font(ff, 9, fontStyle);
            this.button36.Font = new Font(ff, 9, fontStyle);
            this.button37.Font = new Font(ff, 9, fontStyle);
            this.button38.Font = new Font(ff, 9, fontStyle);
            this.button39.Font = new Font(ff, 9, fontStyle);
            this.button56.Font = new Font(ff, 9, fontStyle);
            this.button57.Font = new Font(ff, 9, fontStyle);
            this.button58.Font = new Font(ff, 9, fontStyle);
            this.button59.Font = new Font(ff, 9, fontStyle);
            this.button60.Font = new Font(ff, 9, fontStyle);
            this.button61.Font = new Font(ff, 9, fontStyle);
            this.button62.Font = new Font(ff, 9, fontStyle);
            this.button63.Font = new Font(ff, 9, fontStyle);
            this.button64.Font = new Font(ff, 9, fontStyle);
            this.button65.Font = new Font(ff, 9, fontStyle);
            this.button66.Font = new Font(ff, 9, fontStyle);
            this.button67.Font = new Font(ff, 9, fontStyle);
            this.button68.Font = new Font(ff, 9, fontStyle);
            this.button69.Font = new Font(ff, 9, fontStyle);
            this.button70.Font = new Font(ff, 9, fontStyle);
            this.button71.Font = new Font(ff, 9, fontStyle);
            this.button72.Font = new Font(ff, 9, fontStyle);
            this.button73.Font = new Font(ff, 9, fontStyle);
            this.button74.Font = new Font(ff, 9, fontStyle);
            this.button75.Font = new Font(ff, 9, fontStyle);
            this.button76.Font = new Font(ff, 9, fontStyle);
            this.button78.Font = new Font(ff, 9, fontStyle);
            this.button79.Font = new Font(ff, 9, fontStyle);
            this.button80.Font = new Font(ff, 9, fontStyle);
            this.button81.Font = new Font(ff, 9, fontStyle);
            this.button82.Font = new Font(ff, 9, fontStyle);
            this.button83.Font = new Font(ff, 9, fontStyle);
            this.button84.Font = new Font(ff, 9, fontStyle);
            this.button85.Font = new Font(ff, 9, fontStyle);
            this.button86.Font = new Font(ff, 9, fontStyle);
            this.button87.Font = new Font(ff, 9, fontStyle);
            this.button88.Font = new Font(ff, 9, fontStyle);
            this.button89.Font = new Font(ff, 9, fontStyle);
            this.button90.Font = new Font(ff, 9, fontStyle);
            this.button91.Font = new Font(ff, 9, fontStyle);
            this.button92.Font = new Font(ff, 9, fontStyle);
            this.button93.Font = new Font(ff, 9, fontStyle);
            this.button94.Font = new Font(ff, 9, fontStyle);
            this.button95.Font = new Font(ff, 9, fontStyle);
            this.button96.Font = new Font(ff, 9, fontStyle);
            this.button97.Font = new Font(ff, 9, fontStyle);
            this.button98.Font = new Font(ff, 9, fontStyle);
            this.button99.Font = new Font(ff, 9, fontStyle);
            this.button100.Font = new Font(ff, 9, fontStyle);
            this.button101.Font = new Font(ff, 9, fontStyle);
            this.button102.Font = new Font(ff, 9, fontStyle);
            this.button103.Font = new Font(ff, 9, fontStyle);
            this.button51.Font = new Font(ff, 9, fontStyle);
            this.button52.Font = new Font(ff, 9, fontStyle);
            this.button53.Font = new Font(ff, 9, fontStyle);
            this.button54.Font = new Font(ff, 9, fontStyle);
            this.button55.Font = new Font(ff, 9, fontStyle);
            this.button104.Font = new Font(ff, 9, fontStyle);
            this.button105.Font = new Font(ff, 9, fontStyle);
            this.button106.Font = new Font(ff, 9, fontStyle);
            this.button107.Font = new Font(ff, 9, fontStyle);
            this.button108.Font = new Font(ff, 9, fontStyle);
            this.button109.Font = new Font(ff, 9, fontStyle);
            this.button110.Font = new Font(ff, 9, fontStyle);
            this.button111.Font = new Font(ff, 9, fontStyle);
            this.button112.Font = new Font(ff, 9, fontStyle);
            this.button113.Font = new Font(ff, 9, fontStyle);
            this.button114.Font = new Font(ff, 9, fontStyle);
            this.button115.Font = new Font(ff, 9, fontStyle);
            this.button116.Font = new Font(ff, 9, fontStyle);
            this.button117.Font = new Font(ff, 9, fontStyle);
            this.button118.Font = new Font(ff, 9, fontStyle);
            this.button119.Font = new Font(ff, 9, fontStyle);
            this.button120.Font = new Font(ff, 9, fontStyle);
            this.button121.Font = new Font(ff, 9, fontStyle);
            this.button122.Font = new Font(ff, 9, fontStyle);
            this.button123.Font = new Font(ff, 9, fontStyle);
            this.button124.Font = new Font(ff, 9, fontStyle);
            this.button125.Font = new Font(ff, 9, fontStyle);
            this.button126.Font = new Font(ff, 9, fontStyle);
            this.button127.Font = new Font(ff, 9, fontStyle);
            this.button128.Font = new Font(ff, 9, fontStyle);
            this.button129.Font = new Font(ff, 9, fontStyle);
            this.button130.Font = new Font(ff, 9, fontStyle);
            this.button131.Font = new Font(ff, 9, fontStyle);
            this.button132.Font = new Font(ff, 9, fontStyle);
            this.button133.Font = new Font(ff, 9, fontStyle);
            this.textBoxX1.Font = new Font(ff, 10, fontStyle);


        }


        public Form1()
        {

            InitializeComponent();
        }



        private void Form1_Load(object sender, EventArgs e)
        {
 
            CargoPrivateFontCollection();
            CargoEtiqueta(font);
            
            //other code here
            
        }

Im not sure whats preventing the font from loading on some computers. But i do have a tip for you; rather than setting the fonts of every textbox and button you can group them together in Panels then set the font on the panel. By default, controls inherit the font from their parent container. If you have changed the font of a control then it will retain those changes, but if you haven't, then changing the panels font will change the font of the controls contained within it. Saves you some 300 lines of code :)

Did you really need to post all those Control.Font Font = new Font(ff, 9, fontStyle); lines in your code sample?
It made the post unnecessarily big.:@

Not sure if this will fix your problem because it still uses the PrivateFontCollection.
However, the only time I had to use a font as a resource, this is how I did it.

using System.Runtime.InteropServices;
using System.Drawing.Text;

Have font collection and font local to the form (or Control in my case)

private PrivateFontCollection MyFonts = new PrivateFontCollection();
        private Font messageTextFont;

Get the font in the constructor after InitializeComponent

// get the message text font
            byte[] fontResource = Properties.Resources.MyFontResource;
            GCHandle fontHandle = GCHandle.Alloc(fontResource, GCHandleType.Pinned);
            MyFonts.AddMemoryFont(fontHandle.AddrOfPinnedObject(), fontResource.Length);
            fontHandle.Free();
            messageTextFont = new Font(MyFonts.Families[0], 9F, FontStyle.Regular);
            // Use font for control
            mtxtAmt.Font = messageTextFont;

Note that the font byte array is used directly by pinning it instead of copying to an unsafe memory block.
This remove the need to make the unsafe API calls.;)

Hope this helps:)

Comments
Very nice explanation!
helpful!

Thanks Ryshad, Ill do that next time...

Nick, I have those 2 references on my

using

anyway

I dont understand, do I put the the 2nd paragraph of code under form initialize ?

I think(feel) that keeping the PrivateFontCollection at form level scope might be important. (It is not GCed until the form closes.)
By putting messageTextFont at form scope it can then be used anywhere on the form.

This is the test code I used to check it works.

public partial class Form4 : Form
    {
        private PrivateFontCollection MyFonts = new PrivateFontCollection();
        private Font messageTextFont;

        public Form4()
        {
            InitializeComponent();
            // get the message text font
            byte[] fontResource = Properties.Resources.MyFontResource;
            GCHandle fontHandle = GCHandle.Alloc(fontResource, GCHandleType.Pinned);
            MyFonts.AddMemoryFont(fontHandle.AddrOfPinnedObject(), fontResource.Length);
            fontHandle.Free();
            messageTextFont = new Font(MyFonts.Families[0], 9F, FontStyle.Regular);
            // set font for control 
            mtxtAmt.Font = messageTextFont; // 
        }
        //...
    }

(I really should have just posted it like this in the first place. Sorry for the confusion.)

Right, The font works on the computers that it showed up blank in BUT ONLY ANSI characters !!!

The unicode characters come up blank. Is there a way to fix this ?

I don't know. I only ever needed the basic ansi characters in my app.
Are you sure your font file contains unicode characters?
[Edit]
If you are not sure and you have MS Word then open a doc and select Insert - Symbol...
In the dialog, select your font.
The symbol selection table will show all the character available in that font.

Edited 6 Years Ago by nick.crane: n/a

This article has been dead for over six months. Start a new discussion instead.