usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingSystem.Diagnostics.CodeAnalysis;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Reflection;usingSystem.Runtime.ExceptionServices;usingSystem.Security;usingSystem.Text;usingSystem.Text.RegularExpressions;usingSystem.Threading;#if SMAPI_FOR_WINDOWSusingSystem.Windows.Forms;#endifusingNewtonsoft.Json;usingStardewModdingAPI.Events;usingStardewModdingAPI.Framework.Events;usingStardewModdingAPI.Framework.Exceptions;usingStardewModdingAPI.Framework.Logging;usingStardewModdingAPI.Framework.Models;usingStardewModdingAPI.Framework.ModHelpers;usingStardewModdingAPI.Framework.ModLoading;usingStardewModdingAPI.Framework.Patching;usingStardewModdingAPI.Framework.Reflection;usingStardewModdingAPI.Framework.Serialisation;usingStardewModdingAPI.Internal;usingStardewModdingAPI.Patches;usingStardewModdingAPI.Toolkit;usingStardewModdingAPI.Toolkit.Framework.Clients.WebApi;usingStardewModdingAPI.Toolkit.Framework.ModData;usingStardewModdingAPI.Toolkit.Serialisation;usingStardewModdingAPI.Toolkit.Utilities;usingStardewValley;usingObject=StardewValley.Object;usingThreadState=System.Threading.ThreadState;namespaceStardewModdingAPI.Framework{/// <summary>The core class which initialises and manages SMAPI.</summary>internalclassSCore:IDisposable{/********* ** Fields *********//// <summary>The log file to which to write messages.</summary>privatereadonlyLogFileManagerLogFile;/// <summary>Manages console output interception.</summary>privatereadonlyConsoleInterceptionManagerConsoleManager=newConsoleInterceptionManager();/// <summary>The core logger and monitor for SMAPI.</summary>privatereadonlyMonitorMonitor;/// <summary>The core logger and monitor on behalf of the game.</summary>privatereadonlyMonitorMonitorForGame;/// <summary>Tracks whether the game should exit immediately and any pending initialisation should be cancelled.</summary>privatereadonlyCancellationTokenSourceCancellationToken=newCancellationTokenSource();/// <summary>Simplifies access to private game code.</summary>privatereadonlyReflectorReflection=new