private string Flatten() { lock (this) { if (depth > 0) { StringBuilder b = new StringBuilder(length); AppendTo(b); s1 = b.ToString(); s2 = string.Empty; depth = 0; } return (string)s1; } }