1. Melt butter in a large stockpot over medium heat. Add onions and cook, stirring often, until deep golden brown and caramelized, about 30-40 minutes.2. Stir in garlic until fragrant, about 1 minute. Stir in wine, scraping any browned bits from the bottom of the stockpot. Stir in beef stock, thyme, and bay leaves.3. Bring to a boil. Reduce heat and simmer, stirring occasionally, until slightly reduced, about 15-20 minutes. Remove and discard thyme sprigs and bay leaves. Stir in white wine vinegar and season with salt and pepper, to taste.4. Preheat oven to broil. Place baguette slices onto a baking sheet. Place into oven and broil until golden brown on both sides, about 1-2 minutes per side, and set aside.5. Divide soup into ramekins or ovenproof bowls. Place onto a baking sheet. Top with baguette slices to cover the surface of the soup completely and sprinkle with cheeses. Place into oven and broil until golden brown and cheeses have melted, about 2 minutes. Serve immediately.