From 8d43e6ccdf7e2dfb4d064f74830b5b6256221a7a Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 3 Apr 2024 14:28:09 +1100 Subject: [PATCH 01/62] [v240402] - Fix #125 Application should now disable certain functions if the game is running. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index bcc0ce95..c54e133b 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -173,6 +173,14 @@ private void CheckIfGameRunning() SDVPlay.Enabled = false; SDVPlay.Text = "Game Running"; SDVPlay.Image = null; + + InstalledModsList.Enabled = false; + AvailableModsList.Enabled = false; + EnableModButton.Enabled = false; + DisableModButton.Enabled = false; + InstallMods.Enabled = false; + LoadPresetButton.Enabled = false; + DeleteMod.Enabled = false; } else { @@ -199,7 +207,11 @@ private void CheckIfGameRunning() SDVPlay.Image = Properties.Resources.SDVPlay_Green; break; } - + + InstalledModsList.Enabled = true; + AvailableModsList.Enabled = true; + InstallMods.Enabled = true; + LoadPresetButton.Enabled = true; } } From 3f82db211b59614b1c648862d8bcec9b9762b88e Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 3 Apr 2024 15:06:18 +1100 Subject: [PATCH 02/62] [v240402] - Partial Fix for #123 Now the application can successfully install mod updates, overwriting the mod if it's disabled. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index c54e133b..eb4c2624 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -23,6 +23,7 @@ using System.Runtime.InteropServices; using Stardew_Mod_Manager.Forms.Webapp; using System.Security.Cryptography.X509Certificates; +using Ionic.Zip; namespace Stardew_Mod_Manager { @@ -907,7 +908,7 @@ private void MakeBackupButton_Click(object sender, EventArgs e) Random rn = new Random(); intnum = rn.Next(1,98547); - ZipFile.CreateFromDirectory(TargetSave, backupsdir + GameSavesList.SelectedItem.ToString() + "_" + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + "_" + intnum + ".zip"); + System.IO.Compression.ZipFile.CreateFromDirectory(TargetSave, backupsdir + GameSavesList.SelectedItem.ToString() + "_" + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + "_" + intnum + ".zip"); MessageBox.Show("A backup of your game save: " + GameSavesList.SelectedItem.ToString() + " has been made.","Game Save Management | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) @@ -1196,7 +1197,25 @@ private void InstallFromZIP_Click(object sender, EventArgs e) //MessageBox.Show("SP: " + extractpath); //MessageBox.Show("Install " + ModZipPath.Text + " to " + extractdir); - ZipFile.ExtractToDirectory(ModZipPath.Text, extractdir); + //ZipFile.ExtractToDirectory(ModZipPath.Text, extractdir); + + Ionic.Zip.ZipFile zipFile = Ionic.Zip.ZipFile.Read(ModZipPath.Text); + { + foreach(ZipEntry zipEntry in zipFile) + { + try + { + zipEntry.Extract(extractdir, ExtractExistingFileAction.OverwriteSilently); + } + catch(Exception ex) + { + //could not extract specific file + MessageBox.Show("There was a problem installing your mod: " + Environment.NewLine + ex.Message, "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("There was a problem installing a mod. Error Message:" + ex.Message); + } + } + } + DialogResult dr = MessageBox.Show(Properties.Settings.Default.TMP_ModSafeName + " was successfully installed. To use this mod in game, you must enable it within the Mod Loader.", "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); if (dr == DialogResult.OK) { @@ -1544,7 +1563,7 @@ private void Debug_BackupMods_Click(object sender, EventArgs e) MessageBox.Show("The application may hang and become unresponsive for a moment depending on the size of your disabled mods list."); if (!File.Exists(Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip")) { - ZipFile.CreateFromDirectory(Properties.Settings.Default.InactiveModsDir, Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip"); + System.IO.Compression.ZipFile.CreateFromDirectory(Properties.Settings.Default.InactiveModsDir, Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip"); MessageBox.Show("DEBUG_OPERATIONCOMPLETED", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Information); } else From 16445957120fd1fc88f86797685248015ed8442f Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 3 Apr 2024 15:09:13 +1100 Subject: [PATCH 03/62] [v240402] - Integrate DotNetZip This will allow the application to overwrite files silently, which despite my best efforts I've been unable to do with System.IO.Compression Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../packages/DotNetZip.1.16.0/.signature.p7s | Bin 0 -> 9492 bytes .../DotNetZip.1.16.0/DotNetZip.1.16.0.nupkg | Bin 0 -> 938861 bytes .../DotNetZip.1.16.0/lib/net40/DotNetZip.dll | Bin 0 -> 472064 bytes .../DotNetZip.1.16.0/lib/net40/DotNetZip.pdb | Bin 0 -> 622080 bytes .../DotNetZip.1.16.0/lib/net40/DotNetZip.xml | 18621 ++++++++++++++++ .../lib/netstandard2.0/DotNetZip.dll | Bin 0 -> 252928 bytes .../lib/netstandard2.0/DotNetZip.pdb | Bin 0 -> 109444 bytes .../lib/netstandard2.0/DotNetZip.xml | 18116 +++++++++++++++ 8 files changed, 36737 insertions(+) create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/.signature.p7s create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/DotNetZip.1.16.0.nupkg create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.dll create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.pdb create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.xml create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.dll create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.pdb create mode 100644 source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.xml diff --git a/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/.signature.p7s b/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..ad48421bbf59b13557868a8b74c0c976c348f487 GIT binary patch literal 9492 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%0A9!W;? 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�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%0DT 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 z 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 z%0A+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%0D)f8w@)G1WqI`N*2l<7hgToU7e`MoUh37w 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�n+czy|2+d_Cche(MvKr_lw9WUQW#IlVS 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

x09ERx71Y}DFpuEIG@e{r8X2f9C#m$;2z13TV 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

v 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

Vd=#X70_$jOIXQ0aj-h4N`eE& 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%0Awp3{B8C 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 literal 0 HcmV?d00001 diff --git a/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.dll b/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.dll new file mode 100644 index 0000000000000000000000000000000000000000..e4dd8a25b9d341f8a03ca296182adcc558ef72fb GIT binary patch literal 472064 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

lCwhUyk;^hkj&UIf$;|wWV3@ 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

$EHj_$1}u}*S!owv66C+>p11G1Qk4X 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

"; - WebData.Invoke(new MethodInvoker(delegate { + WebData.Invoke(new MethodInvoker(delegate + { WebData.SelectionStart = WebData.Find(selectstart); WebData.SelectionLength = 289; @@ -935,7 +754,7 @@ private void PackInstall_Click(object sender, EventArgs e) ofd.Filter = "Stardew Valley Modpack|*.sdvmp"; ofd.Title = "Browse for a Modpack"; - if(ofd.ShowDialog() == DialogResult.OK) + if (ofd.ShowDialog() == DialogResult.OK) { Properties.Settings.Default.LaunchArguments = ofd.FileName; @@ -946,12 +765,11 @@ private void PackInstall_Click(object sender, EventArgs e) } } - //Close the Refresh Panel - private void CloseRefreshPanel_Click(object sender, EventArgs e) + //Open the Mod Update Check utility + private void CheckModUpdates_Click(object sender, EventArgs e) { - RefreshPanel.Visible = false; - RefreshPanel.Enabled = false; - RefreshObjects(); + ModUpdateCheck updatemods = new ModUpdateCheck(); + updatemods.ShowDialog(); } //When the user clicks "Check for Updates" @@ -1019,12 +837,56 @@ private void UpdateCheckLabel_LinkClicked(object sender, LinkLabelLinkClickedEve } } - //When the user clcks "Settings" - private void SettingsLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + //When the user clicks the "Launch Game" button + private void SDVPlay_Click(object sender, EventArgs e) { - SettingsLink.Enabled = false; - MainTabs.TabPages.Add(Tab_Settings); - MainTabs.SelectedTab = Tab_Settings; + int counter = 0; + foreach (Process process in Process.GetProcessesByName("Stardew Valley")) + { + //report that the game is now running. + counter++; + } + foreach (Process process in Process.GetProcessesByName("StardewModdingAPI")) + { + //report that the game is now running. + counter++; + } + + //If either SMAPI or Stardew Are running... + if (counter > 0) + { + //don't let the player open another instance, and report that the game is running. + SDVPlay.Enabled = false; + SDVPlay.Text = "Game Running"; + SDVPlay.Image = null; + } + //Issue running the game using the button :( + else + { + try + { + string SMAPI = Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe"; + Process.Start(Path.GetFullPath(SMAPI)); + } + catch (Exception ex) + { + DialogResult dr = MessageBox.Show("We weren't able to find a modded version of Stardew Valley on your PC. Would you like to launch vanilla Stardew Valley?", "Stardew Valley", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dr == DialogResult.Yes) + { + try + { + string SDV = Properties.Settings.Default.StardewDir + @"\Stardew Valley.exe"; + Process.Start(Path.GetFullPath(SDV)); + CreateErrorLog("An error occured whilst trying to find a modded Stardew Valley installation. Error Message: " + ex.Message); + } + catch (Exception ex2) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex2.Message, "Stardew Valley", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to find a modded Stardew Valley installation." + Environment.NewLine + "An error occured whilst trying to find a vanilla Stardew Valley installation. Error Message: " + ex.Message); + } + } + } + } } //Handle buttons and selections when the user selects a disabled mod... @@ -1046,7 +908,48 @@ private void AvailableModsList_SelectedIndexChanged(object sender, EventArgs e) } } - //Make a backup of the saves + //Handle the selection and deselection of enabled mods and the UI elements affected by the change + private void InstalledModsList_SelectedIndexChanged(object sender, EventArgs e) + { + if (InstalledModsList.SelectedIndex < 0) + { + //AvailableModsList.SelectedItem = null; + //AvailableModsList.SelectedIndex = -1; + } + else + { + AvailableModsList.SelectedItem = null; + AvailableModsList.SelectedIndex = -1; + DeleteMod.Enabled = false; + EnableModButton.Enabled = false; + DisableModButton.Enabled = true; + } + } + + //When the user clicks on the version number of the currently installed version of the application... + private void SoftVer_Click(object sender, EventArgs e) + { + //????? + } + + + + // _____ __ __ _ + // / ____| | \/ | | | + // | | __ __ _ _ __ ___ ___ | \ / | __ _ _ __ __ _ __ _ ___ _ __ ___ ___ _ __ | |_ + // | | |_ |/ _` | '_ ` _ \ / _ \ | |\/| |/ _` | '_ \ / _` |/ _` |/ _ \ '_ ` _ \ / _ \ '_ \| __| + // | |__| | (_| | | | | | | __/ | | | | (_| | | | | (_| | (_| | __/ | | | | | __/ | | | |_ + // \_____|\__,_|_| |_| |_|\___| |_| |_|\__,_|_| |_|\__,_|\__, |\___|_| |_| |_|\___|_| |_|\__| + // __/ | + // |___/ + + + // THE CODE BLOCKS BELOW ARE FOR THE GAME MANAGEMENT TAB OF THE APPLICATION + // This is the tab that contains the game save list, backup and web tools. + + + + //Clicking this makes a backup of the saves private void MakeBackupButton_Click(object sender, EventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1067,10 +970,10 @@ private void MakeBackupButton_Click(object sender, EventArgs e) int intnum = 0; Random rn = new Random(); - intnum = rn.Next(1,98547); + intnum = rn.Next(1, 98547); System.IO.Compression.ZipFile.CreateFromDirectory(TargetSave, backupsdir + GameSavesList.SelectedItem.ToString() + "_" + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + "_" + intnum + ".zip"); - MessageBox.Show("A backup of your game save: " + GameSavesList.SelectedItem.ToString() + " has been made.","Game Save Management | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show("A backup of your game save: " + GameSavesList.SelectedItem.ToString() + " has been made.", "Game Save Management | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { @@ -1083,7 +986,7 @@ private void MakeBackupButton_Click(object sender, EventArgs e) //Handle buttons and selections when the user selects or deselects a game save private void GameSavesList_SelectedValueChanged(object sender, EventArgs e) { - if(GameSavesList.SelectedIndex >= 0) + if (GameSavesList.SelectedIndex >= 0) { BackupSelectedFarm.Enabled = true; DeleteFarm.Enabled = true; @@ -1117,9 +1020,9 @@ private void DeleteFarmButton_Click(object sender, EventArgs e) string sdvsaves = appdata + @"\StardewValley\Saves\"; string backupsdir = Properties.Settings.Default.StardewDir + @"\savebackups\"; - DialogResult dr = MessageBox.Show("Are you sure you want to delete the game save: " + GameSavesList.SelectedItem.ToString() + "?" + Environment.NewLine + "This cannot be undone.", "Game Save Management | Stardew Valley Modded Framework",MessageBoxButtons.YesNo,MessageBoxIcon.Warning); - - if(dr == DialogResult.Yes) + DialogResult dr = MessageBox.Show("Are you sure you want to delete the game save: " + GameSavesList.SelectedItem.ToString() + "?" + Environment.NewLine + "This cannot be undone.", "Game Save Management | Stardew Valley Modded Framework", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); + + if (dr == DialogResult.Yes) { try { @@ -1151,14 +1054,14 @@ private void ViewSMAPIBackups_Click(object sender, EventArgs e) string SMAPIBackups = InstallDir + @"\save-backups"; DialogResult dr = MessageBox.Show("SMAPI comes with a save backup mod that backs up all of your farms every time you play. SMAPI will usually keep 10 snapshots of your saves if you have this mod enabled. Would you like to view your SMAPI backups?", "Game Save Management | Stardew Valley Modded Framework", MessageBoxButtons.YesNo, MessageBoxIcon.Information); - - if(dr == DialogResult.Yes) + + if (dr == DialogResult.Yes) { try { Process.Start(SMAPIBackups); } - catch(Exception ex) + catch (Exception ex) { MessageBox.Show("The SMAPI Game Backups Folder does not exist. Are you sure you've played Stardew Valley with default SMAPI mods enabled?", "Game Save Management | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Error); CreateErrorLog("There was a problem opening SMAPI backups. Error Message:" + ex.Message); @@ -1166,88 +1069,214 @@ private void ViewSMAPIBackups_Click(object sender, EventArgs e) } } - //Open the Mod Update Check utility - private void CheckModUpdates_Click(object sender, EventArgs e) + //Launches the WebTools window + private void WebToolsButton_Click(object sender, EventArgs e) { - ModUpdateCheck updatemods = new ModUpdateCheck(); - updatemods.ShowDialog(); + WebToolsHome wth = new WebToolsHome(); + wth.Show(); } - //When the user moves between tabs... - private void TabControl_SelectedIndexChanged(object sender, EventArgs e) + + + // ______ _ _ _ + // | ____| | | | | | + // | |__ ___ ___ __| | |__ __ _ ___| | __ + // | __/ _ \/ _ \/ _` | '_ \ / _` |/ __| |/ / + // | | | __/ __/ (_| | |_) | (_| | (__| < + // |_| \___|\___|\__,_|_.__/ \__,_|\___|_|\_\ + + + // THE CODE BLOCKS BELOW ARE FOR THE FEEDBACK TAB OF THE APPLICATION + // This is the tab that allows users to access error logs, submit bug reports, feedback, etc + + + + //When the user clicks the "Give Feedback" button, open to the correct tab + private void GiveFeedbackLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - if(MainTabs.SelectedTab != Tab_Settings) + if (MainTabs.SelectedTab == Tab_Feedback) { - MainTabs.TabPages.Remove(Tab_Settings); - SettingsLink.Enabled = true; + //do nothing } - - if (MainTabs.SelectedTab == Tab_Settings) + else { - SettingsLink.Enabled = false; - SDVDir.Text = Properties.Settings.Default.StardewDir; - - if (Properties.Settings.Default.CheckUpdateOnStartup == "TRUE") - { - CheckForUpdatesOnStartup.Checked = true; - } - else if (Properties.Settings.Default.CheckUpdateOnStartup == "FALSE") - { - CheckForUpdatesOnStartup.Checked = false; - } + MainTabs.TabPages.Add(Tab_Feedback); + this.MainTabs.SelectedTab = Tab_Feedback; + GiveFeedbackLink.Enabled = false; + //FBView.Url = new Uri("https://rwelabs.github.io/sdvmm/feedback.html"); + } + } - if (Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "TRUE") - { - CheckSMAPIUpdatesOnStart.Checked = true; - } - else if(Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "FALSE") - { - CheckSMAPIUpdatesOnStart.Checked = false; - } - if (Properties.Settings.Default.DoTelemetry == "TRUE") - { - TelemetryOptInOut.Text = "Opt-Out"; - TelemetrySettingStatus.Text = "You are currently sharing telemetry data with RWE Labs"; - VolunteerTelemetry.Enabled = true; - } - else if (Properties.Settings.Default.DoTelemetry == "FALSE") - { - TelemetryOptInOut.Text = "Opt-In"; - TelemetrySettingStatus.Text = "You are not currently sharing telemetry data with RWE Labs"; - VolunteerTelemetry.Enabled = false; - } - if (Properties.Settings.Default.IgnoreWebsiteWarning == "FALSE") - { - WebToolsWarningEnabled.Checked = true; - } - else if (Properties.Settings.Default.IgnoreWebsiteWarning == "TRUE") - { - WebToolsWarningEnabled.Checked = false; - } + //When the feedback tab is closed... + private void Tab_Feedback_Closed(object sender, EventArgs e) + { + MainTabs.TabPages.Add(Tab_Main); + MainTabs.TabPages.Add(Tab_GameMan); + GiveFeedbackLink.Enabled = true; + } + + //When the user clicks to report a bug + private void BugReport_Click(object sender, EventArgs e) + { + try + { + string BugReport = "https://rwe.app/sdvmm/report/issue"; + Process.Start(BugReport); + } + catch (Exception ex) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to open a bug report. Error Message: " + ex.Message); } + } + + //Opens file explorer to the error logs directory + private void ViewErrorLogs_Click(object sender, EventArgs e) + { + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); - if(MainTabs.SelectedTab == Tab_InstallOptions) + //Check for Log Directory + string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + + if (Directory.Exists(logsdir)) { - MainTabs.TabPages.Remove(Tab_Main); - MainTabs.TabPages.Remove(Tab_GameMan); + Process.Start(logsdir); + } + else if (!Directory.Exists(logsdir)) + { + Directory.CreateDirectory(logsdir); + Process.Start(logsdir); } + } - if (MainTabs.SelectedTab == Tab_Feedback) + //Clear the error logs that are actively stored on the machine. + private void ClearErrorLogs_Click(object sender, EventArgs e) + { + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); + + //Check for Log Directory + string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + + if (Directory.Exists(logsdir)) { - MainTabs.TabPages.Remove(Tab_Main); - MainTabs.TabPages.Remove(Tab_GameMan); - MainTabs.TabPages.Remove(Tab_Settings); - MainTabs.TabPages.Remove(Tab_InstallOptions); - GiveFeedbackLink.Enabled = false; + Directory.Delete(logsdir, true); } + } - if (MainTabs.SelectedTab != Tab_Feedback) + //When the user opts to give feedback, launch the feedback form in browser + private void Feedback_Feedback_Click(object sender, EventArgs e) + { + try { - GiveFeedbackLink.Enabled = true; + string FB = "https://forms.office.com/r/Uwe2984jT1"; + Process.Start(FB); + } + catch (Exception ex) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to open a feedback report. Error Message: " + ex.Message); + } + } + + //When the user opts to request a feature + private void Feedback_FeatureRequest_Click(object sender, EventArgs e) + { + try + { + string FR = "https://github.com/RWELabs/Stardew-Valley-Mod-Manager/issues/new?assignees=&labels=&template=feature-request.yaml&title=%5BFeature%5D+"; + Process.Start(FR); + } + catch (Exception ex) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to open a feature request. Error Message: " + ex.Message); + } + } + + //When the user opts to view the bug tracker/github issue tracker + private void Feedback_ViewBugTracker_Click(object sender, EventArgs e) + { + try + { + string BT = "https://github.com/RWELabs/Stardew-Valley-Mod-Manager/issues"; + Process.Start(BT); + } + catch (Exception ex) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to open the bug tracker. Error Message: " + ex.Message); + } + } + + //When the user wants to view logs from the feedback page + private void Feedback_ViewLogs_Click(object sender, EventArgs e) + { + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); + + //Check for Log Directory + string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + + try + { + if (Directory.Exists(logsdir)) + { + Process.Start(logsdir); + } + else + { + Directory.CreateDirectory(logsdir); + Process.Start(logsdir); + } + } + catch (Exception ex) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to open the bug tracker. Error Message: " + ex.Message); } } - //When the user attempts to change the Stardew Directory manually... + + + // _____ _ _ _ + // / ____| | | | | (_) + // | (___ ___| |_| |_ _ _ __ __ _ ___ + // \___ \ / _ \ __| __| | '_ \ / _` / __| + // ____) | __/ |_| |_| | | | | (_| \__ \ + // |_____/ \___|\__|\__|_|_| |_|\__, |___/ + // __/ | + // |___/ + + + // THE CODE BLOCKS BELOW ARE FOR SETTINGS + // attached to UI elements within the Settings tab of the application + + + + //When the user clcks "Settings" + //The settings tab is shown to the user + private void SettingsLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + SettingsLink.Enabled = false; + MainTabs.TabPages.Add(Tab_Settings); + MainTabs.SelectedTab = Tab_Settings; + } + + //Double Click the Settings Page Icon + //Opens a hidden window with information regarding the application. A secret credits screen, if you will. + private void SettingsIconImage_DoubleClick(object sender, EventArgs e) + { + HiddenForm hf = new HiddenForm(); + hf.ShowDialog(); + } + + //Editing the SDVDir field will change the Stardew Valley Directory path on the computer. + //Every keystroke will trigger a check to see if it is a valid path that contains the game files. private void SDVDir_TextChanged(object sender, EventArgs e) { if (File.Exists(SDVDir.Text + @"\Stardew Valley.exe")) @@ -1266,7 +1295,8 @@ private void SDVDir_TextChanged(object sender, EventArgs e) } } - //When someone successfully changes the Stardew Valley Directory manually... + //Clicking the UpdateSDVDir button will attempt to update the Stardew Valley directory. + //If the directory contains a valid Stardew Valley.exe, the path will be accepted. private void UpdateSDVDir_Click(object sender, EventArgs e) { if (File.Exists(SDVDir.Text + @"\Stardew Valley.exe")) @@ -1278,13 +1308,13 @@ private void UpdateSDVDir_Click(object sender, EventArgs e) } } - //Copies the Stardew Valley path to the clipboard. + //Clicking CopyPath copies the Stardew Valley path to the clipboard. private void CopyPath_Click(object sender, EventArgs e) { Clipboard.SetText(SDVDir.Text); } - //Opens file explorer to the Stardew Valley directory. + //Clicking FileExplorerOpen, will open file explorer to the Stardew Valley directory. private void FileExplorerOpen_Click(object sender, EventArgs e) { try @@ -1298,30 +1328,60 @@ private void FileExplorerOpen_Click(object sender, EventArgs e) } } - //Resets the settings and relaunches the application at factory defaults. - private void SettingsReset_Click(object sender, EventArgs e) + //Clicking the ThemeColor Dropdown allows the user to select a new application theme. + //Once a new theme is selected, trigger the GetColorProfile(); event to apply the changes instantly. + private void ThemeColor_SelectedValueChanged(object sender, EventArgs e) { - DialogResult dr = MessageBox.Show("Are you sure you want to reset your application settings? You will be prompted to set up Stardew Valley Mod Manager again the next time you launch it. This will not:" + Environment.NewLine + Environment.NewLine + "- Delete your mods and presets" + Environment.NewLine + "- Uninstall SMAPI" + Environment.NewLine + "- Uninstall Mod Manager", "Settings Confirmation | Stardew Valley Modded Framework", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - - if (dr == DialogResult.Yes) + switch (ThemeColor.SelectedItem.ToString()) { - Properties.Settings.Default.Reset(); + case "Colorful - Pink": + Properties.Settings.Default.ColorProfile = "PINK"; + Properties.Settings.Default.Save(); + break; + case "Colorful - Blue": + Properties.Settings.Default.ColorProfile = "BLUE"; + Properties.Settings.Default.Save(); + break; + case "Colorful - Green": + Properties.Settings.Default.ColorProfile = "GREEN"; + Properties.Settings.Default.Save(); + break; + case "Special - Birb": + Properties.Settings.Default.ColorProfile = "BIRB"; + Properties.Settings.Default.Save(); + break; + case "Colorful - Nature": + Properties.Settings.Default.ColorProfile = "NATURE"; + Properties.Settings.Default.Save(); + break; + case "Special - Lyle": + Properties.Settings.Default.ColorProfile = "LYLE"; + Properties.Settings.Default.Save(); + break; + } - Properties.Settings.Default.IsManuallyReset = "TRUE"; - Properties.Settings.Default.Save(); + GetColorProfile(); + } - Application.Exit(); + //When checked, the WebTools window will warn the user when they visit external websites. + //This is the default behavior. + private void WebToolsWarningEnabled_CheckStateChanged(object sender, EventArgs e) + { + if (WebToolsWarningEnabled.Checked == true) + { + Properties.Settings.Default.IgnoreWebsiteWarning = "FALSE"; } - else + else if (WebToolsWarningEnabled.Checked == false) { - //do nothing. + Properties.Settings.Default.IgnoreWebsiteWarning = "TRUE"; } } - //Check for app updates on startup + //When checked, the application will check for available updates every time it is launched. + //This is the default behavior. private void CheckForUpdatesOnStartup_CheckStateChanged(object sender, EventArgs e) { - if(CheckForUpdatesOnStartup.Checked == true) + if (CheckForUpdatesOnStartup.Checked == true) { Properties.Settings.Default.CheckUpdateOnStartup = "TRUE"; Properties.Settings.Default.Save(); @@ -1333,7 +1393,8 @@ private void CheckForUpdatesOnStartup_CheckStateChanged(object sender, EventArgs } } - //Check for SMAPI updates on startup + //When checked, the application will check for available SMAPI updates every time it is launched. + //This is not the default behavior. private void CheckSMAPIForUpdatesOnStartup_CheckStateChanged(object sender, EventArgs e) { if (CheckSMAPIUpdatesOnStart.Checked == true) @@ -1348,451 +1409,391 @@ private void CheckSMAPIForUpdatesOnStartup_CheckStateChanged(object sender, Even } } - //Opens the legacy settings page - private void LegacySettings_Click(object sender, EventArgs e) - { - Settings set = new Settings(); - set.Show(); - } - - //When the user clicks "Changelog" - open the changelog in browser - private void ChangelogLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + //Clicking this button allows the user to opt-out of telemetry, presenting them with the onboarding window. + //They can review the policy, see an example of telemetry and re-evaluate their decision + private void TelemetryOptInOut_Click(object sender, EventArgs e) { - Process.Start("https://github.com/RyanWalpoleEnterprises/Stardew-Valley-Mod-Manager/releases/tag/v" + Properties.Settings.Default.Version); + MainTabs.SelectedTab = Tab_Main; + TelemetryOnboarding tob = new TelemetryOnboarding(); + tob.ShowDialog(); } - //When the user clicks "install" under the mod menu options - private void InstallMods_Click(object sender, EventArgs e) + //Clicking this allows the user to view and read the telemetry policy in the browser + private void ViewTelemetryPolicy_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - MainTabs.TabPages.Add(Tab_InstallOptions); - MainTabs.SelectedTab = Tab_InstallOptions; + Process.Start("https://rwelabs.github.io/sdvmm/policies/#Telemetry"); } - //When the user clicks "Install from ZIP"/"Browse" - private void InstallFromZIP_Click(object sender, EventArgs e) + //Clicking this allows the user to voluntarily submit their telemetry data. + //Data is then uploaded to the cloud via DoTelemetricChecks.RunWorkerAsync(); + private void VolunteerTelemetry_Click(object sender, EventArgs e) { try { - string extractdir = Properties.Settings.Default.InactiveModsDir; - string extractpath = extractdir + Properties.Settings.Default.TMP_ModSafeName; - - //MessageBox.Show("SP: " + extractpath); - //MessageBox.Show("Install " + ModZipPath.Text + " to " + extractdir); - - //ZipFile.ExtractToDirectory(ModZipPath.Text, extractdir); - - Ionic.Zip.ZipFile zipFile = Ionic.Zip.ZipFile.Read(ModZipPath.Text); + DialogResult DR = MessageBox.Show("Are you sure you'd like to voluntarily submit your telemetry file? You should only do this if you've been instructed to by RWE Labs or a representative from RWE Labs.", "Voluntary Submission | RWE Labs Telemetry", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (DR == DialogResult.Yes) { - foreach(ZipEntry zipEntry in zipFile) - { - try - { - zipEntry.Extract(extractdir, ExtractExistingFileAction.OverwriteSilently); - } - catch(Exception ex) - { - //could not extract specific file - MessageBox.Show("There was a problem installing your mod: " + Environment.NewLine + ex.Message, "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("There was a problem installing a mod. Error Message:" + ex.Message); - } - } + DoTelemetricChecks.RunWorkerAsync(); + MessageBox.Show("Thank you for sending your data. We encourage you to not use this voluntary submission for the next 7 days unless otherwise instructed.", "Voluntary Submission | RWE Labs Telemetry"); } - - DialogResult dr = MessageBox.Show(Properties.Settings.Default.TMP_ModSafeName + " was successfully installed. To use this mod in game, you must enable it within the Mod Loader.", "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); - if (dr == DialogResult.OK) + else { - MainTabs.SelectedTab = Tab_Main; - InstallFromZIP.Enabled = false; - ModZipPath.Clear(); - ModsToMove.Clear(); - RefreshObjects(); - Tab_InstallOptions.Close(); + //do nothing } } catch (Exception ex) { - MessageBox.Show("There was a problem installing your mod: " + Environment.NewLine + ex.Message, "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("There was a problem installing a mod. Error Message:" + ex.Message); + MessageBox.Show("We ran into an issue sending your telemetry data to RWE Labs.", "Voluntary Submission | RWE Labs Telemetry"); } } - //When the Install Mod tab is closed, revert to normal tab order... - private void Tab_InstallOptions_Closed(object sender, EventArgs e) - { - MainTabs.TabPages.Remove(Tab_InstallOptions); - MainTabs.TabPages.Add(Tab_Main); - MainTabs.TabPages.Add(Tab_GameMan); - } - - //When the install options tab is closed... - private void CloseTab_Click(object sender, EventArgs e) + //Clicking this allows the user to manually install the bundled version of SMAPI from the Settings + //It launches straight into the SMAPI install bat. + private void InstallBundledSMAPIButton_Click(object sender, EventArgs e) { - Tab_InstallOptions.Close(); - RefreshObjects(); + //run SMAPI Bundled Installer + string BundledSMAPI = Path.GetDirectoryName(Application.ExecutablePath); + Process.Start(BundledSMAPI + @"\smapi.bat"); } - //When the main page of the application is shown, print the correct titlebar text. - private void MainPage_Shown(object sender, EventArgs e) + //Clicking this button allows the user to open the SMAPI website in their browser + private void SMAPIWebButton_Click(object sender, EventArgs e) { - this.Text = "Mod Manager | Stardew Valley Modded Framework"; - //this.TopMost = false; + Process.Start("https://smapi.io/"); } - //When the user clicks the "Launch Game" button - private void SDVPlay_Click(object sender, EventArgs e) + //Clicking this button resets the settings and relaunches the application at factory defaults. + //This is useful if the user has copied their entire AppData folder from an old computer. + private void SettingsReset_Click(object sender, EventArgs e) { - int counter = 0; - foreach (Process process in Process.GetProcessesByName("Stardew Valley")) - { - //report that the game is now running. - counter++; - } - foreach (Process process in Process.GetProcessesByName("StardewModdingAPI")) - { - //report that the game is now running. - counter++; - } + DialogResult dr = MessageBox.Show("Are you sure you want to reset your application settings? You will be prompted to set up Stardew Valley Mod Manager again the next time you launch it. This will not:" + Environment.NewLine + Environment.NewLine + "- Delete your mods and presets" + Environment.NewLine + "- Uninstall SMAPI" + Environment.NewLine + "- Uninstall Mod Manager", "Settings Confirmation | Stardew Valley Modded Framework", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - //If either SMAPI or Stardew Are running... - if (counter > 0) - { - //don't let the player open another instance, and report that the game is running. - SDVPlay.Enabled = false; - SDVPlay.Text = "Game Running"; - SDVPlay.Image = null; - } - //Issue running the game using the button :( - else + if (dr == DialogResult.Yes) { - try - { - string SMAPI = Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe"; - Process.Start(Path.GetFullPath(SMAPI)); - } - catch(Exception ex) - { - DialogResult dr = MessageBox.Show("We weren't able to find a modded version of Stardew Valley on your PC. Would you like to launch vanilla Stardew Valley?", "Stardew Valley", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - try - { - string SDV = Properties.Settings.Default.StardewDir + @"\Stardew Valley.exe"; - Process.Start(Path.GetFullPath(SDV)); - CreateErrorLog("An error occured whilst trying to find a modded Stardew Valley installation. Error Message: " + ex.Message); - } - catch (Exception ex2) - { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex2.Message, "Stardew Valley", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to find a modded Stardew Valley installation." + Environment.NewLine + "An error occured whilst trying to find a vanilla Stardew Valley installation. Error Message: " + ex.Message); - } - } - } - } - } - - //Every time the timer goes off, check again if the game is currently launched - private void CheckSDV_Tick(object sender, EventArgs e) - { - CheckIfGameRunning(); - } + Properties.Settings.Default.Reset(); - //When the user clicks the "Help" button - private void HelpLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - try - { - string Documentation = "https://rwe.app/labs/sdvmm/docs"; - Process.Start(Documentation); - } - catch (Exception ex) - { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to open a documentation link. Error Message: " + ex.Message); - } - } + Properties.Settings.Default.IsManuallyReset = "TRUE"; + Properties.Settings.Default.Save(); - //When the user clicks the "Give Feedback" button, open to the correct tab - private void GiveFeedbackLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - if(MainTabs.SelectedTab == Tab_Feedback) - { - //do nothing + Application.Exit(); } else { - MainTabs.TabPages.Add(Tab_Feedback); - this.MainTabs.SelectedTab = Tab_Feedback; - GiveFeedbackLink.Enabled = false; - //FBView.Url = new Uri("https://rwelabs.github.io/sdvmm/feedback.html"); + //do nothing. } } - //When the feedback tab is closed... - private void Tab_Feedback_Closed(object sender, EventArgs e) + //Clicking this opens the legacy settings page. + //It is not really used for anything anymore. + private void LegacySettings_Click(object sender, EventArgs e) { - MainTabs.TabPages.Add(Tab_Main); - MainTabs.TabPages.Add(Tab_GameMan); - GiveFeedbackLink.Enabled = true; + Settings set = new Settings(); + set.Show(); } - //When the user clicks to report a bug - private void BugReport_Click(object sender, EventArgs e) - { - try - { - string BugReport = "https://rwe.app/sdvmm/report/issue"; - Process.Start(BugReport); - } - catch(Exception ex) - { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to open a bug report. Error Message: " + ex.Message); - } - } - //When the user double clicks the Settings Icon Image, open the Hidden Form - private void SettingsIconImage_DoubleClick(object sender, EventArgs e) - { - HiddenForm hf = new HiddenForm(); - hf.ShowDialog(); - } - //Create an error log with a supplied message. - private void CreateErrorLog(string errorMessage) - { - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); + // ____ _ _ + // / __ \| | | | + // | | | | |_| |__ ___ _ __ + // | | | | __| '_ \ / _ \ '__| + // | |__| | |_| | | | __/ | + // \____/ \__|_| |_|\___|_| - //Check for Log Directory - string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - if (!Directory.Exists(logsdir)) - { - Directory.CreateDirectory(logsdir); - } - else - { - //Directory exists - } - ErrorLog.Clear(); - ErrorLog.AppendText("Stardew Valley Mod Manager v" + Properties.Settings.Default.Version); - ErrorLog.AppendText(Environment.NewLine + "(C) RWE Labs, 2022" + Environment.NewLine); - ErrorLog.AppendText("-------------------- ERROR LOG --------------------" + Environment.NewLine); - ErrorLog.AppendText("This log was generated at: " + LogID + Environment.NewLine + "With Stardew Valley Mod Manager version " + Properties.Settings.Default.Version + Environment.NewLine); - ErrorLog.AppendText( Environment.NewLine + errorMessage); - ErrorLog.SaveFile(SDVAppData + "log_" + LogID + ".sdvmmerrorlog", RichTextBoxStreamType.PlainText); - } - - //Create a test error message - private void debug_TestErrorLogs_Click(object sender, EventArgs e) - { - MessageBox.Show("DEBUG_TESTERRORLOGCREATED", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Information); - CreateErrorLog("This is a test. Line One." + Environment.NewLine + "handles second lines okay." + Environment.NewLine + Properties.Settings.Default.InactiveModsDir); - } + // THE CODE BLOCKS BELOW ARE FOR OTHER MISCELLANIOUS FUNCTIONS + // These may not be attached to UI objects or maybe don't have a clearly defined "home" in the application. - //Opens file explorer to the error logs directory - private void ViewErrorLogs_Click(object sender, EventArgs e) - { - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); - //Check for Log Directory - string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - if (Directory.Exists(logsdir)) - { - Process.Start(logsdir); - } - else if (!Directory.Exists(logsdir)) + //When the user moves between tabs... + //This code handles the tab movement as well as defining what tabs are visible when the user is on each tab. + private void TabControl_SelectedIndexChanged(object sender, EventArgs e) + { + if (MainTabs.SelectedTab != Tab_Settings) { - Directory.CreateDirectory(logsdir); - Process.Start(logsdir); + MainTabs.TabPages.Remove(Tab_Settings); + SettingsLink.Enabled = true; } - } - //Clear the error logs that are actively stored on the machine. - private void ClearErrorLogs_Click(object sender, EventArgs e) - { - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); + if (MainTabs.SelectedTab == Tab_Settings) + { + SettingsLink.Enabled = false; + SDVDir.Text = Properties.Settings.Default.StardewDir; - //Check for Log Directory - string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + if (Properties.Settings.Default.CheckUpdateOnStartup == "TRUE") + { + CheckForUpdatesOnStartup.Checked = true; + } + else if (Properties.Settings.Default.CheckUpdateOnStartup == "FALSE") + { + CheckForUpdatesOnStartup.Checked = false; + } - if (Directory.Exists(logsdir)) - { - Directory.Delete(logsdir, true); + if (Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "TRUE") + { + CheckSMAPIUpdatesOnStart.Checked = true; + } + else if (Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "FALSE") + { + CheckSMAPIUpdatesOnStart.Checked = false; + } + if (Properties.Settings.Default.DoTelemetry == "TRUE") + { + TelemetryOptInOut.Text = "Opt-Out"; + TelemetrySettingStatus.Text = "You are currently sharing telemetry data with RWE Labs"; + VolunteerTelemetry.Enabled = true; + } + else if (Properties.Settings.Default.DoTelemetry == "FALSE") + { + TelemetryOptInOut.Text = "Opt-In"; + TelemetrySettingStatus.Text = "You are not currently sharing telemetry data with RWE Labs"; + VolunteerTelemetry.Enabled = false; + } + if (Properties.Settings.Default.IgnoreWebsiteWarning == "FALSE") + { + WebToolsWarningEnabled.Checked = true; + } + else if (Properties.Settings.Default.IgnoreWebsiteWarning == "TRUE") + { + WebToolsWarningEnabled.Checked = false; + } } - } - //Create a test mod backup - private void Debug_BackupMods_Click(object sender, EventArgs e) - { - MessageBox.Show("The application may hang and become unresponsive for a moment depending on the size of your disabled mods list."); - if (!File.Exists(Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip")) - { - System.IO.Compression.ZipFile.CreateFromDirectory(Properties.Settings.Default.InactiveModsDir, Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip"); - MessageBox.Show("DEBUG_OPERATIONCOMPLETED", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - else + if (MainTabs.SelectedTab == Tab_InstallOptions) { - MessageBox.Show("DEBUG_FILEEXISTS","Debug Menu",MessageBoxButtons.OK, MessageBoxIcon.Warning); + MainTabs.TabPages.Remove(Tab_Main); + MainTabs.TabPages.Remove(Tab_GameMan); } - } - //When the user opts to give feedback, launch the feedback form in browser - private void Feedback_Feedback_Click(object sender, EventArgs e) - { - try - { - string FB = "https://forms.office.com/r/Uwe2984jT1"; - Process.Start(FB); - } - catch (Exception ex) + if (MainTabs.SelectedTab == Tab_Feedback) { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to open a feedback report. Error Message: " + ex.Message); + MainTabs.TabPages.Remove(Tab_Main); + MainTabs.TabPages.Remove(Tab_GameMan); + MainTabs.TabPages.Remove(Tab_Settings); + MainTabs.TabPages.Remove(Tab_InstallOptions); + GiveFeedbackLink.Enabled = false; } - } - //When the user opts to request a feature - private void Feedback_FeatureRequest_Click(object sender, EventArgs e) - { - try - { - string FR = "https://github.com/RWELabs/Stardew-Valley-Mod-Manager/issues/new?assignees=&labels=&template=feature-request.yaml&title=%5BFeature%5D+"; - Process.Start(FR); - } - catch (Exception ex) + if (MainTabs.SelectedTab != Tab_Feedback) { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to open a feature request. Error Message: " + ex.Message); + GiveFeedbackLink.Enabled = true; } } - //When the user opts to view the bug tracker/github issue tracker - private void Feedback_ViewBugTracker_Click(object sender, EventArgs e) + //Gets the color profile from user settings and apply them instantly + private void GetColorProfile() { - try - { - string BT = "https://github.com/RWELabs/Stardew-Valley-Mod-Manager/issues"; - Process.Start(BT); - } - catch (Exception ex) + //MainTabs.ActiveTabColor + //Pink - 227, 116, 137 + //Blue - 0, 169, 202 + //MessageBox.Show(Properties.Settings.Default.ColorProfile.ToString().ToUpper()); + + switch (Properties.Settings.Default.ColorProfile.ToString().ToUpper()) { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to open the bug tracker. Error Message: " + ex.Message); + case "BLUE": + MainTabs.ActiveTabColor = Color.FromArgb(255, 0, 169, 202); + Tab_Main.BackgroundImage = Resources.MainBG_Blue; + Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; + Tab_GameMan.BackgroundImage = Resources.MainBG_Blue; + Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; + ThemeColor.SelectedItem = "Colorful - Blue"; + SDVPlay.Image = Resources.SDVPlay_Blue; + break; + case "PINK": + MainTabs.ActiveTabColor = Color.FromArgb(255, 227, 116, 137); + Tab_Main.BackgroundImage = Resources.MainBG_Pink; + Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; + Tab_GameMan.BackgroundImage = Resources.MainBG_Pink; + Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; + ThemeColor.SelectedItem = "Colorful - Pink"; + SDVPlay.Image = Resources.SDVPlay_Pink; + break; + case "GREEN": + MainTabs.ActiveTabColor = Color.FromArgb(255, 100, 148, 90); + Tab_Main.BackgroundImage = Resources.MainBG_Green; + Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; + Tab_GameMan.BackgroundImage = Resources.MainBG_Green; + Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; + ThemeColor.SelectedItem = "Colorful - Green"; + SDVPlay.Image = Resources.SDVPlay_Green; + break; + case "BIRB": + MainTabs.ActiveTabColor = Color.FromArgb(255, 112, 48, 160); + Tab_Main.BackgroundImage = Resources.MainBG_Birb; + Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; + Tab_GameMan.BackgroundImage = Resources.MainBG_Birb; + Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; + ThemeColor.SelectedItem = "Special - Birb"; + SDVPlay.Image = Resources.SDVPlay_Purple; + break; + case "NATURE": + MainTabs.ActiveTabColor = Color.FromArgb(255, 0, 112, 192); + Tab_Main.BackgroundImage = Resources.MainBG_Victoria; + Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; + Tab_GameMan.BackgroundImage = Resources.MainBG_Victoria; + Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; + ThemeColor.SelectedItem = "Colorful - Nature"; + SDVPlay.Image = Resources.SDVPlay_Blue; + break; + case "LYLE": + MainTabs.ActiveTabColor = Color.FromArgb(255, 74, 130, 53); + Tab_Main.BackgroundImage = Resources.MainBG_Lyle; + Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; + Tab_GameMan.BackgroundImage = Resources.MainBG_Lyle; + Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; + ThemeColor.SelectedItem = "Special - Lyle"; + SDVPlay.Image = Resources.SDVPlay_Green; + break; } + } - //When the user wants to view logs from the feedback page - private void Feedback_ViewLogs_Click(object sender, EventArgs e) + //Checks If the Game Is Running + private void CheckIfGameRunning() { - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); - - //Check for Log Directory - string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; - - try + int counter = 0; + foreach (Process process in Process.GetProcessesByName("Stardew Valley")) { - if (Directory.Exists(logsdir)) - { - Process.Start(logsdir); - } - else - { - Directory.CreateDirectory(logsdir); - Process.Start(logsdir); - } + counter++; } - catch (Exception ex) + foreach (Process process in Process.GetProcessesByName("StardewModdingAPI")) { - MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("An error occured whilst trying to open the bug tracker. Error Message: " + ex.Message); + counter++; } - } - //When the user selects a new user theme, change the theme in settings and then apply it - private void ThemeColor_SelectedValueChanged(object sender, EventArgs e) - { - switch (ThemeColor.SelectedItem.ToString()) + if (counter > 0) { - case "Colorful - Pink": - Properties.Settings.Default.ColorProfile = "PINK"; - Properties.Settings.Default.Save(); - break; - case "Colorful - Blue": - Properties.Settings.Default.ColorProfile = "BLUE"; - Properties.Settings.Default.Save(); - break; - case "Colorful - Green": - Properties.Settings.Default.ColorProfile = "GREEN"; - Properties.Settings.Default.Save(); - break; - case "Special - Birb": - Properties.Settings.Default.ColorProfile = "BIRB"; - Properties.Settings.Default.Save(); - break; - case "Colorful - Nature": - Properties.Settings.Default.ColorProfile = "NATURE"; - Properties.Settings.Default.Save(); - break; - case "Special - Lyle": - Properties.Settings.Default.ColorProfile = "LYLE"; - Properties.Settings.Default.Save(); - break; + SDVPlay.Enabled = false; + SDVPlay.Text = "Game Running"; + SDVPlay.Image = null; + + InstalledModsList.Enabled = false; + AvailableModsList.Enabled = false; + EnableModButton.Enabled = false; + DisableModButton.Enabled = false; + InstallMods.Enabled = false; + LoadPresetButton.Enabled = false; + DeleteMod.Enabled = false; } + else + { + SDVPlay.Enabled = true; + SDVPlay.Text = "Launch Game"; + switch (Properties.Settings.Default.ColorProfile.ToString().ToUpper()) + { + case "BLUE": + SDVPlay.Image = Properties.Resources.SDVPlay_Blue; + break; + case "PINK": + SDVPlay.Image = Properties.Resources.SDVPlay_Pink; + break; + case "GREEN": + SDVPlay.Image = Properties.Resources.SDVPlay_Green; + break; + case "BIRB": + SDVPlay.Image = Properties.Resources.SDVPlay_Purple; + break; + case "NATURE": + SDVPlay.Image = Properties.Resources.SDVPlay_Blue; + break; + case "LYLE": + SDVPlay.Image = Properties.Resources.SDVPlay_Green; + break; + } - GetColorProfile(); + InstalledModsList.Enabled = true; + AvailableModsList.Enabled = true; + InstallMods.Enabled = true; + LoadPresetButton.Enabled = true; + } } - //Handle the selection and deselection of enabled mods and the UI elements affected by the change - private void InstalledModsList_SelectedIndexChanged(object sender, EventArgs e) + //Compares the SMAPI Versions (Installed to Available) + private void CompareVersions() { - if (InstalledModsList.SelectedIndex < 0) + string SMAPIVERNUM = SMAPIVer.Text; + string SMAPIVersionWithoutTrailings = SMAPIVer.Text.Remove(SMAPIVERNUM.Length - 2); + + if (SMAPIUpdateVer.Text != SMAPIVer.Text.Replace("SMAPI v", null)) { - //AvailableModsList.SelectedItem = null; - //AvailableModsList.SelectedIndex = -1; + if (SMAPIUpdateVer.Text != SMAPIVersionWithoutTrailings.Replace("SMAPI v", null)) + { + //MessageBox.Show("SMAPI CURRENT VERSION" + SMAPIVersionWithoutTrailings.Replace("SMAPI v", null)); + DialogResult dr = MessageBox.Show("SMAPI is out of date. Would you like to download the latest version now?", "SMAPI Updates Available", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvError; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "SMAPI is out of date. Click for more information."); + HelpTooltip.SetToolTip(SMAPIVer, "SMAPI is out of date. Click for more information."); + + if (dr == DialogResult.Yes) + { + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\"; + string LINK = SDVAppData + @"link.txt"; + + string ExePath = Path.GetDirectoryName(Application.ExecutablePath); + string SMAPIManager = ExePath + @"\smapiupdate.exe"; + + if (SMAPIUpdateVer.Text == null) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); + HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); + } + else + { + string UpdateURL = "https://github.com/Pathoschild/SMAPI/releases/download/" + SMAPIUpdateVer.Text + "/SMAPI-" + SMAPIUpdateVer.Text + "-installer.zip"; + Properties.Settings.Default.SMAPI_UpdateURL = UpdateURL; + Properties.Settings.Default.SMAPI_UpdateVersion = SMAPIUpdateVer.Text; + Properties.Settings.Default.Save(); + + //this.Hide(); + SMAPI_Updater su = new SMAPI_Updater(); + su.ShowDialog(); + } + } + } + + else if (SMAPIUpdateVer.Text == SMAPIVersionWithoutTrailings.Replace("SMAPI v", null)) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvvalidated; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "SMAPI is up to date!"); + HelpTooltip.SetToolTip(SMAPIVer, "SMAPI is up to date!"); + } } else { - AvailableModsList.SelectedItem = null; - AvailableModsList.SelectedIndex = -1; - DeleteMod.Enabled = false; - EnableModButton.Enabled = false; - DisableModButton.Enabled = true; + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvvalidated; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "SMAPI is up to date!"); + HelpTooltip.SetToolTip(SMAPIVer, "SMAPI is up to date!"); } - } - //When the user clicks on the version number of the currently installed version of the application... - private void SoftVer_Click(object sender, EventArgs e) - { - //????? + //this.Show(); } - //Launches the WebTools window - private void WebToolsButton_Click(object sender, EventArgs e) + //When SMAPI is not installed, this link can be clicked to install the bundled version of SMAPI + //The version bundled may not be the most up to date. + private void SMAPIBundleInstall_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - WebToolsHome wth = new WebToolsHome(); - wth.Show(); + string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; + + string appPath = Path.GetDirectoryName(Application.ExecutablePath); + Process.Start(appPath + @"\smapi.bat"); + + Application.Exit(); } //Checks whether to do telemetry or not private void CheckDoTelemetry() { - if(Properties.Settings.Default.DoTelemetry == null) + if (Properties.Settings.Default.DoTelemetry == null) { //Telemetry has not been set. TelemetryOnboarding telemetry = new TelemetryOnboarding(); telemetry.ShowDialog(); } - else if(Properties.Settings.Default.DoTelemetry == "TRUE") + else if (Properties.Settings.Default.DoTelemetry == "TRUE") { //Telemetry has been set to true //Check and Send Data @@ -1813,7 +1814,7 @@ private void CheckDoTelemetry() else if (Int16.Parse(Properties.Settings.Default.LastDataSend) >= 7) { DoTelemetricChecks.RunWorkerAsync(); - } + } } else if (Properties.Settings.Default.DoTelemetry == "FALSE") @@ -1838,13 +1839,13 @@ private void DoTelemetricChecks_DoWork(object sender, DoWorkEventArgs e) string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; string Telemetry = SDVAppData + @"telemetry.json"; - //send data - //FTP Upload using Properties.Telemetry.Default.FTPPassword and Properties.Telemetry.Default.FTPUsername + //send data + //FTP Upload using Properties.Telemetry.Default.FTPPassword and Properties.Telemetry.Default.FTPUsername WebClient client = new WebClient(); client.Credentials = new NetworkCredential(Properties.Telemetry.Default.FTPUsername, Properties.Telemetry.Default.FTPPassword); var url = Properties.Telemetry.Default.FTPDestination + DateTime.Now.ToString("dd-MM-yy-hh-mm-ss") + "_telemetry.json"; - client.UploadFile(url, Telemetry); + client.UploadFile(url, Telemetry); } //Report result of the telemetry data upload @@ -1875,78 +1876,172 @@ private void DoTelemetricChecks_RunWorkerCompleted(object sender, RunWorkerCompl } } - //Allows the user to opt-out of telemetry, presenting them with the onboarding window. - private void TelemetryOptInOut_Click(object sender, EventArgs e) + //Create an error log with a supplied message. + private void CreateErrorLog(string errorMessage) { - MainTabs.SelectedTab = Tab_Main; - TelemetryOnboarding tob = new TelemetryOnboarding(); - tob.ShowDialog(); + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + string LogID = DateTime.Now.ToString("dd-mm-yyyy-hh-mm-ss"); + + //Check for Log Directory + string logsdir = AppData + @"\RWE Labs\SDV Mod Manager\tmp\logs\"; + if (!Directory.Exists(logsdir)) + { + Directory.CreateDirectory(logsdir); + } + else + { + //Directory exists + } + + ErrorLog.Clear(); + ErrorLog.AppendText("Stardew Valley Mod Manager v" + Properties.Settings.Default.Version); + ErrorLog.AppendText(Environment.NewLine + "(C) RWE Labs, 2022" + Environment.NewLine); + ErrorLog.AppendText("-------------------- ERROR LOG --------------------" + Environment.NewLine); + ErrorLog.AppendText("This log was generated at: " + LogID + Environment.NewLine + "With Stardew Valley Mod Manager version " + Properties.Settings.Default.Version + Environment.NewLine); + ErrorLog.AppendText(Environment.NewLine + errorMessage); + ErrorLog.SaveFile(SDVAppData + "log_" + LogID + ".sdvmmerrorlog", RichTextBoxStreamType.PlainText); } - //Allows the user to view and read the telemetry policy in the browser - private void ViewTelemetryPolicy_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + //Create a test error message + private void debug_TestErrorLogs_Click(object sender, EventArgs e) { - Process.Start("https://rwelabs.github.io/sdvmm/policies/#Telemetry"); + MessageBox.Show("DEBUG_TESTERRORLOGCREATED", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Information); + CreateErrorLog("This is a test. Line One." + Environment.NewLine + "handles second lines okay." + Environment.NewLine + Properties.Settings.Default.InactiveModsDir); } - //Introduce a setting to toggle whether the WebTools browser shows warnings to users leaving the WebTools web app. - private void WebToolsWarningEnabled_CheckStateChanged(object sender, EventArgs e) + //Create a test mod backup + private void Debug_BackupMods_Click(object sender, EventArgs e) { - if(WebToolsWarningEnabled.Checked == true) + MessageBox.Show("The application may hang and become unresponsive for a moment depending on the size of your disabled mods list."); + if (!File.Exists(Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip")) { - Properties.Settings.Default.IgnoreWebsiteWarning = "FALSE"; + System.IO.Compression.ZipFile.CreateFromDirectory(Properties.Settings.Default.InactiveModsDir, Properties.Settings.Default.StardewDir + @"inactive-mods-backup.zip"); + MessageBox.Show("DEBUG_OPERATIONCOMPLETED", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Information); } - else if (WebToolsWarningEnabled.Checked == false) + else { - Properties.Settings.Default.IgnoreWebsiteWarning = "TRUE"; + MessageBox.Show("DEBUG_FILEEXISTS", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } - //Allow the user to voluntarily submit their telemetry data - private void VolunteerTelemetry_Click(object sender, EventArgs e) + //Handles the closing of the main window + private void MainPage_FormClosed(object sender, FormClosedEventArgs e) { - try + string dataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); + string updatelocation = Path.Combine(dataPath, "SDVMMlatest.exe"); + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + + //Delete update files if they exist + if (File.Exists(updatelocation)) { - DialogResult DR = MessageBox.Show("Are you sure you'd like to voluntarily submit your telemetry file? You should only do this if you've been instructed to by RWE Labs or a representative from RWE Labs.","Voluntary Submission | RWE Labs Telemetry",MessageBoxButtons.YesNo,MessageBoxIcon.Question); - if(DR == DialogResult.Yes) - { - DoTelemetricChecks.RunWorkerAsync(); - MessageBox.Show("Thank you for sending your data. We encourage you to not use this voluntary submission for the next 7 days unless otherwise instructed.","Voluntary Submission | RWE Labs Telemetry"); - } - else - { - //do nothing - } + File.Delete(updatelocation); + } + + //Reset the IsUpdateModInactive setting + Properties.Settings.Default.IsUpdateModInactive = false; + + //Hide the window if the "repairactive" setting is set to yes + if (Properties.Settings.Default.RepairActive == "Yes") + { + this.Hide(); + } - catch(Exception ex) + //Save the application settings if the "repairactive" setting is set to no + else if (Properties.Settings.Default.RepairActive == "No") { - MessageBox.Show("We ran into an issue sending your telemetry data to RWE Labs.", "Voluntary Submission | RWE Labs Telemetry"); + DoApplicationSettingSave(); } } - //Allows the user to manually install the bundled version of SMAPI during the warning panel that appears if SMAPI is not installed - private void SMAPIBundleInstall_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + //Handle saving the application settings to settings.ini + private void DoApplicationSettingSave() { - string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; + this.Hide(); - string appPath = Path.GetDirectoryName(Application.ExecutablePath); - Process.Start(appPath + @"\smapi.bat"); + int disabledmodsnumber = AvailableModsList.Items.Count; + int enabledmodsnumber = InstalledModsList.Items.Count; + Properties.Telemetry.Default.ModsEnabled = enabledmodsnumber; + Properties.Telemetry.Default.ModsDisabled = disabledmodsnumber; + Properties.Telemetry.Default.ModsInstalled = disabledmodsnumber + enabledmodsnumber; + Properties.Telemetry.Default.Save(); + + string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; + string SettingsINI = SDVAppData + @"settings.ini"; + string Telemetry = SDVAppData + @"telemetry.json"; + + FileWrite.Clear(); + + FileWrite.AppendText("$StardewDir=" + Properties.Settings.Default.StardewDir + Environment.NewLine); + FileWrite.AppendText("$ModsDir=" + Properties.Settings.Default.ModsDir + Environment.NewLine); + FileWrite.AppendText("$InactiveModsDir=" + Properties.Settings.Default.InactiveModsDir + Environment.NewLine); + FileWrite.AppendText("$PresetsDir=" + Properties.Settings.Default.PresetsDir + Environment.NewLine); + FileWrite.AppendText("$CheckUpdateOnStartup=" + Properties.Settings.Default.CheckUpdateOnStartup + Environment.NewLine); + FileWrite.AppendText("$IsManuallyReset=" + Properties.Settings.Default.IsManuallyReset + Environment.NewLine); + FileWrite.AppendText("$CheckSMAPIUpdateOnStartup=" + Properties.Settings.Default.CheckSMAPIUpdateOnStartup + Environment.NewLine); + FileWrite.AppendText("$ColorProfile=" + Properties.Settings.Default.ColorProfile + Environment.NewLine); + FileWrite.AppendText("$DoTelemetry=" + Properties.Settings.Default.DoTelemetry + Environment.NewLine); + FileWrite.SaveFile(SettingsINI, RichTextBoxStreamType.PlainText); + + FileWrite.Clear(); + + FileWrite.AppendText("{" + Environment.NewLine); + FileWrite.AppendText(" \"data\": [" + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"bool\": \"" + Properties.Settings.Default.CheckUpdateOnStartup.ToLower() + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"Check for Updates Enabled\"" + Environment.NewLine); + FileWrite.AppendText(" }," + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"string\": \"" + Properties.Settings.Default.Version.ToLower() + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"SDV Mod Manager Version\"" + Environment.NewLine); + FileWrite.AppendText(" }," + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"bool\": \"" + Properties.Settings.Default.CheckSMAPIUpdateOnStartup.ToLower() + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"Check for SMAPI Updates Enabled\"" + Environment.NewLine); + FileWrite.AppendText(" }," + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"string\": \"" + Properties.Settings.Default.ColorProfile.ToLower() + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"Color Profile Selected\"" + Environment.NewLine); + FileWrite.AppendText(" }," + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"int\": \"" + Properties.Telemetry.Default.ModsInstalled + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"Mods Installed\"" + Environment.NewLine); + FileWrite.AppendText(" }," + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"int\": \"" + Properties.Telemetry.Default.ModsEnabled + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"Mods Enabled\"" + Environment.NewLine); + FileWrite.AppendText(" }," + Environment.NewLine); + FileWrite.AppendText(" {" + Environment.NewLine); + FileWrite.AppendText(" \"int\": \"" + Properties.Telemetry.Default.ModsDisabled + "\"," + Environment.NewLine); + FileWrite.AppendText(" \"TelemetryData\": \"Mods Disabled\"" + Environment.NewLine); + FileWrite.AppendText(" }" + Environment.NewLine); + FileWrite.AppendText(" ]" + Environment.NewLine); + FileWrite.AppendText("}" + Environment.NewLine); + FileWrite.SaveFile(Telemetry, RichTextBoxStreamType.PlainText); Application.Exit(); } - //Allows the user to manually install the bundled version of SMAPI from the Settings - private void InstallBundledSMAPIButton_Click(object sender, EventArgs e) + //Close the Refresh Panel + private void CloseRefreshPanel_Click(object sender, EventArgs e) { - //run SMAPI Bundled Installer - string BundledSMAPI = Path.GetDirectoryName(Application.ExecutablePath); - Process.Start(BundledSMAPI + @"\smapi.bat"); + RefreshPanel.Visible = false; + RefreshPanel.Enabled = false; + RefreshObjects(); } - //Allows the user to open the SMAPI website in their browser - private void SMAPIWebButton_Click(object sender, EventArgs e) + //When the main page of the application is shown, print the correct titlebar text. + private void MainPage_Shown(object sender, EventArgs e) { - Process.Start("https://smapi.io/"); + this.Text = "Mod Manager | Stardew Valley Modded Framework"; + //this.TopMost = false; + } + + //Every time the timer goes off, check again if the game is currently launched + private void CheckSDV_Tick(object sender, EventArgs e) + { + CheckIfGameRunning(); } } } From 41cf1d4e30f6bad377e0e053a96587dc85b24a30 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 15:43:31 +1000 Subject: [PATCH 41/62] [v240402] - Code Cleanup Clean up and reorganise the code on the FirstRunSetup. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/First Run/FirstRunSetup.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs index 6e0ad6d1..83ade260 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs @@ -133,6 +133,15 @@ private void doIdentifyVersion() } } +// _____ _ ____ +// / ____| | / __ \ +// | (___ | |_ ___ _ __ | | | |_ __ ___ +// \___ \| __/ _ \ '_ \ | | | | '_ \ / _ \ +// ____) | || __/ |_) | | |__| | | | | __/ +// |_____/ \__\___| .__/ \____/|_| |_|\___| +// | | +// |_| + //Check the validity of the file path supplied private void SDVDirPath_TextChanged(object sender, EventArgs e) { @@ -182,6 +191,17 @@ private void timer1_Tick(object sender, EventArgs e) Step.SelectedTab = StepTwo; } + +// _____ _ _______ +// / ____| | |__ __| +// | (___ | |_ ___ _ __ | |_ _____ ___ +// \___ \| __/ _ \ '_ \ | \ \ /\ / / _ \ +// ____) | || __/ |_) | | |\ V V / (_) | +// |_____/ \__\___| .__/ |_| \_/\_/ \___/ +// | | +// |_| + + //The user clicks Continue on Step Two, to move to Step Three private void Continue_Click(object sender, EventArgs e) { From ce35bb24d4e22727bf0bc922f904e72c8bdc7f52 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 15:43:57 +1000 Subject: [PATCH 42/62] [v240402] - Update Release Objects Build v240402_1804343P Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- ... Mod Manager.csproj.GenerateResource.cache | Bin 3661 -> 3661 bytes .../obj/Release/Stardew Mod Manager.exe | 4 ++-- .../obj/Release/Stardew Mod Manager.pdb | Bin 339456 -> 339456 bytes .../Properties.Resources.Designer.cs.dll | Bin 17408 -> 17920 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache index 2e5612172dfca4e48dc7e4c9924e2779906c2996..9a69b50134dfebb4f5ace2135189295717622d1e 100644 GIT binary patch delta 30 mcmX>rb5>@9A|o6B?AZ_AMNL*`yuc>dc&Bzo{N}%m0XzW0Dh!wa delta 30 mcmX>rb5>@9A|sn&d_Sji*kpCa3vBlpLkyk6HveS|-~j-gBnk)s diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe index e5e20f1d..697b06e2 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:958a62ff43eeec42d452062a5cdb99480834d8fcf571b2091b3f9c2c17b17097 -size 8261632 +oid sha256:5c909caaa72df0b79c82c0b97b83f18423e4effbe1de1765a7829347458ac2ea +size 8265728 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb index 682427faad52647e1862f9f08027e8192964abac..4e5345d195763272695dafff242bf50e298c219a 100644 GIT binary patch delta 61385 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 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/TempPE/Properties.Resources.Designer.cs.dll index a2088236973376c7746236fead9535bdf3e922d3..e81900bae9d1d64b3de4a3a814a3d5749c24e26f 100644 GIT binary patch delta 2533 zcmZve3ry8j9LIm>e_#I>+zSHU7kK$&;DrPqB`MkDHNw&rj?toO3UpwmoL)I@G;Abrfs0*W)Iy`Q&%?8`kmiBTeW%F`JUhB`#a}%&OMy} zAJ%lSH5=I5UDKwwgcgDP{0LUaU}FG^&`@Hge?ImhY-_Lqcqqo4o$%itKIr~7m!0B_ zh3snpOunq}30}*x^w1QD6)58CS%!u=DqX@4uxY-bd5HL#icJ9rgvJBxc^rV@^!#Y0 zve3iN#3%6ki5aG)j7kE~A$wL!3-3*wtPH5UFg{sy$KnIZofu&!$j~TN<=pY{}SGU{kT#u+7KT!M7#*+TYWiaL+Duj{Pm&4d-+KC)~9O$8;pRoUqgoT5L~r z>EO2S(wvZqBc1Re`CGJJj4!ENjfX$gdk!5|*w#69XtoQju(hc=?6eE*LUqCjo2Ztn z2#uI~oS2wxYvTneStVtL4;cOc^T09Ok|1%rJn*G{Ss#rtZXI)}#$~+}FIEvzmnq1B zUoR8rG{fMs%@H{gD#iu~D;vC%K`V()^9Lk7*sjCqw*?=?wzPLbOy zsmCQ~P|^&3$s2aJlD9Q0Hv2kH_LZ`)_#9ur{XNwU;%`{&ET6yO%V$&hQC}cOHIHJQ z`s`Td8trMbBrk|HPDpx{+x(?<9kj;P95H^2>Nk($h#{g*HK_L?rQuVBr>5rU7Sb3= zy;>h0ewCy%nuSy^=>q2L&?)IU|JWb)JVeh4H>4M*^Q-<*Ww%{@cmZdPjxC_87Sdu# zCQi^`y`*ehK!dH4j^I2UdL>=t)q!x%4)jdO%#GFB@3N4dk~9@-#lZ`b7VzDHQultN z5AV@K>7C&B17UX?dWoF|vtHx{+v zwxkdiwf=Wb8Q{WqIza54GI)C0Nj@db*{*?jeiKlgc(QYK9l{hBqI#elH3g=VvlcZ7 z-4wrzYQb2FYe~1m6eSO~LxVX17NApry32SDbuCHz*vwW!R6G)@v)4Xui12uCx7qZ!q3LZv3^ScruCqhmHohE)d zy*yqssg_B#OdfBgIcAGH!pB;vtd~D;C5ZSKInR*u3pv?_@Qa;7 z6;0?ue%K1PgDK(}G;%y;x4MK=L%u^1@nWjBiu@Z?C)*+XB61pO);=0}UKPHNoIx5{ zK$=5)SVev<6Jsi<{x&ZaGR>Q4{YI06G_;Mc&PZ+Vqy^H)efPj43WL62;D;QI*L0@;T)JslM@WQuu$a? z)=APuR65PHqp#8?exi}hv`izFC{)F)GWxq!5Um~gzG5tcedsMmRk$sy!BC(Rj-&G? z9OsQ$v!aKyX1dZU7OZHhTU^*uSidyV1T77%^Zx5Z^}H)_{y+s@&lS)Fb+8x;p#@t# zEQJU(MXx<=W1hd7qbmpE_LaQzYeD{`E06U=hbDV$iMQncO87NEpN|siPETP&{K>+z X(NIwd)6g@~4vvW?6y0RqV_g3LSo`yu delta 2268 zcmYk8du-EH6vxl~_3?YMcCW5oJJ$WWtShf=xG;te_F&HPaxymEOeT-Y*gqR=6AXwO zsAIqqnAZ>>_#pU*57bZvra)$l1qmTSNq7dtpfUs(kdQ$TJ@@t|+U0(K=kq=HocrtD z?XT_WCp~>+Yu~JuEtaJqUO$8B*GVBjIT}*JY<>Z+ejE#N062M!IV;EiuFx}ZdJ-`x zA%5#Z0E6aK7Sl!&)FLx*rXNQ+-9!Q^=6LH$x}VJQl(X*mdJ2aGHn=$%=S~11SY8sX zl@>bR&|q9c=L&i!rHp=`5}?PElBKf>%}I6>uU z910E#4z>q9^i;a1d$neVQ7hButu2}ZKGgv1aM!{d!ah$$thwmvOy>0!9AH?aGB#v z@s0>I`mq*z-K839+REuQB$n&qM3pug%%~&V=$edn@+AEu!%Lc|><$qZEpmH_MCZD_ zjtj~`T>3;V>qeDnbd`Hi={cQwbMg}21dY)vf(q=6J`>a>GrAR3MQ&! zH0-G+AJZ)!uj4D;*N6X0wpJ<~^pucXdK)v>^uyREGA@z%fqFB&q=A-XRxfGh-L8#i znQh8F{X3lZkW;TRs>YDU;_=3vP-M+SDipL6a~7B{=tI>+iU`_=IVw9yvy<{2?a zgOkE*rtkVf&huIvTrdS6JZxizHG0nXMEAY~@-yOrZ#fOPXJ}`^17|p~{k@2EQxx8n zVn|6vi8fY?iR2e_io_rjDg|97Cei{y#ke(ISShGRF_HSZ1lM9>Jt@oCvRxhhfk4}L!U zuuCKz*fa-@2=Zgo9Qgk}nGol>#6FpH#n_|WDzML7GO8W-qg2!I;l$z!R40T{UGNNd z)}i`ffX6#fO(^1VBiG$fE)~FTs4%9$B6J={U9ZnYy<~e11_9&IjYVaRj-39QiwYt?u5{}Erq!g=1v%$HmQ|6t=wrv z=WCj6hUscE)7F6d)j@ZdS!5?YU>20k(r%y=w=iwyaV@ZTh&!3w`JFpy<8*BxD|IjL;NkNR@(vkvZy=*PpI5zY zV^!Dn5!4^~Odr38CYAa5yy_@nv72|+xwDw}f1v+`zOId;o>rM2=lZ#Y#kY9e1uVWH zGu60rfXC~)3A65TsNjh+@DQCfHm2|EEPG92+QH+EJYH-tXFspKrQuP8`8MVp<@!Lk zqNDKTf8}##D=gc>YqJzKzlMK@WEjz7x$j7NC+x*%UKf0UU+^n}FVbIv_0iJ&Iyw4f z!NoDrkID#fUcJBN&i3-Zs}3AfLTk@o?uj0p?zE&7i{A;@9p Date: Thu, 18 Apr 2024 15:44:18 +1000 Subject: [PATCH 43/62] [v240402] - Update Build Build v240402_1804343P Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../bin/Release/Stardew Mod Manager.exe | 4 ++-- .../Release/Stardew Mod Manager.exe.config | 3 +++ .../bin/Release/Stardew Mod Manager.pdb | Bin 339456 -> 339456 bytes 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe index e5e20f1d..697b06e2 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:958a62ff43eeec42d452062a5cdb99480834d8fcf571b2091b3f9c2c17b17097 -size 8261632 +oid sha256:5c909caaa72df0b79c82c0b97b83f18423e4effbe1de1765a7829347458ac2ea +size 8265728 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config index 493ecfb0..166617af 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config @@ -109,6 +109,9 @@ FALSE + + FALSE + \ No newline at end of file diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index 682427faad52647e1862f9f08027e8192964abac..4e5345d195763272695dafff242bf50e298c219a 100644 GIT binary patch delta 61385 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 From 4bfcf6bceb8b44f48cfbd2467fe96ff274e5f817 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 15:44:29 +1000 Subject: [PATCH 44/62] [v240402] - Update Project Files update SUO project files. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 233984 -> 236544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 493c5d783e107c174c6c83bbc6141afce879489c..5b30620ae29266e7bd1d1e6d96a4df9a73db135a 100644 GIT binary patch delta 8959 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 TVZ%_|goosrRu21-&SU-uR4{92 From c357f1022cb2719441791479fd7b7e6cef3bbb9b Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 15:48:35 +1000 Subject: [PATCH 45/62] [v240402] - Code Cleanup Reset the designer and file after code cleanup Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 236544 -> 225792 bytes .../Forms/MainPage.Designer.cs | 10 +++++----- .../Stardew Mod Manager/Forms/MainPage.cs | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 5b30620ae29266e7bd1d1e6d96a4df9a73db135a..598296c3d61a327e25d825a258eb4e814935b712 100644 GIT binary patch delta 4414 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 Date: Fri, 19 Apr 2024 10:45:26 +1000 Subject: [PATCH 46/62] [v240402] - Update Version Number Update version number to v240402 in internal settings and assembly information. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Properties/AssemblyInfo.cs | 6 +++--- .../Stardew Mod Manager/Properties/Settings.Designer.cs | 2 +- .../Stardew Mod Manager/Properties/Settings.settings | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/AssemblyInfo.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/AssemblyInfo.cs index 287f6d82..8686a86d 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/AssemblyInfo.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/AssemblyInfo.cs @@ -6,7 +6,7 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("Stardew Mod Manager and Modded Framework")] +[assembly: AssemblyTitle("Stardew Valley Mod Manager and Modded Framework")] [assembly: AssemblyDescription("Manage your mods and install modpacks with just a few clicks using Stardew Mod Manager and Modded Framework.")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("RWE Labs, Ryan Walpole Enterprises")] @@ -33,6 +33,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("24.04.00.01")] -[assembly: AssemblyFileVersion("24.04.00.01")] +[assembly: AssemblyVersion("24.04.00.02")] +[assembly: AssemblyFileVersion("24.04.00.02")] [assembly: NeutralResourcesLanguage("en-AU")] diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs index d3799860..fd6f23cc 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs @@ -145,7 +145,7 @@ public string IsNetworkConnected { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("240401")] + [global::System.Configuration.DefaultSettingValueAttribute("240402")] public string Version { get { return ((string)(this["Version"])); diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings index 8329060d..300e7198 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings @@ -33,7 +33,7 @@ - 240401 + 240402 TRUE From de183c22fe816499c5238f798e374a9431ac2381 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 10:46:20 +1000 Subject: [PATCH 47/62] [v240402] - Build Update (v240402_19041045A) Build for testing: v240402_19041045A. Requires testing to launch arguments with the C:\ stardewdir location. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 225792 -> 231424 bytes .../bin/Release/Stardew Mod Manager.exe | 2 +- .../Release/Stardew Mod Manager.exe.config | 2 +- .../bin/Release/Stardew Mod Manager.pdb | Bin 339456 -> 339456 bytes .../obj/Release/Stardew Mod Manager.exe | 2 +- .../obj/Release/Stardew Mod Manager.pdb | Bin 339456 -> 339456 bytes 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 598296c3d61a327e25d825a258eb4e814935b712..e2276c169324b68a5306c2a5ca2ddefc6ea68da7 100644 GIT binary patch delta 7554 zcmd^^2~<>9n#cL>t6~$e5Cl}zQcFZbVF5(}3RtXy3yb?Mn@iHRU@UQ$N@8rgkFlk$ z&CQr(+J+p=q-{kCdA1rYm+rAW(?-*dNr-lcNhk57$0UwUYkCaxzeSZ2rH|9`oS8Xi zp6AE??sxCI%eUP3UTOcNw|!^uPLq-OcrKlfPZdNh__njNQ)(4Z115uFP{g0RUVE_G zKn}J%SU39pw{F(8QzaT)|G?L?iT-+s@_ybiIgIOr!)OV=%?bmEpv&~?OC$8$uGo4% z1?{(C(BcZ@q#0N?15!M|?45a@(upz)gn)S<2xNd9FdP_w9>joiKn{2h_eY_eju~n_ zbqmUMe3NEi{}O2ZQOgDsK`4-SEZ_$<5sUp$3kC~;6)XTl!A#sG*A)vn8cg!k=R-~a znIIQLfJJBvM_GX~5#<0-0H%RtFqs>*18bL{RfF18l+xh&kY|HAU@l03elW`3AP%IV zJ_My)h4)&7`m%1iG|18DC)Qh2z?A5%W!;M%KDdL8T@6@Pr8lg5^p-1HLER|DyG z8<6@`l+x`|_FmHMQtrv^QZL;uOX>F6SPk6X+pQ?~G;q5nvUUbq9(KLFYaa9?&~YS~ z4pxE^Alu~S4F)L>g?) zI!Kd@hddCh1G0{M^jV2E*>9GolydhN$?2w-ZF!!$jN)Ek6_9#)J?pd7$EOSm86;Bi z!)}eTz5;dW+owHx8GHdi246am{*ntTg1iQpfV|IpZARS=%K5#3)3u2>SmYfNGvp*- z0m&c*q=KT zFbm8EbHH3M56lM(z(TMHl!7u)4k|z;SPa~Is4H9Q2y*?e?x~ph@Xm;S1y8!4B@gyg z;n3S?6<@6{@|Ql8N0;~HX44t}5B+8~jq#eHQvygHLh@Mjwri(i7>)C8A3u#FIGdkl z@!S?%6hJawV!HKne6Hblf+zDc%*1Vdig>mm-Jy%(QTo}mtmla_qnvoEoOrWuiJZpA z`OWZ&q=D$e|CkfbhXjXn+lcKBoxy1sU|{@gL~PHq(=+^b@C&5j>-tQ@)C-(?gQ16U zHlLOopppFcW<0FqGeJICyj$hA+GeL=*cEbw+bG7lI=ql%cddL1ggNhy@C$S}+!koG zIY`>AhW|vIN>=7N=O#2!UD-CiZT23j;3u^s>#EIs%bbl37GKA%U87`VjYPu6fKebB zNI%4)G=ednx{1GaHX_x6n!IBcrXA;Lk-d$m=Xa}Tb(6CpFU2!EGz6)CKUasz5qSL1 zLi>$@ROo3LLaz> zb~K9Xj#knTzWQjbFujUE3q$1A`uaLPxx?=)vy+*x`_qp^-!_K5Zrh`EtT@fHFOTP} z>RI0lm}g{fzP@T}!%o&>O(TD4of~pRIhi*9FCj3Pin}tcLGpD
JNY;}Um=adgkxjJ70P`M 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 K#&`Fy$o~QhXaQRQ diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe index 697b06e2..b6ab8c65 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c909caaa72df0b79c82c0b97b83f18423e4effbe1de1765a7829347458ac2ea +oid sha256:9a113be6e7f4d592eca3cd9544f826fb995a7297138211c5b0d7428f082d1fdb size 8265728 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config index 166617af..60594378 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config @@ -71,7 +71,7 @@ - 240401 + 240402 TRUE diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index 4e5345d195763272695dafff242bf50e298c219a..0f0eb8beed2e4089c8eac0eb315286f2c07e9fa8 100644 GIT binary patch delta 463 zcmZp;Bhqk3WP^vC!WY*4W>eAxjI_!cqigR7dZkQAKOu23u4js~|BG)a&p0+Z&S0Fx z<)LuN!+G+b?Z1nCW%M4s(0N&r>TDZ zd49pFq%^LL-ToTqv%m^dPMET6kBxQOd}d|}6H9Q->eR_5b8fH%WY~0V7MQ!0k@@kd z*N!<4v%_loO^bT!mj6HlLZ9!o-q$*j#zC$($Q3_ZLiQ*eo!2DS9wPc2~F&QZm3fSI7Twx4KXv8k0Xxg>ayk%56h^a{VR dGXEck72no`9Enq2wq1sc<%R5a7CF{G`~ZXC+06g| diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe index 697b06e2..b6ab8c65 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c909caaa72df0b79c82c0b97b83f18423e4effbe1de1765a7829347458ac2ea +oid sha256:9a113be6e7f4d592eca3cd9544f826fb995a7297138211c5b0d7428f082d1fdb size 8265728 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb index 4e5345d195763272695dafff242bf50e298c219a..0f0eb8beed2e4089c8eac0eb315286f2c07e9fa8 100644 GIT binary patch delta 463 zcmZp;Bhqk3WP^vC!WY*4W>eAxjI_!cqigR7dZkQAKOu23u4js~|BG)a&p0+Z&S0Fx z<)LuN!+G+b?Z1nCW%M4s(0N&r>TDZ zd49pFq%^LL-ToTqv%m^dPMET6kBxQOd}d|}6H9Q->eR_5b8fH%WY~0V7MQ!0k@@kd z*N!<4v%_loO^bT!mj6HlLZ9!o-q$*j#zC$($Q3_ZLiQ*eo!2DS9wPc2~F&QZm3fSI7Twx4KXv8k0Xxg>ayk%56h^a{VR dGXEck72no`9Enq2wq1sc<%R5a7CF{G`~ZXC+06g| From e72812a6afcfcbbcd0ac6733723cdd829d56e691 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 10:55:41 +1000 Subject: [PATCH 48/62] [v240402] - Update Bundled SMAPI Bundled SMAPI version now 4.0.7, the most up to date available. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../windows/SMAPI.Installer.deps.json | 16 +++--- .../internal/windows/SMAPI.Installer.dll | Bin 45568 -> 48128 bytes .../internal/windows/SMAPI.Installer.exe | 2 +- .../windows/SMAPI.Toolkit.CoreInterfaces.dll | Bin 13824 -> 13824 bytes .../windows/SMAPI.Toolkit.CoreInterfaces.xml | 3 ++ .../internal/windows/SMAPI.Toolkit.dll | Bin 123392 -> 125440 bytes .../internal/windows/SMAPI.Toolkit.xml | 46 ++++++++++-------- .../bin/Release/internal/windows/install.dat | Bin 1872889 -> 1872005 bytes 8 files changed, 39 insertions(+), 28 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Installer.deps.json b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Installer.deps.json index 4b7396fe..8a52d4ab 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Installer.deps.json +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Installer.deps.json @@ -7,11 +7,11 @@ "targets": { ".NETCoreApp,Version=v6.0": {}, ".NETCoreApp,Version=v6.0/win-x64": { - "SMAPI.Installer/4.0.2": { + "SMAPI.Installer/4.0.7": { "dependencies": { "Microsoft.NET.ILLink.Analyzers": "7.0.100-1.23211.1", "Microsoft.NET.ILLink.Tasks": "7.0.100-1.23211.1", - "SMAPI.Toolkit": "4.0.2", + "SMAPI.Toolkit": "4.0.7", "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "6.0.27" }, "runtime": { @@ -1464,13 +1464,13 @@ } } }, - "SMAPI.Toolkit/4.0.2": { + "SMAPI.Toolkit/4.0.7": { "dependencies": { "HtmlAgilityPack": "1.11.52", "Microsoft.Win32.Registry": "5.0.0", "Newtonsoft.Json": "13.0.3", "Pathoschild.Http.FluentClient": "4.3.0", - "SMAPI.Toolkit.CoreInterfaces": "4.0.2", + "SMAPI.Toolkit.CoreInterfaces": "4.0.7", "System.Management": "5.0.0", "VdfConverter": "1.0.3" }, @@ -1478,7 +1478,7 @@ "SMAPI.Toolkit.dll": {} } }, - "SMAPI.Toolkit.CoreInterfaces/4.0.2": { + "SMAPI.Toolkit.CoreInterfaces/4.0.7": { "runtime": { "SMAPI.Toolkit.CoreInterfaces.dll": {} } @@ -1486,7 +1486,7 @@ } }, "libraries": { - "SMAPI.Installer/4.0.2": { + "SMAPI.Installer/4.0.7": { "type": "project", "serviceable": false, "sha512": "" @@ -2301,12 +2301,12 @@ "path": "vdfconverter/1.0.3", "hashPath": "vdfconverter.1.0.3.nupkg.sha512" }, - "SMAPI.Toolkit/4.0.2": { + "SMAPI.Toolkit/4.0.7": { "type": "project", "serviceable": false, "sha512": "" }, - "SMAPI.Toolkit.CoreInterfaces/4.0.2": { + "SMAPI.Toolkit.CoreInterfaces/4.0.7": { "type": "project", "serviceable": false, "sha512": "" diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Installer.dll b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Installer.dll index 129bdcbafc672c6befb1aaabe0026376a5d83638..7abeea26591fd99ee173c98d4383f73f8d1b395e 100644 GIT binary patch delta 25195 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 LH32uXA+Fy8hR^FA delta 22846 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 delta 8381 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 C&gZ-U diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.CoreInterfaces.xml b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.CoreInterfaces.xml index 339b5d97..80b8d688 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.CoreInterfaces.xml +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.CoreInterfaces.xml @@ -22,6 +22,9 @@ The minimum SMAPI version required by this mod, if any. + + The minimum Stardew Valley version required by this mod, if any. + The unique mod ID. diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.dll b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.dll index e7ec54f0a9a27dc72fcce327f054ddc7c295d193..a18be1cc257528e1bc1d50ad6adf41f8b6d1428c 100644 GIT binary patch literal 125440 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 L{&)QUmx2ERW1{;n diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.xml b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.xml index be5ff785..1846d757 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.xml +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/SMAPI.Toolkit.xml @@ -516,11 +516,11 @@

The folder doesn't contain Stardew Valley. - - The folder contains Stardew Valley 1.5.4 or earlier. This version uses XNA Framework and 32-bit .NET Framework 4.5.2 on Windows and Mono on Linux/macOS, and isn't compatible with current versions of SMAPI. + + The folder contains Stardew Valley 1.5.6 or earlier, which isn't compatible with current versions of SMAPI. - The folder contains Stardew Valley from the game's legacy compatibility branch, which backports newer changes to the format. + The folder contains Stardew Valley from the game's legacy compatibility branch, which backports newer changes to the format. The folder seems to contain Stardew Valley files, but they failed to load for unknown reasons (e.g. corrupted executable). @@ -541,9 +541,9 @@ Find all valid Stardew Valley install folders. This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. A folder is considered 'valid' if it contains the Stardew Valley executable for the current OS. - - Get whether a folder seems to contain the game. - The folder to check. + + Find all valid Stardew Valley install folders. + This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. A folder is considered 'valid' if it contains the Stardew Valley executable for the current OS. Detect the validity of a game folder based on file structure heuristics. @@ -1188,6 +1188,10 @@ Find valid Stardew Valley install folders. This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. A folder is considered 'valid' if it contains the Stardew Valley executable for the current OS. + + Find all default Stardew Valley install folders which exist, regardless of whether they're valid. + This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. + Extract mod metadata from the wiki compatibility list. @@ -1506,40 +1510,43 @@ Get a low-level JSON serializer matching the . - A manifest which describes a mod for SMAPI. + - The mod name. + - A brief description of the mod. + - The mod author's name. + - The mod version. + - The minimum SMAPI version required by this mod, if any. + + + + - The name of the DLL in the directory that has the Entry method. Mutually exclusive with . + - The mod which will read this as a content pack. Mutually exclusive with . + - The other mods that must be loaded before this mod. + - The namespaced mod IDs to query for updates (like Nexus:541). + - The unique mod ID. + - Any manifest fields which didn't match a valid field. + Construct an instance for a transitional content pack. @@ -1550,7 +1557,7 @@ The mod version. The modID which will read this as a content pack. - + Construct an instance for a transitional content pack. The unique mod ID. The mod name. @@ -1558,6 +1565,7 @@ A brief description of the mod. The mod version. The minimum SMAPI version required by this mod, if any. + The minimum Stardew Valley version required by this mod, if any. The name of the DLL in the directory that has the Entry method. Mutually exclusive with . The modID which will read this as a content pack. The other mods that must be loaded before this mod. diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/install.dat b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/internal/windows/install.dat index b33572c5544b29c35c0b00884fa79f40cbcdcbad..2a14e8e7ef02c329d1ae10d0bb5c5bd27fbb7c47 100644 GIT binary patch delta 626185 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%0D<`4xd# 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

n(4?8wl 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 z zZsu=d~n*MLzifKuv*OVfx&$tTikGKp( z%;{+<<{)JQNcSU4>B7&sHfePBFU;YVYGRZ*Vdw4L?dYMLRl3M-yC;JElm!~O8S)`% zW)()fx55Tg){*9nlZ8TF4Hqy8>HE`OW)K$_i1~EaGq8Y%bSMPfd7TVh;B?WOpU>Nqwg8=G~n3d#CuBw>rn?qT%`+c%c9G7WbB zZ7>bc91^S6egTE4!QM71;_N9i7Xvl?Vr(IS)nE(eK0C!6ep*xiosg&=6}E1Wz`2Am ztwOeDVKNbhHqRb86%5Yx46*0MCt#WtQ{bt!RDAVxboSILhb+a!R|kb4+(Z+HHN7~_ z=CueUgm(W@%x9jB255IK zou|(R-G1LWC4t-ye$T-x;VDWn+i|9T7|Ef!bv_SS5}qUZ1ps1*%r)uedTs ziXnex&25wIK%Czb$+>xp4 zUQ`dJC+3IYI_Td|+hb5bUoa8yhtypThGoC5{}lXb=F)H4;LiOYHtEEaHrn0g;DWc! zk0x^MVu&{STbfU{dA~^2BDjySifQa5c}?~B*$#m@#gF-T0{e4qesvR{t(XwlW!AEdgl#*9D!QAP?l-u zJ&eL)&?-EYd<-Q0IV7;iXx^X-iFnL=u(Z25`}u`=JhRrlL6iyqwwJh%QuQ@JdoRZ` zqUPgt#(n&Di!*71vbxeJ!PJ~bppnXmhgR_?)Ao(o+SeJ0Sb)e1=g`xS_)l;EnTrKl z`4FXMvU9J~g;Qe~z@N9!`RF6LITl9SWo;S6UU4YkrfxDRrW}xQ6saqmgYGRqa)Q39 zt;!oX{}oH1Gc&8u+BktnpL%&_>~SolzxfryYCXYro14C}RLyrDySLGM`yBbf#C%6< zdw4X#hI*$38+<94=YNibP{0k_b@QH{Hho|czsUDvSOUUB{6#JKFg-(PZY%xcI(xlV zhOAB8>TS{>UOluVw;)A-0B2J>v2=N*Vqh#Hq) zgf#^NZHJc>-pNaCvAYNqo@SL3WhdRzNI+fA)Z0q|Q+u8{PBzG7rzX}yyNzcMuLBrk z`8QiF`&730zwKNjoS`Yy(+0ejy-C<-pal8e;1@DTl|K7pMv&nI6@;D#SAF$<&_}SQ zOE;lYAiv%3+^R&u#}w?*R5uw^4QG;6`3b-|eg4G5oRsfytG&1meZ{6{@ZLR(cTTaL zO^N0;pW|kHmjHjrV#v!-r1e`6XQR85mQ{R*L=!eHuf71WzbG8fn{(+4_{_(=%$|U> z;8MpHh)_Cko>NS;H)zTvTUr(|2jE}u#wxq*K2;P#K$aFLp;ZWlSiyCK66lh^T7_Z_ z%7}LdK)(?jD4E3iX4VH z+~5t-PkU0noHssb6%ivSW6{n|+w(Y2f7cA1WT;EOIrZ-Y%R->FL69bX;-p>Fz_EFA z!9FK_W07Cs?SjH$C-!)vtfcD%gOx$@m2=p)D#jso2VWY4(*<-+@_@7FB#uWoNgXRX ze4TX^!|@!9YTBE=m}a5VNt^VU3o=gs8NY9k#V1|lKIa(80Or>lR2i_tJhXt+?`FYa zF@<-cIgwwYsTWEkWPtL+3h&3}9|j(@byPJx2-};W#FY!X`Ke6G$q4xe_i^6m$zGd- zX>(-PJm_0h-@_o$-W*9mt&^oDf#UOL!qUX8m6|@3pO}9f1`it(b1)6um-pX1R1kWq zDZKoklSYevSgrW%^(P6N0b#;|vf{Hh$HO)iT3&`}2$GfEZ!-P^oMc=4!{h}G#6c$G z;pMXP%3(%={A mQKNNL74cC(z>bcyUjx_g@QYJdVlxH$;ejYYX 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

{WT^}Cv z`<90=zP1P&V{aIL1xdZ~!jK(WRtJ@_r7>~2)_-l^JCns-oECKQ7L&^E-Im#cCnDXX zPn=(UJ=dGrHjon)Tg-u`spb@(R2P(5zykS0FvTZM*6^{b*pY8?`Z= z8q|;am$yQZ?_eR@@q~2sk7>WU`KD6utAC7Yz4(KZWA$sKwZE0{<_~%@S^bY*`cslN ztpA)efU$1Wz<0J9=z=U7m8|}0e)T)5zJL5|uSp|hd0+p{?_ir(zk|9(H~&198yMV% z)AlWz4L83JKm9j<(0}ts{WpKyfAgo9>1U}N&Lnt;-hd1{(_8TPclFH_(V-}7ME(nB z;D=LatHxGX%P9U`?q=2MZum=Y+Y9Uq6hNF_mPltdYe?+-(vdHHM|HL%nDMVC0WDLiQ_v$Wl5W(sTJ&`w+F> zz`R(!jD)vr>tFpo+qnFxP#}~DEkiS`Eh+pkG-W%z{fG2+AtOOyHws*FSUi%ykj}!8 z-1usms*G7mIB!crf3LilUl}Kr0DlY+mrBp2FB3cSEj@?%a(Y{)3*~Lf`K|sKdSoC6 zojL&FEc~O%@s6EQKPI8dkMpZPg;mRe{OZrJ)YTt9kbxI|IgnraS{ChwR^Jx<3k2;u zBF#j4<~6F%@6hvQ%W{5AHdA_01#_$K2s5BsmaDcVOJAb`DoOoFoC@8Z3>!$FbN7vmHg&TL)<2-uN@vDh6_0 zSv3F9+7p?%^flrrkrP^a4S)W!8or#lKY!zUxpaQ*$#nk4U(iO7U+b0*#g5_NTDODZ zka6wS`rwa({cHX32YCk2a322YFTK;h(t~uOK;!J`d$?25n*xv%95y^urTTKG){jhx)CeOWX`j)+>b0P&UF;tzm??! z1d4w)^BcRJFkTd{)*gmG4YDv##qlejhd50>)nvDy;+ zrL+1CVs*$QEx+{k&VQVfcP)=UwzF%C{mMp$5w!h3kV1YRJ_P?no~6|wd6q`{f{N$D zno}SCt<_)1vi?H$5u*3V&`~(0@&1+1dad(_0RC}-q_czR@FnkbN#;5w(Gb(~#xG>xZ~P*?Q-4Ef<_tfGUcA_ENat`2 z&7L)!ySFD9zDr*5KqSTr0JZ|Sy6`6t9LLJ5(5@U$DBOIM}MK0Fx0Cd$bx4)YnSqC1;ANk6u3rKl4}LR!K5R8{bAUJuRlx*W7i*s zKU(kaB3X0up8Q$~YTyt~NwHIj*7I74N;^mN(e;O^%4PUNMwYBDlfStak?Gnwpg#5pZaXK%pGylo3;*2b&vn~$`hWa6!Hwq>H+ogADsHS&)~dc* zRYBZZ70d6D0A<>vnf9c4r`dy9r2j8z;8ijIPmw)ww^;6?HDos(s=*J#&^WLlHo}lx zK-wW+a)43}Fvh`59vb=zo3iH6NS-#*V;MgL&yab69r0Sp`XGW5JDaK zOPN91sedks!qr;$q0El_+G76I{2Khdf}ifr7yNZPkiV2KiA6Du z1mEb9Uo?ToH+f)zY-4r3oOU6rTw%454|o?XP)QN!U7}Xs-h~GPLxJ@|wr?;?s$AQV z9e4-m*;@zI2z3qZz1Kd!8)&>-_)`D+Av`b0p?|6)+3rGsmeBGo{@^W|fnP+beC>-Q zLVO9i8w!75um>gDSv3C2-#R2#(`avX3$2=OJ(1oHA&fF}z4oQP!7V7lA;H}(Y*N~O z?``Z0N}|c|b`Aw5o>kBC+i16#zxfK#;MrUnXA$IO{n$5AXL;=&4D}i|S|OV_TwY(f zAAgk=o$wzZHjs11aTE=+b=wdrX)k|aJ9o(!`hXEZi(dGAI-6#b=OwhQx%DjNxbg#O(;8s!2UVRD+%BE=?vcN{sxzpPB@mOl@`*_}*&fhvo zJ|I?~%Jsl|Y2X@B3WkMIX!qcD49U>*h<~TkNZ+mf7|$(xGihttk~iB@xvXdVk`;5L z{Mye@Sb(eMXIZQa&byoj(quIXl{4hlrs!@I$-TKV4v3Vkb|`D_YF=CJ&gh3SFn=j? z&;?!kxVGvBkrgmyfa8a zITH*9`Ux7O69}9=*o`#I>x%?kq$M;;Rt9~-#oszdozaKmfisDw3s&nE@%Sfu#ZCbg z()jD^>XwKCeYjR(#9+^ackS9*-+#w{dJM3>FY5x51IKlJpMIc!`As&g|B8MFt$Q^< z3JoxwbI8SCu*ilyXpuoUWPzESrC*x9*&ef%eo>Yv!R;F8>805U0hBTG3qA4zg1U_^ zf$b(k8ME72CW+r&-n!d#lZ+A@o=q#1v?kVm-fiq`H)#p&Om#hA5ZjXACV!n1qjEMU zr!_#;#CD(&77iM$d?+v7gZ3hfRCf+$(B)GOO#^ZKVCUjvG*~BnFqd}bc1jd`WaZ&* zoN+tRfD8r|2Q8aMwb>uz0$x7{0qXEuFJ+K1{sv9WbT)fWW-Fm_9Hi9?@YlceqjXkJ zbF!L1mTW&lhZO7RMS$H9;D2}542R-5e6xHD-7~Bo z3R7WzC@i~6jl;cMQi%&$M2gHc4(2F*r+$@;UnE^rB;OcsV{dm75K z(kdOq<7N-y;#_`x2>oGX2Xgcp&49JH6a%3VbL2(+-JZ>!cjqp(S{)Wk=^{#&wI@l z_$uzOP^G~%IZ$IoBG@Iev@{Dn;_xQFeo1$H1VU-};Q^v<*Gu`;W$e`THqMA!L`uRB z%vE^rRh*?+%>Dzy;(zZ3V3Zf;GwEp4cMNV-a$=cW5MUhE8P#g#WOrsOJaN!_sV{Kv zSs#TFMyf(lAI^ddH!DkY!20q7bnG6UaRS~g$U$5Vz5?4D_9$$u>D@r}a5TUEdFbxf zvbc^&zwlw~P?r^PY8mOETRHsjtumv=TV>j4-_0F>CiD4Set-Rq{`Ies?ikuXy@6J~ zX(r6p-$XMzUaF zE973Zl8NQ5dw)%iW_^}v&UDsJh5q&Le86NSF}FPc_vkwooZX&w;G7S>&ukCAV3Uwl zzx8TLf4hO&>PBh{AKf|HxPehicjsUy?7}IPMf`&kdYKSPHcjm5hqs%Qj0G%Q0zGN< z$YBTTO4&#nFq7=5WUsmYV+@G@j&(M}S^wz{J~CMUDSzP&HcGqs3^`nS*Yh9%#dR5j zPOV_Y^_vVV)`2Xp09r zC|}r-*?$JS()zoo&WExj5~{Df4u2WiRK=F-bySI@3D*bczr?Q6;17ARQU(tlehT~% zvg*JSUqaVBm&hp?x_EK|vhVQm9ZTiVSc%1R-@(9rnXMw@)qX(XBPv45puaD| zay_pjLt1<-5D6vCHW(fhJ4AQdEbXuy@SM@!j5 zl8hl`eD`Rfd$L-4WXx|a@K|*3h5^3WO1qx9mcRMgtQOXdR(3a+@;BGAM>9K+_`jLI z`F}Z-qhg1y^`X2TVk}g>eh~h=AhU^O+8Nfm_gZo6^@CX#knE%l-Oo(xT7M7L@ORSr zoBvE}a{Um>h_XG~`*PS6MDlxBRKtO+4fWX2b{p!mA#@d>{Q$kBK|Bx5Ut)##0g@Wv zoVrA|h?jDG&o`T>MQQe_4L@_2Q%6Jn}23ili8qW z>FqG~iA-Pq=J&|Ff^zbi7>z00Xt-Z@CXn-v1ZZk?ZD;8`XYC6LIFjkk-+%lI6^z?2 zP%MA*hf!%f@=xh3pJo1x4ElvpW5tjM%nn=zf611H_>X$>C-nR-4e_&VUfo45u)fU^ z6un-5ll)1-4}f!-E&bOo^k09e|N5o=>jh;lY4ooXe|7yOdXj6V>jhN>{9*s~a|Ai} zANZ#CF>^!|Wc^Sz+UTVW6@QOjv<@MW%@)Ypw+}!ZQAz*u!7Tpc9S;Lsqc$EsLVQp} z4#}T`433y@>o0xnUc_l6m_=>Z!qNt*ayIJrE75D$1%WTiz{5#;H{vf~hRdh-0 zysV_T;^cqs`?l236ASq^qb^=1hJ_p&^INRyjeUklR*FYEGwLSz1ApoY5cw9=F93S` z$xOHZolZgWw=4q!Jpf%Tqy>$Q3@Dl_y0@H8B*q>WT|RBk>K-X^gAUAUHkyFcpErL+ z1mFTaTlB2Z^RMVhYSY&_m96tgSA2bqo}Z=X5OyGi*;F@F6I==l@z`}i_jweK?9ceAghweKNKxy_G} zT@8n}4M+&JFW98SU zg4VYP*#jwf37N>ny&`|N?&0F8OjgK|muV87lfTt(z+aCz;edijjr~VX6L1CD3ib!1mSe9F8T3j{ z{4cW_U;p)6IU0tgALm#;Nem}jroJieBi`g;e1E0aYnOF61C^0Qbq-y_bNzPogmH1R zW8>-VJt-IajYuj_APSONLjru4H|?}jcA@JY9{_*7UjGvcIG5F7$ZGG3ub$O!WVJ=Q z&pZA>+4zgN4&}RNdyXCUwH*0Sz1`v*L!j9uAjqT&kodf z^(xsbR zXQJ#DB`+ z;7E(uOl>21G8*Xm4LM=dPwFof>L+A1(4X15mnRZXdZqjNuYVr3Bv8MC@XzPF2F-n0 z&5)rx0@TJ9-e#|gIgP4$!fUAR|9`uw-1f{isArB`6|gnltw+%h5Z4`9dVzFp%NJ3Y zd*TDYJFXvqSxGHMW#9a`5O*JheA~sYbo~HM&TRxm+e@6H0POWsdn7=J<$%gH_I@Y> zqkHQJ6gB_@@B2|kQ76Kn27@T3kniKy`30!ur?Dmn{F)5H%AuMZ(3%th*njJ%_DFzg zGMJGShRzzGVgoF$)taYmh>4&BxqH#RWE@YZP{(Hd8T^ON!>}fUo^9{?GdZfqAn(69 z0Cd|FD(jhC28Bj)+_ci(naR*#kb5rF|LM+j0rvbV-qwUpB48)}K!&!~>#yN-&R>5$ zfBg%p=x`c$@-+H7f~|Ke`ON$x-i0!V zSP4D;lXQsMmCNRfTTKck7q$vDsk^0BEONT_VQXdr5SxZJ0lEC8?Re(ZCZFXi?Oo_Z zT`vw`1xB+YlOg&bo!yBF^J!R8T`8h7j%M;XXFTlf_B1Lvof$>RM1NZ8K)XJg<3m-v zC?nVPiA>Kx{?;={PU5vJ9PD2yc@ij=j^BDR5<{XEer23)@i@T`Z9(LSZ{^v0Jn@mf znCtI}LYxO03)_`Yfm|3B-NIW>qDChEkXY@>eXtDC$rI~u+TX1F<_2;H$g%b&bV$*; zHWZcXR#j0{4(8HeMt|ITk=UTFU2-oJos`^qnZixT| z!$x4_QSi9kkKkLkiv7E-lShGnKm>jgCI9;HZFJ zcrYFHfAy2Sozk!tdx1body_0O@@OBQXGjnD~X<3|L;+o%w+_La2i zB$E4Z#Bmh(2pKez58U0(w$C$YBmcP(-_c9z1LOL)=){k`Zm5y<(z~R*v-~L8=>xhs zLK=|E`ISGUz<+vv<&VfXVkp1zErPt3U-=UXyq;hAHU++rU->f%d@;ZBT?%|Dzw$i_ zypdn|3krNKzw#3bd?UZ|SM;s7^DBQzkZI&)?t)sCanK5zeW>a{hj<8O@QS;&#!GqBe~!2Vhs)WqqX-F z(L5;9(fIla+5=ufpIw)TjvdeSW`qu3Ka*y^t-Blza3;~Oo)RqYbHa?N?m8IlJ?Y$$G1*3a1Q!N0w{a`%!A!dr?sjxg(i=1A%M zjT1ylW5a$*tnW{)cisgJ{0;84kdVuXGB1!pl?*%UsGxmRW$C}k>;ud&&xb$x6+i{+ zHVo{h8h22P)Jj*@)s2Wd=2-cq%OwQ++ka$Vu=GZbHg$GwHIVC6w0B@bANpljMC4}= z|A_|c8$GOm^u|Cg{lFk9qkP4cJOFj$dxr32Diah-Pc8Sv(ymd^~N4}h9r!;PH zpm`kG?R_~*Ti^0h51FO3x}8rJj4!Fj47Q2=GC5VD7yc~2{3n#<_i-^@VvUJQ);N&Y z*d;ah6C>VL^oq~MWOVi1>m5g1IW>|^$EjmivGLY$o*xJ$j+7tPeSJV9~H_3Jf zk39R=p2E9n$j;(uE-e-pN7druDCuN8fvWE-ujZHDMo#yivS!0mRCbn}6a6%&N7L7T zKx6g;)J|A^I|m(`$!yK$@PED>Xv(uGx}E3d&h6f1NLl5PNt0;(XQHWn^Alw1f*KBL z*HUIg@J|nsk?JAwe0K8>Gjh`Yfy_2$OwfxB6HVhRt>!S#O}xSM5WV=e*mmAjbn#3bBzDe!o-{d*v>(N)xNq=c5g6?qw!d_4Q z$18CC6UYp#z5;trhTIbHvHPw2GQ!7Zgu~AWe~l^yC``zYv*dtNkU1pF=#|&$_0xDe zB06I{PU~uY5_qYBknhQM;K)4IjQOJU&Yn~UmPs8AX##!wOgjV2>hi^lzpAGoxRtPo<<4k^>60Fs@&tI zhWC-g3hs;ocx_$(W>zaD2gbLa%m)23&iou*MHgdo5*V)^Mj5Lgvf~QzizAnmaI7~7 zqazSMSJ}&@;q2ExKJ`!ff6()E_Q==9{vZGKfA(MgGCTg?{eR27|J@&d??23Dp8VJU zeAnUs{)Oy!e|y(Iymjcu=Tc^H-n8KV1-hR6G5Ehp*MTpXvN=qbif=LS-`mO4vaOgZMC?z{emycH$$8k1hB}<0G|Y2&;A(AD8g)|G~#G zd}Q(QpW)-bz{h`%kFVn6%lPBQ}f}1>i31J`iX14_!ePBBS{s zT>jCoSOPEe5QvB;UqrOvn-qT0>qGcMMHkFr(N){qdK=sL5J(jm{Mj>oVCZ~fdpc<~ z;XNL(x&0a${faN}0`K{ROT6AY^om3bghz9N!9dT@D>g9@8vTkQ@Io%|QU!t7T!1Md zxI;s25D3~u4H|LVo9YIJY__%)JfDz>_b=>-h~K1z6L?Yb^h6+L+%|$HuG-xGBG4Hc zjVMrf!5k7zBR~P3ii}2rK*S-gZwdv-1v-PGUlECMz~HX}y1he!gF~-q#MJ_$zA%Mw zQXc5o-Z0o6DA-=G-dgn=mOgJDkqMZqQvH8|I6Pt3m`YwrZqQ1UX)=x^tt6~uta$m& z_eeZ25KI1+v7$37w2S5lQfZ@9O0$zaXv9BwN6!!`+%tvcvQbBL9Ef|Md00Pk=fJOe#& zt0Yn#Ejc4-_3-zLC(<NH8$K>bTJyp!t( zsV`yuZpC?~n>Fa<Ai?yn7ig~+a*fv;&DUE-yaMlT(X={I)!iO(>o-_0 z){x_2zy;AZ_oROscejU}yD>jAczS{ayE0jHmf;$EyE=51FAFlQZd>;&t)7cE*AeVG zg5gl5YAFFOpHD--UnSBM3^6U}*YC-(H^UL%msAj@2GaO4OV#2KR*V zReoYOT=|u;$X?NsrE^;fSfO_l@7E}Czwb{&xWIs~E>}SA_zS9vX*=q)YU8(=>*$Rj z!7768ykUjx1?slkA)x_W&cBukwcq@-nVxIE%Pqbg5^QTvoQDoCKJY7pbmJIyei@ek z$Sw@7*oBD~rFtJAN+NnU+*iHf(op}y!|Z3u)M-v3_KKxwL1BX0gQ=)!${~B6bcf-~ z#GS{_pEwm-Q!?ex-UdG>(o?t{_R_Do9e$2;uQQ%uoIXM>>#+m@`R)>1HzVp%7V6*` zF8C&HS&o}{<7oF!{iuWd8uMXzxKsVG^X^#s6_=Z-A9vFmDuY#EwYLqpoS4dyt66%Z zp0kTp*n*%ke{EYxam}XXlJqmOgwO^Ed!&IZ*jwLOMl&eLj>`S%S9CwFD2Ue|J72prJJg5Bvfq! zS!vI#&=ur^*~qRXxFhej4%_r~3BMb5!LKWacIl@qD^n7|WCeUr66P6mRYb;X;JbYC zDJeh8C2BMK371e9jtTaS*$%DUzK*0TMNOJJ@?*j?9Y+JIn>JA zkLNinn?%h^Jk7z1E2bTLMCDuj>IK?7Cq0}hTa0^(9iAK$nFGg#B0sgbBf5F8sh+)X%p^pAYnz!JiKw2%swLPwaHk`7m_Kndz#rvjf9F!Hf z2!F^<-W;ha$5>rAnSP}9S9)UMk0sSf^7Wo9@Txuq_a94?KhuJ*rJKJx@}ymDx)b*l zLaEZ~n*<~btCa@I<0BJ$_|bF!qV`$t_kdNZ9=sW)B_xRME)}b7E)Ar;jgwC6 zO$0+z0lLK7r`E)xXeJw?)X&nQEItdW(`dDzFKsL)YI!F-^ethJ!Wc|vZG*#=!25eVOB1!gc9+DHu$VhdleZ`!Ch@&$Y+R?em#Pdc&2_iw(NYv!F_(+AftOnfBE&rx%hupbWs4)^vz|*l(Ko;H8p4PySDT>t6zR*SV#WM`O{kS2FB_EU!i4eOSb~?mTLS0F{ zgDA=#n7o5eHY8Ahq&!dII*KJot>RaRY-WL_7QTEkmrz>=6~*W+EHI;I?qUdoM{~55 z`p)ICh{ifVo`+5)j>g2X^zUnF--)kRS$z55vVQ-QAn5{T(S?|^kr6C`%M)XXft_{Z)D&$aU-sOeONmu)`IT?JDlq!8w3&v`T7*FW)}Csr8BPVif0jMawxsSepba75lu? z9EQ!}nyf2H{1`Y|myc49^p1ogWN9i#SV?j6Yeo;Q&mIjL91%ftZk|7Y1bbIKf7G+R zMK4hMnItz_(mljM^hTSOKV6Z8+?QN4ib+{3c%BQRf(sMJT4kE3@i0R5WrLU3f8m_Vev$ z5gF6Je|Mx(>8=n)c*Zo)OQOn{eDU?xss*0=TD5159eqY4*prQ1;xoBrOWnCig-FRD z6?eriO2UKUim^`OyjFZ-_U8fM?&XuK6^;3z>7X!mrKm*VPo9q$1w}6UN8z4b{GG5?E(GE9&^)65sb_yKRUyx4tHZZoO)s3bJRH(|i!MEdT zh3f}@{1j^AZO2`>4e&!G_T5$U{Yq#$Tm zoz^*;^OG@yiZ9v8!K^&0RO}YyHP7=`hOSI)0JFYWjIon^qe;B~(NOR8!F#{Vi-2ch zi96_PWI?d))20f75)=zFfZbTFgmP=Xi;tw%%gQe4$rEOd68$Rm*o4w<)`F-)a&g#7NwByw(l%R~qdCD&GOOGGOH6brMXw zw2?>qNTSYk{x4cMZ?Q>kRamT_Ch==0Fv{^Z1MYML2?sWU;n;ui;;C&cH^xZgn) z^?G8N*9#OsLnDncln1GnIx(a=5(M_sNB0SZ*x2d#A1h9MEug@N$M{+5<#?i_O+Ow3 zU!~jtPfU{%_Ry!Kvq(?X;S`G)YfO$yKG$vQ5E9}$@uPIe7r=TFH?n}wYprSCBnR1z z?LU4tD9%?kDi@+B@gNCtRIl(+K`lqTFe9zJ+j8fxB#tTSP}}f1Kx`=fU@JHZcZ*gn z;J236v9rzLAx4uoLCN11t%Vlio8P%K!^ zN;Y^&v8q*I0xoA3H4aJ581=@V_4Hpd58g4}#}qzm;2s2G=NvyT%C^;Yt#YHkoeLG%l!Gb$2JNM2;axy~ zA|5Enkj?HZt}qPLbLn=wF8Lo%DQ#0E!v%P*?}d)I0*&SoIQ`P*Vu=jzlZAY}em^hs z3VvX;=|#YxnEx^};d~?hp#MSP()|8jSH75MtGaBUy_tT{+VbA0GqtQOhJ#rt^2T$d zxn>RjME0T11rw-*%_8n@1i!mQN(d{-(B!Gi5G3Pw4Gh^`+?gn)#EI~rrveKPcw{@; z66dE$0+A|V62Y4X$}~??$!p)8Vt8iQZQL=$dai0zCmI;}Q~Scm&=4cs!cw?_0o{@>X$+uBhuDN~+a?7&bZcchvlwc! ze{}EV!Q_td)qTdWJ{0i#+{773#3?Zd4-u2ZWh_APM+FuCgPf@vwYwhrcKventJ<;6 z>u!%Mg03He8TcSYc948xRm=;`%=uo`rCOf3jIP?!7Ua5_i+!9mmRCmX&@=z@5Bnnv zU^EnOI`&J;I>nEpWxJD3gjil1+g=@l@LXDCNt2rjdZ;(gK7EMLMuieLLgDAB%2-*H z{g>Yf63JonmEjh>PAtUYnGlAtOC)Z0sH;qbeb>~JhjT?xte!eQvGI5i$C!<;X{9Q{ zu8Q%vVdG+Yuy=hzZKK)m+Z}-sE<*G~0I(vRC~A3cjoe6&*@YTDlvm^0QZdkoGbN3n z(Xm!7RmjhqZhhns95sG4)z|x@etRSz7Nn@KNwdsiu$SARY}rzU3NQTA{;D8(RzlO8 zEMh@aO2!)I96epRq<#l@FR$@SRoLli6cryW>0-gvs=Ltv7- zpWQU2$f%DlK03$HCi=$(oGMv+cB}y6Ye{CT(kW@9=H%}t#D-yVUjbZ4pAmCr5shWl z;q&jOJ?F-ij^YWK2R>+~3(AWVl=xcnwIj-hlQ6*}8aWRpom@)YbdI7$B1gNr|3jCq~AB0W9oQW;lUAk8Jf$ux-G#Je3&5 zCsf3c=aSI(Lf(24gGN8Mx;EvA+|tBE7Ds{;DXWSX^%|!3AyOg4B_Y(j7PeDNXttaF zjODA*0f@BKJsW-3@kD8f$mUi1-+G-N? zn2fpw{lTgxvW^K4&d3bqC?@R2b0B81j`T zLN#!yoFP3QZsaH_!($MC`3YnidgWYxvT5Y_L?lu;K>yA0MBb`p0CI($^{ShDFYf?7 zaUKu_5i;^TA6iKxb?UDzN(j#_7@mHYzISHEI169+rw&i~*HcS2xjcE4enw#p@+PSd zy!*vSHxjapSx&F9%=Fm8mv;r3Oq<|pVlyn`G|w8sIfTlQY)csia1@|^t51!kB}Bt@&Pz`4D4o&$v0du+1Q-X$(>*&y1uX*W7RDo)sR_r46nDM@>r(jyQFoC_vq zD1J*=#z1WQ&7M2GNl^ukjV)hc9(Ltqi4JlVJ#L^j+%3G$hZ)Fv{tM2wg>oj|dkI#_ z?UJ;2-9B^ofWY&U7YU>GyDCOyO|3ETcK4NE%}TK5GxkkF4+Fi@Y>c{zy|;hlbCQpy z{xZsrHDQ)QaO4Hy!^4@@^tRC$gD6~g6~fU5oVlRnFKgpBX=_}y8x9aOt12(?5Lg|a zvHW((sS09{(Ob$;;kMgWpH{m;Q|j29@h0m(Z!kxD8_NCnC>=@`k1NYmjTYZg1kj;v z*V}`zZF^((h=9Lue-@KsNU0p(iMQc%C%6~)2_CB7HJZ~+Tx4e=F{OBJ?9N|)UDiK5 z>jSzg6L{HHQ@;Bh{jAWW*I@ZeyU6-i#k**x6oyXxdzOwfF}96oV7zl(+Iw;vN#?Pf z7sH11+;DEqk6VGPMA3c^E{v-8fj)!ld6W7VpD6cJivS6%g4nc$vk6OW$j^^VQDy8Y zyJ&bTFoR&UuNytf*uVU{sC~)FnjfRTUF4YFhZI!c0|@1YC@#c=OMiU!Z3KYn8qX2E za*@CoM?p&GL0g7d<}8bPJuDOMdEm=TD!F5}g&Ov;@dVOp=*IQoZ`b{`{5wxv7ToD+q70 zc1(t7Q%kTgT650zLnyh;g&}I8STzFcVDNJO_D@N^`{Ty=OI0~lTUQ=<|FI7sZt|{A z%aT2X3GJZN-aBKn@;H^r+~Oc%{A^7E0*f<4RG+s+y!T4U_|jhecVBf+=P_BhYt7CYLMuhfDP(i5Fm+!7?EOw@r^hCU4^pEIqGS;mIk&% z#L3fZ>0Hgri5KD$DO=%>kacsnG{HF?+wl9|G_nl!-aXULWV9U@uHp`;JTt`+3U3D_ zvF046>Gv<{{J-#*b$^F0o*bHBfrw(xLicF0MP+Z@BF|`-+?il?ErZ%6F!Zm!kDWo8 zS@+_1b?d5ziHXU32wD_~9lw`kC&Hsk!Z_=<`Ji*(#$i#*ekXPc=4X;xKs#_3+x45w zH6T$h1d-TMa!Pzz?&&V1?T7B-O#@a|y6JrJejyis&wEePrU0E_94|!vnOvS5ms~zn z3_;oXt$2~jSCU0C+u9&pXn^&&Hnj_1503n}(=WU?Q%%6{Zzn7#f+`o^g{VfwH5Q80 z)(Sul=yXQl3ANn7TdU(Ce@q^N6dQ}YuYHSbcnl?HG%Co(?X#XHLjiI22X4vvT70n@ z<=7f>6MuOpkGM*$%&kkY5t3@eKzY3;o4}CtFatrwu8Y2k{_b_^V~jLEl_llB_#{U* z6(?B0eSA~_!-=sqeaMC*)ZF@LAtZaPc#F;^XaFnZl<@MR`&4Xs{iNr$qLTWgQanr? zDX>s&VlDOk^vZec*)_aw6M(mt8M6u6PqC_m@7xG3_JXzUQf9LrA-<$=j!GI#+#GUQ z!Vb5fykNO+W;p4mkq`P^oYzhyVw%M-lQ&cBS z!v+b@tmG2~)$!g?R1n%1t?s$^6IAItjIF;YsBH8RI0)urn$K{)Gy{FVT-)5eO~kPk zhT+++X-%-6FZ#C=UQ9Bh(83eo2=Gv$`0>ar8(z8DACEG(d|!3&yITFTe?!CUKG-*_ zYxXG8ME6>kFDM*)O|n0nY8-lxO$gWUuQyuOo4!g4!mHd?6WS)AdSK1}K!~F~Wzgj& zs-Jf~_}=zW+odD(ce^?bv#xbjnf9*wm|f(p~xBnIVex=2=Pah)zHRlZ!` zC8goZXO!R9aVHtw9zKJ&CF-Ze-;YI36pk4ZtlN6sB~&_Y(u+&ij78wfupvVVx3Msb zCldsdW}mQzAAd0WT5&pe8#=x7?Cpqfz{YwaUXs0p<7gi}t_Da-h73Q*WFoT_!s^^z z6w^CTV|rL*_l)Wcbf#{-ld+RWw-nReEucm{E53pttiQXmRNqfQfpnB$su0IV^*Q+w zcQ$%~JX3I%_r|sy7U+WZ)I!**eVUe7X4<)_*c07?i8*=AU2yJ(FjHx%X(oKG6pUKt z)Z`Z$qVL`vy94DV6c@aM?(0XP{PoGuelyqc+KCRa4_=mVcWKC)+XEOZ%{`Rt99LkN zqQ&k!!jr%(n(UjBe&Z(WOX4}iKpx^X{Qjx-i%_ck!00D-8(XG1Dv7_gdci%N?UfRS z_bCSxU2`E;TRw&`?Id8ipyHE11jmDGHvQ4uxVTYhs6cm9GAEsv^x3Ff?2d0od>>hNLBP!^g&(t zW45I2L7#{3vr!IR>^OFpq6SFIv!GXv+Le7%#=~}#@)79?<*-*>$7dCHZq^dAaqIB7 z(2^_413+ks67`DeGhCB;VJq!4P9dWBnU96Ww={kd%<2#2e=y{zHOB{qT<^ZaqLX!) zN`xyOM)SB{VbzLzP;+V>y+7~oQp?M@H6<%vey zX>q%zqPgFrH|hp#d&_kWV7b+?07x{e^{O=h@M}e#Iqi8dW$;;dA<=;Qd}4h@M)c*k zUYh?2Oyd9=clPBEM_&%>%DTId6?nw`z3rCeDlp^sR||OHabGAHRmD6GU$+E@S6Lcn zQ)V4=$j_G(r(!%3AlyYP0IR8bSH!jXRZUrr!541hVB@ysB7aZnBSA-f{pCaQ&6Z9Z zSi>U-N&Vn#09tC5I!gRG19=n)=5uD(mu2&idhlm&B!F+~>B%_Uu#WesJ9D|d!mdb9%IaO|W8zdZrE!xWxKpY6J@j7|Jo?Rs}2pEe~pI*`{qg7Y^T5(kuu@yJi3Ox=71hvak6*Ng%Y6 zi9YY9lGWtGR#0D9XVIv%Z+z+pj67Si9O2lwe(_A&gh}Q&CV%I7;i>A=3feIy*{E_& zBt9aQoE^m?ot1UBs5{6HU%l0g_|{4g=*Va{inv^mxb30kf24v9&#^`(<`9fsDsAD?j{G#lb78MKANOjpy_w!N>`2^S~Zg$TzTX9Oe)8wBc?*JFu9&)fVS0Rs0(K8&3&aG7#Q7=~3LhOq#xYWNJwL!(HW-AikbI~1RtFt))SesGGcPI5i79;v9y9&l=V=!<;F5lIywpj+FnQtXR{ON1mZJx-~s+g+>xtuL< zt5??y$I-50dTR+$f!+z)M|tkN4$}qyEQ{Z5bA!CP(=57AJz_}}k^&a);dzDOf_UZM zM+o|ctTW6ir}#BJMTV%w=%IgL0`mBFzMN=5E#IFH;9efg^~Jvai{rl=!8Fn!r}l*O{JR&M5bT&A|q|ywK5q>4tZ5qZ!T_J%$e=Gq_Z2)++78oWU&gVkiZb5ELR{YN!w@0#RB zslzU<>oQ}}wOvT`CoI^aT#0d9R|X^cwERzug$e$gMEx6J@nMgQg*ZS^U?^=-kl1VP zB$WFjb<__I(GdhJ>Kn~cFncjs?6Z-5(sx50RMHzj|4-(xfhMv~$CLyJpsxCzD_re8 zElY^jtni-&X(Ezj5Ls7(Lu4pD=R~euz4SpqudmQkI!IoYu+kmP3trHKiqE$CcX--rKy0QfL-n&=VUH!@P6{e0}jpaWj{O86{alLI_t1 zt`-XfNT9npzN7q9HXs(vf)0QIVO~aj*;AFWeld216SRVJ^DWSOk@z4b+uE^{ZzPs1 zgBz;uL1qZR0Dm+=#l&Y zT&V_FejxJ#NpMH0>M@0DouT%pcUTai#Tquj_!miFIPv_bqRcfxUmStcEVf0k3Kc6+Qx1;Ou z2@1y@cZlZ4OAzKZldrNC{0(M!U5f_*2F99}P1?0o$P6+Lv~Y)7HnggwdP{Th`-U>a zpN+-(Kf@){*ER}!@9AigCwfs8{K^(K3O?mC!;C8Jei|P~F|FWNAG<+J+K+7x+;)ty zO=o~UR%{HixvAds0NLrlS}yBy2@<}2g-w7dgI=-eztPpM8oD7p$(3w$E$J-)QgHt| z4Q)bc>8DK$=?9mr^x3h%ov^rl>vmT!5R#Uz6yDr|FU4ksxmXzJ+U-UU z7dtC^kArMLTxrS7z~o9KCv%CIB%ZeYJW$f76#)$|M@!+;@&Wp78PVL7BR3eqW&lxP z%-AJoz{tvblOCSS==NmDlENbxSRUH@wzv3RJ?*cCGC$azal_8i?pdI+ET8PUR|KW} z{d>f}mm5Of?k)U@ySM6zz_QWs5I9heH|pGi zk-Bp?3cR}wfuJ5YFb6_;+A>~#WHLtMbM4)F8*k?2x?EASasE69)Z8eSi-T_-Xw>Tz zT908e-<2NHPOf}rK$*NkvfhbT#LyB(+;bBOUfYAWx!1TA1c1SXW^3 zR?mnZ+{BY$l<6)u=z@;#MN)4&5&!y;R!N`|=~NVfJ+9garMj;bi7`lZLw|XYmXyx2 z(L$S)wNa;eFlq}_+5$(|XQ z#p)WdfucMPvH>?94Oq2>*HG=Bx-PO4PSa?v1qGOrqs_y${A`avaF*{J+QNtvh4vEWL#eAF64*3<(n+JC+#S{g=cB)z|(3p)d43(KQC%b|8=NK z+NDq78Z_Pt_jGNm7Fo48@Wb-LNYhf)U)Tl6We0(-~ zboh`{Br9!*0Ra8Y`4~fIc;pOjp$@+R)jFJqf&PGorK!{ZaH!Y@MG;QvlDwB@&)+FL zN+SPRRQS`F-jKOpqLN7II^`jruj5MqZ9uj8q5G<#w@(ydjudEoHgx~+XTI^zBP3FY zhCk_7fHX+-J7VvbKy+VxFC{os8A9xoPlW7_J-=Z~{I98zf(ub1B_ky@xQvCDCSj?~ zMgHc(y=|80r>?h77W1>M`-U5voRKhQh{e46J0=AuCOIa7^0l2f@bTbe^hDda8#fT$Lq<}R>>DcPMsRLeYnRZZTyKy7E zLaf6!T&kf9QTsspYKb0tpAv*jCH|n@-h-gA2&#>>_3$KE+mjK2B}vBdkaJE5I0>Xq zad&ySayT^W>aJgjFXu}%S>$u23Y1c+MFyT6Gb5(_n3PDQ@2jTRs(Fos>D$9k!;(`n z(ozsfgl>0ons6Ue2w0F^(8KTe0+}AW0zrHjwMyNB-we?kZxoHE)u9Yq{BS^+(SOkM z_%Ugr0@cz5BC$+D!oIv`LbLe{33Ng5OT91tq*TlDSA7lfo8LFwM_SVUbowx&i8TP> z;aj^WW*KcPW^aHh9EWHZnINfJ*2vRP(d9dMq+ZOx-wPw}ww2EQ@~&{9#ZK`Glk~qn zd>O#|f^*~-uS~tj#H5-`NgEI_7ch{EQ#3JUT2R|=+=7#p)`9zt;Ohrg%-$Wn&s+7q z1RdI6)KRkHVrhd=JPNTHbbn`rel$4*)br61y-li>u0i&!>f|vvB$?f1>-RAGXaiv^ zee$?jwZE|>bf2r2gauj2IfGZzNjPDSi}>J7JSEQzy((RA^kR0luT!{f$G8%`R>qV< ztp-gGSlvQ#|HNwdg;h-yd-{{`B7HVy-&YP~0(Z^3ao-1hD9(seR0QWM+<#61J}H&U z{=_Y~{BmyshtPY9Xz*~3srbJp3Ox6)5m;#a;AB0ZN@J4Qh1 zc&qAqqw@A=%RTSTB&NQ(999n<8>dN6ooIAG5K_Sioy9@@Ux^|3l#0t*XCj{Y~VstK7!2)D?HTEepP$rfOCYgQFAsH zYag@bV=a78f?n?8n;2&%z@(a;l;0EI$;bWMf|Oa@o?|(QgL~<4>NZ?EkqP|1 z^hWHV<+Y3#;3sFbQpD5k#%E+wCPDu0=wM%`A!S{?W!;BI8Xr zZwZ%w8UH74zDCC#b7$2zcXRG&?dTXYS1b%G`cvGfL2;>>zEc_q+zT*FSlQ{|fAFdy}1be)I)q|&| zpzS#pw>(C{g!77$I!!IXwF4>3>Dm2}1U>Dgc3B7v*GriIXgO8sU(>vDetYZ4zbyW* zUS8F-|CQ+<1OH3ozg>XWiEhC1vYvgntzma#aia2RZxQOYBqS zZ?pD!d?tl-=}v%;@9AtT8~-0F`9J9RKNx4ZJz`ZK_;0-jyk4sI(^ux`Dng0r=IfAk zo4AXAEqcE^uD927^8%B9Q|ryF-0NF)+oJx52m}WH%QW)8L)m}e`oD_s+O_r%72rPt z`PKQQiZZSuRL?R=bytOU-&JScz6$?hISJoq7N3G%zeV;6^6xOEy0RKOjEu+rxA80c z+sytyLEv)cG(I)`zk}e_lI}n71pfPDsfoXcQ&ICN@ZKg;TaIG+K^KtF%oyTy&zKt7 zbsx9v%mnGhY|kNrZE*fatZj~K@5K@Rrxk$z^BNMDLsDh;U9u+C4fCy)QkF-(wR2-t zmNL)p-|Tj&^sgPdt`PqVh-m+ni?`~(;`0B}&HswO|6WtUVVi_wjZAAtSxucPouc|L zi4rgK{}3e`|F`;9`+qX??NVz8a9`3vmTCXnN`9Ty<#u1T6huaHulJ8Yaa{ij68f)n z|M|=ld%lWvqaVGtCdi%^dn-9$C+Q!k0uukc25e>h`(p6&pUM=lr$2p8Y?M{|6f5Xo z&tB9oh#;{nq2(a?6!*J6<9|>9{LicW4{I#!3KjA1!-^Wl#x{Sfxf^l%M&VyFU7QalmhyaA<4y~jI9%Qx zrFA*dD>rL>p0t!(U$>blEdrt4anGKgoyg(q^1OJCU)`Nv-%|iK6N?Sv(dC(JcWs@- zof?9k{R@3I{Eu0s{?>W!(JRj;piaa(YV_9dFxFm`T5OfZ(~q&-gx}UslA=8wR`VVPqa)jQPXxN?s~6JVM(O7 z6Xmp^te(q+n$n9-O}m!!%FrE~OVn8sWHf-W_bk1VdIn%0vv{hsHr?%Yv2kybJ15o3 zM8wDLs^KdH4Wy-p;q?L9=QwvlS+U$}flGznkr~GnDs=T;s8;Y%wzF)B#x4p~Pj$I(-sMVE7x;ZJL8gl@*5RReD$am=cV z2-$F+4FJ3lKw>nZe%FfQ&UVjE(ShFOvDEE0A$vXrv0A-KfNAw&*<1T!BvzGFgvCBy z+*Wj{zEEZaXe(h|ZYEa! zO?jz!7RE?3d?yFdx%R#93Qwp+sWZwbWYCWaCAy?CjYh%qFnF{^tUx z9qsw@i`!Yw2C7Y&3z{X~JXcet+CZr_xuqn7#d9apninmoe#(iEMvPct!u5eRQDl!h zla3MzkGRSs`!bO;f>2{)klQjjA^khmZ9*gZ$DnSPY9RkydUhD%E zhTj(463spQ8IE4oTsA`g*6!CQ$hovJdK)cu|003v(~*|^9dKGJMIKnkG>m%TNv8l*_;eNJ{Q{m_+#quAU!q)5Xj%z z4ir?I4tcg0YJhuqc9)x)R|VfrUN9F}yA9-5mJPlz9geN8QV2e0wNB8=Ii?BP7pU-l zIq2VLhCibdB$6*Sv$vruIaXwLx=K<>tSaYsoia~9@-K)H)!t%*dnbXQlD2U zY$|oRn3^26lUsRdtWjvWl|2_tE~i_Z9%LO#BigL0#{S9**eE+ zU#RddPVfkWK?iCFq1SwS0BQ>%p8wIU zvgco`2^T5UNcY#0ixr7T@goN2{#&-))kpm#jEv(T<%rXV@jq&+oR)c4SVcH)mONQ-;B5B$H-g*h|VFC_w#dc`Y z@r#C?E~lU>p}OYG`JY4qo#4pDX7{SST+`{=L2si{kkoosKg&zsh=c+8v)aBO{qyq^xH!J8(G|W9wi*-Z8J8zIqr? za;CqVYdsOAp|L`M+rbB!O#B-{@-0VA$#MI#b)*Tqy#2Ky?K}-5M8mGsTF7MMIZMq7 zVj=k&w%ckt6h&ns#7M>GcwG_5oIu%IyRDj<=AXOYN=^s395Sk9as zI|D*z^pQ|b=PHmxj>t}zsC}0z3unjT=DcHG@YR{QbH@VbouG}1+l1@0;p<9Dq}CCU zVM`s2^A>@YE+4IJ-Ygj3$|C{CgJYN7Ig6;{pk&rX#v)yPzNNS7xZrb^Ws@@xTV^1e z{?1V2vo`VqpQqB+_e}n5#2TgAIb|ipSM~s%TSQ6Je5vo{DOy#j zGuU1$_9*>`ajF}!qIP$V81hU@K9)0OgiXBUwck5VI@&v2Ve3bUiJPV1x<`vLJMJo5K0yeV?1It}I-7E~Iq8`I~ z?a$4gd}fh!dUXl;!NttyY?YR4vwW5S+!r8RPV-;KbjO}9jx5lGM5u&tu*6pEk~-LbDSDvO$dTp zc4i^pSGNW0BbE+S){35K?gH)yx(uyu zLuFHbyOqB>cxb?mB1*5&TBdg7);$o7Gy|jsEtfggi#4Q@4ShUByvq3O)VIjAi-F!U zeM*A&YO^k>IFBnhq}8R3YI$~MUbo}(46?0xG#5j(Rlhv!yBGVDdxZB#@lideHWa*a z^fcwiO`rE7np|f**U-Hh<$Q+_vmn7Q8fU9Y%(JyQg)|xpt9Gi7rz1d%3&%~B29Uav z^dlun-Ec%+4?Gev5=I~+I`Kn`nDm6*MW~`FZczWxT!AAzF=tO zoP$qOEA<3}+pt5<&n5NigkjlpmvPfkn(6&L6@9}U1!LLSr-s{JO1(~Z+gTB{M*bSp zwPv&;`sJeZ?WA4%HNM8u*C>9{IRKeZ)uAM(Z!zPX9QA`nImFuaIkwVG#O0pdqvNGm zZ)=s3l2bYA@ImG+s>r$4;bVV047}%=OH1Fck};d)W_|CN2JgQVcUogjgPHUBP7yPX zC$Srs1sjUX@h6Ie+UIL0UQ0^!@#+Fq{EO9JDc$D>AMVpu;FEu@0~q0EW57WW*faqa zO?*s!*N(>UC}WQ9yx>f03}h+jmM=A>CL(sDxCa~c>@InkY;mWu>LCC*1oi15uYn;^ zJCCc6skaHO>1nR2A+2rVYh!IZ<6z!xZ@Vl|3wfj)%JT%A-UqW=y3A+ImWkstUtc0h zHOfcT=wh3sLwpkHh0I%#w*V1c+7>W)h~r{<7r&f6%-00v+JfBqEVWgqErI!0|%AKG0$d1l&n4PA?lWehhd-&MMp0>RB5>O@tmi%c7~ zji78)sfdqfuZqqb#N}fa2X*>;oj!YQ(C}VKxBUsX=40V#Wc$rHW@=QOPZ#oq9>vQm zo5%hZJT+t}rD$`lgo*^LR;BD{>n^3X3w?(ZvWtJu()^pO(o}J@%Vcz0z8JNx+f}J) ztA2)mVY+Yt?Xypu16_y5w>Uh+#cPg#OdkIJVW`t?TDM9+jXAukv5&h?Te6AmY9dfi zOV_I?o>y%VrJBHxo~4uY{&@|h%2E1 z&wNlIuMjodON`5AQIofwg!eMo*IZ*ZEMo&WZE#Dn2e#!|5pVUfVGz$jb$ zT!F!`#yS$iE~tzHVtt2q#G_hwvC{}=HQpVSqzw;SK2L!Dm#>qxVqwALTX2l2=PXfp zgqP($M{|v36Tql<3E-<%W!3)4t1_2aY&;K4H|o)g;yc#NUMRyQ8Re{P^WIVH5`N}s zO=!DTZZ}=gP;xeW&ert0%sEG$aZ(rTymjmgsFRtV7F*LHZnVyPz?$#o4$rg&vAWHZ zalB9OxbIy)C%l#c6-R~G^Phb#^<>{j>=!^2#7t%J2Bb{4drsm7Ouq)F@ywh^csos~ zdEelR%tx))4%xSGkh#s1Cr;+XygYlFHm{p#C}ICP@MxS@TmS68To+r4%yw6KFW_dj z;}cc-VORDFzX6Tk-o$Z9X7K4 zg!QE!fiBWbiLf0PGFA0dKMo%gyv9T(wrerZ~JUg-L7g}_$`;o*9jK^H!pbNd4$63CD~z7Zm+E6$`@;yYSXtU$eT8a zaqLIWEiS=l7Mw%mpy#c_3>D&KRmcz($J_j*sfvF!+$u1kX%XuX0DW_(W&si>bal@u zDF117iR>J#b)I5xcDy|3z~1^NN;5i=zl(2=)4reIMvzzUt`tC|%8X z?}CmVqEa#$-A9aYuM<20Z%}%zpQy`ne91S`+s>?&NQB?U99ulSH05M98`YW zvPkb!*5)^Dhg_R}?C*bRXY7GD?f(x4&VL>1G2Hae+A;gP-92cRceC6h#qXY4`+t4- z;=3RI@KWqEx9zxV>ck!Ajb%j}ww3iZWSkWWJokG1=-cy$h3=M+vW-0}&rFQ2{CHHt z_GOkuwSAK_SEY?upb2qhJ8KU%+_7LvNJP6qUL9R0cI)}x8?{}M-#>idbaFJS=6tGr zcDSCm%&Z-|Kk7d{E`&C_e;s)sNq_fjuO-#5zkVd(@Dtq!?l_}b>T${ReC?Qq+j3lX zg&g+?b^E7P-?PW-?_srD9X{}tEU%Z`hnsGx`LQ8#fpVXFzK-$w5cbTyM!4F@MG_{;_vH zn?4~Y^4nXp+dm!j{^bQP+ICF~(d|fDRP#1_z;(T#T;Z|OZF=exw{{fbU6xxcHI)sn zIX6f7&GFiy7-rd1V`=a_8&lxB*L#FwzNt%Xmq#87?KJ<pZ>CcN1vt2<(kJ&Jqk7T zl4oxB``F|0*VA5COfY{`dg}d7IRom$)z7;vu{`Lr(d|}q;paD%n14>x%=&hH2D`K6 zXJc1X;EqywP&eawQGw_)!wzDX4Ni=8bNI(RTQN*Y3(G42=dSS^Zot**YEmY z*Ev@t&Ul^sb>GkX@qc_BaD}l(_@%)U!g&VN$4DnbX|h+wYYo@&wnJ*0hKsZ(hS17I9!9;6g}ezWsM{lAiyC@3aRqqbbWe& z>hf6n9O<2ySSOL~7v`Ktx`0aUSjM5Akt(ly-T9#g_Xv4nrGJJ{n~KkbU6Tm-W9EiJ zM|MQj{@UpOv^=)fqyR?-#(bQN#Uo~P5s{mjpN%)ALhn-4*jR7a#r_VQGFqfh#?$o+Z6Ys z@1|HIIw7EqT^b^*{{d=M!pQ)Q0)A#(ArAXUx6Stoi`n0Y8VcgSi(yV#GS~FuhLaQw zQ+INQDTbzmn%R?pVh22nwg#=70=6X@7rU51+kX0c6@Lm{=Hz~C-KC*A$9RzV=8o?_ zoV27R;mvxaZp6r#(V;0P2^{y}9~t)5U2$)!$&-XVRHEE%uZZyCLr|PiT;WAhN0Z*p z%T&dX56U^w;2H((FOrhjdqe7*PJT>EVse5kL0Uvo&^(Q z=y>YeHkthJySeOe2t&)j)A0WY*7?i?6{$A93nTcWoYTEl;wx5oJ%>SLy<05hTTp`` zZ|164a6Cfn;{BCP;?#(Naby)mOdn4~L#j!1!+#XR#tY!3QSg%!LK?vV%lW~3BeVws zSH$O&2F8S+Je+K{h4X0}4Q~vLt7KIfARl8l?Y1pDY1SxC@M+`g2H$N`Z!2Cfq?IJT zCo-URBM6K$ALMOSQ;NB=Hzewc=^bj{4EX_m{VU4SWRS>-Lz=XRN1UPnUo8G&sMd*e zn}1dw4>z?$v~-|P`kTUMtnk9rtaSFWE87~p`S_K=-&!?jtEwQ_^Ec&0w~JyrQ*8= zap`?_?~1v4HAD*}O~6KIfLDtr8>2i(;N;&5u)5bst3bFKXFsUEN#{qUL|jTJiN6$M zJE(>OEUHlAK0=&u#e;`7%HhyNIH}8jgLER1Cbhy7r@;{k?&;l}Y+EUpNx29z@PF%K z0tW>*Is7QQNdW}q`2RzB+}LHWIM1Q!aMB$H&BOnJl}wr>CBoW~%|0=}>i@dJf62q7 zL|=+OE1WdXId~P;LD7PaeAqV|Q+n?^DGMLT-%n2WoQeK$tP$W!j8V;yDC(ZiNo){f z=3iQp|LWh#RGPYoQ`{)+qj%h&p?~PjXU+m@)N3>+{Mx@@L*BfO)>?BRB06)%kJh0; zvz7-yGhKwt|HTnt#rcZl4UsTz>@Fj)1FpZ7wkcB2J*3(FtMn-Uj}J?p3;PlIx7$#a z6Gl-;SH%*)wSDg2N~jdmZ9an!jZr6lkN(eR`H^>nyAAD$fUzeU-&33b(tphUUbkpG=(4f+RkLe~}6Y)HG>kN$fyekgv-#o-aK#j<$<;Iv(>5jZf5iN{Rn|Z4fcS*yG$wP1XQa&vHGd`=66VI1b=sb8 zo}J|qNB$`Kmvf_DMk&pAihX>_curh*wBA+FTsAC*&K;pU&=SQ)Jn(_2+ z8K2v=N?S2B;#rU$#y)nEUS{SZF}iQ`TxZaG(;nBJ7|-iRs3^5bb{LaCEjS5D3**v~ z1mSL=X>PqM>g3Z(zkf{diWDI{r)kc*yS~Yb!%F;8npwiaIPbxkP02If(Eo>@jR!3^ zb-#ko3yicglKw6JWy;hk}&PbvG;vGv@HzF}ywZv``o>8;4 zaI|xTvi0FfHqEA4#9K4ik)PZTFCIEzbCrUs+|?;@fe1^o`pfk-p;TzQ~kZgr7p_{dz&=tpx?yDw*;!6aqu8A3xv0}sgq~xKKYb$MA zdNIK)32Us_5cTF8Kb}w~faa@)*DHIeT`gkF{V}C{aRm+{wn`b9u-=%qtO-K#? zzZ*08Vv!Spv~tn^lNo|T6i)yD&tFP4OTZc@mU6FcLB+W~cx3qvZhLO~><=|JfpHw` z;Nhm4v+#xD75=VzkOq%R{i(-}*Dw{eHc?m)w#NC{o&G54|Fz}Ut#oa&UysrxRU1A# zF}Er#lYi|>_Bt7S#cdy1JmzVR2rfxTWBG^3ajxV4aS$P~q(h9GVP_m|@570N$ee{p zN#m;qKN`Lt9UL9m_mb}>Un57z%FZm}@BVLfsVy-;(PfN;F}^-U9@nJpG+ni3@e2fh zJ-_$1^SPrRsa1z^AX_&J;8A1KNtct`>&epj)PMJYBAhYOYplwMIUU@n0C~INv6Wd_ z*5DHAt0?8~&?4K`EGP10Y)5^=lIk=G-hY;2@WKct@>22X@4CJy&^RdDlq>aj#a*z`edipDO#5r z>x#43?so@YK%Sx%(-eO{$9*Lm5K1!r$|}pm7RzQMNT?s5KUnjnf_kbA^=kqseN}zoW`BfpkU?UFpWdwDKZfL6=6a=X5Fe$%AizP~i0?MaBB2{CnPw z|NTnKIG5Y!=Q{=V=MSgYpW8TV@1}|J$S?*7nP(JPFNS=D-Vdo zompfb^j>qf^gfJ1S@F7nGk-%rA`eHd<9Ah2{&NEfpNxAF zwqbC+kF^s`L+T?r9}Aw(4~31ShC`4J#%3nKt3rj7$8SnnElNNe9)F!9{{}K0_z^6^ zsHKR;XqqMAMuqtEFfZAsj)bQ+i$mAso$QT{vEasoXSeTuQ!Pfvzu$UmAN;(s?%yZI ziu7cW|H`jn_6&q+ZdOsewk8w*e->{Fa1fxn%)=!)7T7m2|D;?B5s{C& zO6l0;;G2bF+qsArqrM}Nugc={Yd%*gM~Y~_D{QT94X6UB{(tTL*5F4cJ86+37Mvgx zzl(7l@^Xr5WnX5&i6cI1Y{Q@-u6@#lQuGn66Y#{g3>s^lF5hWzLg@K?2(*kI1khxc zJTt0Mjqe{Cs#M|d5mNO57?S)6$?Gx{QhUDZZ*(bVeIe(SYYrvG^hLSw14vY$nhHa%L@sXTM6Et3tC&KPx)M5EqkY5!u8)AJzpyOh&lL5iVG%5 zM)0+nz47Cc6{8Zb@HY9p(s1U^$$G^&)kZIo{tYiP8=fkKnhWK#V)Leo(_8(LI;_W6 zfT4An7nS|uK^iVujbRm~#;}mz0`pIvoCqKYaB=It?thyXY97!I`~1~Ac*nE$W8p${ zYB+5);f0l(hcv_7s;hW5ot;GJ0P(}~`=*g^mg z)-jSich?u7)kf3Ak0s`x1aR0+uF$dGt9PM+dA#|+k3osjj;NVHF}8Q`+a^1X3P~d= z28bcb-+yds>=-oy^rjk~3(X02<@Wnf*!tXs%&Y$82|o4woAdHM@crq3@SF1a?S~y3 zpF7JLn~Uj#fHFkc2=r$%VHI8fv5V@;{HtegKhDtRQ+y}cCng;FZxLT|ndsI3q&^v!#L_}tHz3roo>gN5uc2(GRz3SEeC@Sc;_%q-Gsb}hDeLl4f zen#bd57pc?!oH+R{1yoKT*qE-iW_j0te$zmSDqR#o6~#M9M4J~e^OrNJ|ej!Ope_d zq<`L|Il~Jb{>K@$FNqM#2EM(~-#swX42a4udAs&&vb?tI;8iEuxOiQ3z5{gEJn(50 z8y|9EwsSYvd)@G7Aqo^c5pLP4@~?y3g0;y@HaPdUoEhyPY*Y1&^KbDim1dry5A*xq z3l?pI2~HGsCBH@cCsuF;XBvj9KwUFy;(xhb(S~2YBE%XXcQuBmAWzw4Pc!TEFP|0{ zD7?%JeRvDZRfpm?bzh7hU0Fk;pYD>mxpjp63g4R7y| zz7poFvxn}~TVj9Ba{-NT^|5ccOEp|?9Xcln4a)kzoGqV!(&QexQr^j)w0|x3Z_wu+ zUGSc7;8w=!02OaK?_GHMWQtxdJyOD+m}zdk__z2}$yYW#5qY_i;9xR(L-x6^-me@y z(|D)Yb-kgXblXj2Xqlo@V=2~v9kRgMzB>uK>!jyScJN6=-qn`*MS~)|ql4(mQylI! z!H)$1g#A|ygfFpc!M6L+K2pB4ctJpz*94kTLvzE3s}ftm0eZ zcjJ58GvE8%GPR@216abJ2xPwg3IjU8ZeLQHWj=QJEe^aa+U>I!l;eIENwL>Bwv&Y% zP?MFCMReC<%M!<{zpp-hi3qJVqBT{WJtR>RZ>-E3SG-snW6Ub70)GrCfx3u&Q7)l> z_>5nDZ82`~*wsx3%9iJpW>V{?)d}(V{>uEj>uG@MJI&-PT`II14vWfcBIJVYG3zKv zZFCR+({XtY*jj^J4Ts$c(K+P6WWsEAB9C;n%8f#u?`3DSann{?CF#FE?-P6$xk-D}{m7woLw-Z-j#gr#UHL7fsoF=}lYmZGZ`mXtU`O z>vg+Onyn8r7ldlB^k9R0$Oc^C!CjvZ&RhTStlQKDlz%S46^1iCG7ANuFRo`CQcJt` zyvFo%mt1f{&M6;m9JC#KnreJ=U-My}2XM?T8iy_FcI2{7Ti`DTg^gNkwgx(<@YtQgL5P^yM$YG$~7YT2$dZV zGiCpT2y8qGEAqdK?rX|h<-oqXDX_*atAFMqfxdIl)K5OU_TSIK6A+;x0qTkez6WX( z`o%kH5ypYHV>^(tzOH4Sc9fv;tL8r|m~5CF>dTufl;R)7hw53Sr-AVEQvn`3I6^MB#R z^6wp&3A7!&qCQiQ$K_X7)b5S}>L#87Gda%bsM$ie%Q%WgJ)Wi|hhc(~Cxzecpy&~k z&QU-;^(RN54071UjJjlG0la>Jw& zNuF#enTw9|aD##8;w{3v(<65m^?uDjen-h!#d1ntslKe0a>uL|=?lbpxJW59d7SI+(SjQi zwXl-2{4rF~v04qh-wj*#{Yo8Sw12asijMYIztmJ}F$PLt1xul%pj;klhxxSx72aQp zK0VXs`?Mjp!93GZi96A?p+I8@#BZH6ks$-BJwY3m*>X;y89k!30e_^@zXje;Vx2{t z6_8qS51Fs~uY%7BCns%ek$xbV76Q2f`!?cC}n~Kw{Fl+T@j39 z=+X}qXx+8}3qhb@fsQ<4ek_*^B|ASIodif@j}At(Z{K_%NpD#~tH~!K&lds~gGyT* zy=*U33YM5>=N+M+mbwn88^bjl)}K;=p~jq)u-gd6Ex_&L;eW8}5(*e{$!!>YwZ3-X zNV(Mq^3si-Rk{tS_j(dNcO?`~oa@Lk4*u1wl7YNj)>h(ytWx+sZh6yuoq>GlB~`k# zK{FhN4yr~6T7Pdb8rFR8lG7OS<-k565c}2UPe}X0pQdoyhV}VRsLu!eP2oH;YJDx2 z*H+~$$8fP-)qjZ|dq+e=Z3H*#Ki1CimTY%fWZ|s}+Esm>1M=8mX3rXUoxQAWs|?sWNXBXfq#%$Y$L%qpnU4;h6o%z0S;Wo*ZN++F|OW*8}?}x!*<-90Mv# z!k;55Qp%y&<*M9}ce_2@PMMF(1p+3{#{_)oSK1*jGM@}ceRjX2<{kZv=SIdC2Y*Q4vYh2``>*J6n_YF-igdmOa;89QNGJynZ=CD40oL= z=#?8JA32Vb!vcT6hvDz*&OV$MKP}fd_hkqZ-2vR?CL+-zOk1b_053k*Uxun5_h8L7LZcD$zXJj8QjhL( z`pV#OyOCV`m_LCNl<(n`G<)zz0qTWOO==DacJtj}xj(FenMMPnp)v^QE-sU76f^5|}IDSxnk)FHc1z^BCV`&mPdFRzqaA9vV?XXS_4 zJ-ZkEhhn$yb!H*6oBbeJa9^U8Bd+=0CI+oz+q&*cy(-{|kVbn-mVZ?!0SNbqvGg!p*k^Ka+1mk*SKZ&;KjEBGOyMGD2 zm0vH5%t3HLmm{)}#*#BK>$#<3I^b6BveQ|6Nm2AG@xft>mzK4nJ#gT6~ zEt*#bcu4`<>or!|m|w${d=KHSW*QRymlyqP$2}4G`Mpad8`^XptGWAa^hQm*6oxgi z%-V@mkNl3+8As5=frz&%yXbh<;jZfhC7|u<+%bHz4;UPF*>YqS zihUYAboG24Y|>ShX3QUg4!v}jnyf3ilL|~$I$bsP%!CTS4yAoj?GrrRfbnU_q8O!)%W}8 zXJLiDlZ9cKSjo&50hkXMSmo~chwWp~sZD9D`IJ)Kxe-Me*A0!u~H zt!F#%OfIp*4zrDS4@a*r-;a6rFY`px&tkr{SlpJFV_z?VtS-RKml;R^u3vT;hlgS^ zQOK~Ypu)Y^(@|?>Tz|0J*cQKmeMHrXV#>*FBJwIRAOu~-{Tm@YjDDZkIvjTMjXcx6 z9KYa{wl#@$=#x&zLH638d$1_0ms|FU$Tr0?c=|5-`!!2qWbQIVi+L7CG&iC6?$#t| zOFqq)FVpK1bYwfZ6MAZyfdp3cI?Jkya`;4KExGYgcIC?iK^#Nl@6bMq^rovscT+IoH9Q}%|!#lzv; z;yZI;2!H=2RNmv}GzH%BkNa2&?E8yh7PIhsI4m?c0SWJKUW9}fEV2GUUW5|jK;b-` zla8r7=A2udX;{PZpGT*^b080c)ss4R0*%@LtG4Sy0qWxg>yrqGI4nZz zXRp=zBI5N4c?NFmy=P{_{V2_4$6Tl!ia+8Rc0J|pqNA^HuV3PnzcjNj>W|qy*o$+< z^?yYrEQ1F@JLuH-6eM-6IEaWH?!m@4UOP=ETd6M~UKG%FMJDX=|7qufffu<2OHu!- znoh>MVXCv3__kpbg|YXn@G>w9*=bS%&)oHyK_4n1j8%4#RF_b<+g%KFXA-Swp0Dg+ zOgDRYsKo(n*+Cm_0f552tan>x2}t$u;(v>~e)>J(QII3v!{n6Or=2xezVe zksgxNrwyT4z%-0<99e7;^}*cn68`@iaH;UG`8%GX1N>UJsVSmsp!eeuVH4u3pp z{kkDi+T#C)oX72^R~eh~;)XO#J}~l+;hmY?=?VSp_*H+wY1KcBND^eDf6l*rfN;1c z`UgUD7#$kE{D}wWlu;l3$_HFRfi&UhS6NtZRVi+rLa>ooT}d$Tv2V=?L?SD|B(J=Z_c{dO5Br@ zz}hN7TP!VZJIz7-r6@(;rfb#d4coh+s0IIZAs_{8XUQEUG9FeuKnA;3+<)o=4A@?P zPXaTLNL|RppMBI<)`x%9ogWl-gJ1Sc!*X^a2Vg9BS`h%bunM%J+NJdFz3;cOmwvlo z5!(HsY|9 z&xH&IJ#x-*mzhOHxMW9w63f_al~7X6Q2y}7s0m>mFJXKSkV%^qW#b#3SFK?r6i*%^(7}D;y#f)il`9{ z{?A-irVFawL@hP`uoos!E$#;g?SeXCT%7i{S)X3qN5||doD+QzI zam>%%H&&Jb1z4A_B7XolOqlUrL|T_`APCfPeihjhH;hK7YgnKXC1}slf0bGwPZE&s zDo>hD-dQ`WAs7k@JNoke0ym%!Bucwb4|n&{ckXEVA$_4B<>~(xY+(&Mk+-&UpDaK3 zecm${Z}AF~2NP!?Z?g_8`jhtLC0h38SN+v_>W`80@TuXzB7e+I@Pt^mhC2A-E4T-2 zRoGWqU&qS5(g)!V6EuSzHw^d9jXn zi-!70q$5Fuc{}8vQy&M~D-bJ`()aZrk7IA^lEUnU=b%G!DK?}dZh9wp(##Xu-gk6i zSB}lRcK+I8tbabZ7k2kSB#i%mVk*Q170*(9lep#x|BAY^qeKWfU)xf^B3?Hoz=9(B zh?QH!NDcZ0(Nf%BEuiED5wv7ZCD0&FwdfL zzy7$KGjEi_wf(!M5*$SSHCjzxf&=RJ)Fe(_!+fVPR_jZM=;5%)YugKai>L}?5BKY< zNSCa|Tc-vLpGDM1a~`+FWLx#&gXn5=9@j-3+Y1?ss77-h_r-DB3v!F7N^|hbMd5eo zZ>WYktA9Vn%)!w~KE;0PSVPv?RVdX~q#D3X$(Oc00jajLG7L9J^>cvi+o&7k(gB&c z6DEc0PWB##8@LkbmlQe`I?%_pFYkIkb+DuM`X6Ql`bPkQd;6+aMdi#x-@2D%Idv5U4S*ZPJ<&p|Q#2MYh zI)4j2^AP|`?xTdjPs5Y^@34@W;db&&=K?GX*dx5w3jBp){8k93q<Q2r1bg_|1`CF~Z34<^Djj={$`bV{CJB?lS| zEGxCN=tSnI%#MSr3V0Z24_E!c&vDcU;D0M^*)YnHV#Q>d4YST4%ArO5??6eBo$%Fj z6|qtb$VjP0_ULd1O%80C9f*asTpnf4=K3;ygYfn>`>9_dWbas`ejXa)G_Fq=Xgl=lKjQtZm&Hbcz409uon!nhoidik#APRW(zh1?i$Btt;OPM@ zSt?FuzJ>QZiCzn(EF3q^LAHMfca9rpBik1M&=up7TXx4E?O;CI7PaZzTduH*%f{0q zSWm?93Z&I>6Fy&#={jOf+z^7i9Dhp&`hMjv#q!)X`>hY0lEW~EsHo2e)6Nkf-qLZ{ z2jkb{{tzQ2-^|P?3YFOnVRXVxsuiT10(JsMGX<8Sc%X^MOO%EZ57dzYwuO}_#h|9@ zzVlox4fouQ)#dB})O-^IZ_D;hC9s=j-*7r~^)%X?>NMAndjmR*zIBW|P=B7q#|VV%8wx3xO&zn(nGG&`+W;F}8se8G|S4%zta zqYXU}l~lPOw?pK{9VpG00GD0liGirM;>O~o81M+9xq{1gkOYPT2H-9dX?c}iVH(OT& zwhiU;A=ftn2Kl~$sWq!E* z)OkECikxZo(4Bq@p#CJv@=j)8G$F9Rn@t_nlHgYk5{z0>&AgnweV2a`I`i#^jTu>8`Ox@RuY;uaP>?QP{SkFY6N!Uf+^M+v&| z)dF?V7#`KIKKMzIDSGP4KER=!#SSaWs1E@viZcDCv8~eY5kbT1r5W%yXr3 zoOwRwIf?k?KYxIIsG$UAOv6pTHxpVG9=70tVBL-kN%I4Mv@jS}=bJHd7+TgrDFir# z`n)rfKw5O{b04j52D@-!KyPf{=0^Fd%%Wg*SrC?QC0=N`tLP-@@ry$Q&hbsR-N)P9|zav;nXQ3a=6H!*vpi92XMT&XCF zm)2oZ{C^xAGi+{E_c06p4tL{;fmma!Xj3IeXc@yS5-EpPZHt`Eg0Lb_8~xTdN*QNw zfl{SFsXm-%#Xi~cO#|`5Tx7ApDM3VLa~7;eiV}7>Dz*zAxx;+IjbI5!zDtS7+gQ$F z_c z*xv0BB6AphcP6|QT0VhV<@tuWe+|VTTZZA0*)0K44692aTXxv3Ls-r&Mx=BcRp_fU z9)E^K*ebOcPqlpKnXkh|!9F?=%jVdHi%#UteXI=*4Y;i!ZH<~bUSqp$ho z(5xo3JFFZ2>*e2aK+Kp-KU`6rMeE*!ZIP0}!il!}AO*9lI$8){=kWXFu)8NLIL+BE zyv_`NzI7EX(ZKx&!B#Nd0VvpOlgM7RZnu}%FDbZFkHn!R7 zyRB_M_?L)8%;0Q(CVSI~to66)S79s-m_`e=|GgHznb;~sWujmmfWp0=#GU8_$A2y0 zb)h9rzaoeIfx|6t3oZz7*-Pxn7k&={;pc)tcLUxOc<)*r%?}gX6~Vh=%o{Paz!#WsTR47X9t!r_PJLHW#lg`hR=PPhTuX z*jzYR^mmz`x-4RBE}|{^A?7?zi=;Lek1e8F&3T*`lWi_uSVVQ3^SoHpvAHm@i0Uxs zaakON5vBEehLQ=vqX5HU~Q|*4bQmT10&{2ftW!x4E#ki27mC1Xs}77yLHqPqIM zjto$8Seb$GL?p)8>LSqd3*6_} z8rZiBE0oOgmKk8JkC6BZ5h#U0UAF)?Vz`3V#+mMzeJ~3W`PHv^*9PS{ zmX#cK0{nR`-isCBf=ZE%BPpZfOHs(%>Xu=2Sc>oNopUq@X9Q8n=2#J~jV_;H?COC7 zIvMA3JhuRMl3U6NI`X%Hxyb>^cE;CNnL(w!C_!3@Uphc6d4C4-8YWfRLaK>24lErP z?$~>gfV_yb+6s*x0?qPpJ17A&88;yl{^bK?!>r_)uYU31T=dP+6WW~@ljz@t5M$B% zVWBcWesUO;@qR983YvZtl(=&>@Olf-=P``FR{e@qu_OwaxX`8Ann~9Qia0SwTr=bX za#VMb)Gf%bWEBSt*1k;+!|J{}g^V)Wr-2Bj87W{G zlef6BSvhY-f*!o}D+lX(@`c@l0jbDAcWz&wwfa%pT7Nk-xd+p@+h&M@Mgq8#``XYT z)64GNxsSQQuQSK_A=PT&>6Fl^IP9{@gD12H0*DJ%qe)bq7ocx$Uy4T~Ku&ntx} zZdJo~cblRBSnzOpTrUcKw9%ej7nFPhba;d47}NL2tP}Qqsg8AlK8hZR#JbTS($+6D zBLKOp$bSgRo0}jb#P`~}**&=UZeOD#J5+CW`Xm+pYWK!g^`=DpXk{{@2qw4^n1#fu zug`NspUgrUhBhF>^{_c%)J$Uvnw-mO1^suJQ8&}xB+hCXzMny zZ}^k~hJBLe*~g21&<=E!(o#1IeSu&eCYG3a z8@;Pc@w*#XuN?N~Y zKYv4m1EN`ClC6vTl9s`R^aJ`zQtz0@ymOEt<_OtV*Gcal%>l=Ht}vfD2x3@=jMg{W z_hTH^+VY+m3LzPE6ZVcU`& z<9i5RGuW+}Jyu_`1&L@8#=$}3Dd>-XbZu3vUpbaK5s9)@K%6%9&0w4vF`ec zQj1IfL@yic^xKI(9JVc%#zN4DY^A(>1{ z7|__W@qInNw2&GK{;>N;3!8+71OT3OLzJ=ijMo1w9CDmK=H4g;r}3VO)cRKY-GMSp za2%*(mKiaH2`k9#j4a*TkpMfPwWfuw)mIQA1;(9`#e4I&8_M(FAejJ7C4cD7``!ML zn=-*tUY8#MXm|b0R zo-QPV-5#1E@SSh%gi2Aq)3+ey+0_LK+{3kWMCR``NI1HnZKjvV$5F93V?9K&brtn= z3;qu(1S*WkDq5c@@TH%Hf`49h9^g0=u_9SoxIr@=LNShwx4!t(VM?8YLM80nm78z4 zFQRNO2rX_a%z-Z#X>Bj~Ep9)W1Kk!gZ7&!tZmZ3Ku8YRD7qS+&|1F~~LTxW7Ep98# zAukuDY%jztZvWrwr{)mXMPD2(THH26!0iLO6@eckhI^tNL(PxjLw~zhlE!8{db1c3 zbx_nJ_3xPIYh+fEq5%~)8^l)UVA>5H9tCEn(>i8jEqv z%A{NUroXjzyD?1q^N<<+pe+i*GK<+z9DYX$3w%6q2hvx!NyDmc5eKF0thdx>3c>;l zx6Z?j)n|jCOHw=u$bZv_NTyj-p*lJCAL1%B;7(HLj)wS>d>1JqC8M5Q3M#q$0N34Z znZZs+3xUP=QLI}xkmDn>Nw_^(t@_L{8q~`tnQ1JXspsp@4&J)FQ5VOS6JrbzLU}rK zhhpegr{`>7<5}1z!0Zv_giZ-k_A+s|Vdmmk5%J_C3)_`nzJGY-9KeIb)@@7{hN238 z?@WKckcRqR?(G)NAZ{KH3R!$qu78sg+;$ScMU&jy8|c@~jj%9B9lg0GMcqQe$`^js_14vPe*IcoC(JoM zdtRZ6sMy+P8cua;!9 zJx;w@#AyNBNtAYBvKsuM(m8yCa>Dw9x~AQ`<#`vLmP4E2j5(k!?U{0h2}C~O5K6w3 ztk<0#1CLI(pI&YmN4kC^TC*G+SOYH-oe^_y7=I74Wvb8D#z-NqUK7x4A1aO%;>~xF zY(m&K04+e$zo+9sMx&4IxVOdDz{z{QG*_Q0ur_3D5al@rieSSBzTFA7y4{@#{J5da zk9EeK6t@n%7IRv#JjUCgI{=yvcCUL$jfP}xtLnkas;_2EZ(2+vS@Elk4n%8Cg=!S_ z;3lS#9ZY{b{G%n+S5_kGMyZ*F+lhvV-3*7Qa|B>FQG zwwDR`Bo!<=YMi@Wrw^B{zItzZBQ6sCg$by0;2T(Tj;uaM)?5*r-e`zKXEQ;pQXTJ) zO66}C>cXdMZkn@xw&eY6$=SBlhkI9Fb(-F&h(z}@K^{**wMA})L~h+gqTew=%u_dn zMty$^Pr5YqAZB_H{nQPKQ7qr+Y4$cY@1)C84`QqbaZCmBj`HMf)9S*LYp(cBZ%jn) zq(ttDm_T-^K)z9M-nOwWysqX-*7U|&GS*CeIl8o)R>m9)uvOyAmU`FQW zGy!+Lztfuj2fs*C>1fqm#v4cc$jrKy2Tp&q(F1tfn3%wT2&CvHDIn@=(pH_yWk01| zrUT(kmlM!28NKB@hb2VDroz!vh9Y+b3BLMQ840I)SLM7sOF=06hE-(zC58~+C7MU? zDm(A4O#u5g#uLQ4JP)EgJcSUaL5;yZ`(|2UPhyRXSDt zB>U{C;EXbS=&x4fPrBZ%ix_|7an7Z1m5{-!Wbex^g6PBVehPyx^}X0Q7gq-IO0yy*il%Tuuur9o3q&#p9L{H1oxGu~B3 z4)758%M8lg00vPp?+)*6Y&?@`l2?-C+sX;w-}p4>FEY3ohP}n>mMc``yaRtyDCO*Y z?z?O22lgZ#Opza7SPym!U0V)zJ7Df_wGc?sVmFA=ZckPJb|JW2ZoM8&))(Cv5{$vC zbGI){`*N91#YcOe!kbO|T1xnV9biMfQ>iVyE}_eFD~NLS)g!+0%NFvh?ige}W@+<| zIpMtLkpuB#hu65tLOz9u)m(o?n)W?Tg-VUGW^LNYqI2Z+&Kv6y8F-mN-KA zsX0C#j8|^1bU*Yz&on2pGdw-(;%jbp$Kd;`eBP+N8tB_+zJ}VmSZayPG~B7(*=jdHak9mDA)ornP@aI3Ze|!ud=i zi+E`Q%s&e;tHMW-`un0{5a8{EyLlg`-qMNo?x#Y+z8i`mhRxeW^+ zc@h2vLVehnZmVO@*zcn5OSLWNfICYJ%5eGU|bk)(E6e z42z&U-|)M(E;76G%gZv~UJns;%R{)K?j00tQMC&A^U)0WRT-xuP8}ORiPO+fx>obS zupS`2KhfrWyJ(?J1%TT1cr>H*3F=tT>36%}CMm&KAJ2C8J*R(0F~CkI?dByw?KdzA zKZI^-9xCxG!^H7|_3TwfFP;(XLJ`l;k{jEbwB?}|ahKrAL8hermo}a#&0XVu2BCqw zIs7Vg(D5p4Gag^~~xT5u?@~DAbs{zR4d0#YHXI@9w?1vY(fi#== z0JUb_eG0YZWc?|8WzWF$O{H~EWhBOe6v-2TxU=V-iPl->v1BWSd3x3y08OIy@ z;yDes8tlJ9COwH6hoAp#ccco9QvnWP83uEewIh7%W7|p#Zd%`5^V=l36KZdS%4ER)t{`V3 zxuEmy$TffesQ6I)O_S~ojx*6g%8LwSHJuc}(e!j?sLUo^Id(CoknFgN82hcA>$W;=t;kwAa$?auHo>LD=r;l)v3)LKh=DB&i6 zqc-!+w_62r6h?D6VvXgu%sSQ>2Q1ModC}kmRBz(4%mJ40_4}`eaku`@hLZ&%t#U%N zhIJCpl^}P5PT`J5gVbACrA>)AbpU>7!+IM8C9vtEfhmi_)U%z2*bKX`g|E(64XB8X zf^&b*!pI%{4&5Q#<7-dws|NZ6Y9QiUVy_90|FwY}nWbmJO9GMh!-@i7ih_~)IUw7w zcmF5*0;dD3bP<5raaw_!XTzC9X$rS4gR9C8vv8Whcyu_De9gDc4^qc)XFCiPxUn0? zc2h6avjwkHirm#CI6ek#h@7LkOm9@lA%%Zuq+KSLm=~a{2Tn({;OcX5BIZLnyoCw- zWY|&gX2$1L0Vax7dR^+Ln)mf3!wK(J2E)m&`j8~;c%VCemAY=$&yYgD%7olC;nkM$ zyJh24oc!T4aQ{`8*AF8lXPZ{F(gSJ@YYGAkhQIxBe<^ZGhVK%lqxVloH?#xus%(E5 zH1-tkA_y=V-Vp>0ML85;jPtgIbwfY*RzW_fW9(DG_qXa#DBE{KiZMCjdtk{ec7}2h zr@rWdn36&4tAEjf0szZlB2dyF+O<*F1bt)>(q_=qrUmuT|F%`0oZ#C z>w;TAfv|`*#g}ifW`hqvEirA76T&`ysnR7>pNnEfMtIu)MO8I}=y-Pa! zwI+xT8K^TT2c#^T?aKWL%=!t;`w1-g3C#Wp%>N0*{ZjZ7%U=T$$v@3caMZs_$9xfA zf-p;Gph8TqQ4DvR17^a%HgrPz)wowNj<|fi;oJlgV=Q;J2KPE>`qDvC!!zHkSHzZO zxw+Thq}?$|kz+!yR%L#xuBd-eh+>q-n^@PWRS2Ui{A_FlxhN@%NVnp#8d6rg#9l&R)Qlg`UjJsPmX1asRj-r%o zNV6xy=EP~3+y-*CJ?woaF32J=j+ixbEX@XsHf$K0CAR4Bt3VCqxR8I!(MexIpOGuF zNULXh-QN`DNTMaXa~mPW582s!5=nOEe;4&|BpH9htO!U1ryqp2N^IfixGD}?+Y>Vf zWH>Py&uDm*>~(6gkukZ>D82vBGE-W048HyZH-6b(?QE3brIer}pE<|Z)8FIE& zDT~2n@HTPU#?m3pl~jMm9JrY1sz}I4pF}TE~ z7$^-luUK;Kdq-@TRV{p%2xA86Ys={5$C6Xv`%XtdvzjYU)0-fX=p-h{a#h1U7m(w9 zr*IyF!IwM~Y{)LV!6GcP>2*HA*tM0Q(-F9VI1M?(p}THF-jaJ3{x6zSpwDEuq#EJF zB7Fk-Lx3|Cz%PFkY^Pm@!>hz;h>)kDbqOKlY=2C0q{sCB8W zcmi$g@C*DMFG%mcvM=aKcjkn=Xs#M~fp&w_K{RO*?{k#z zXxM+i{W@N3zmz=l)(3ZFjYez+#X64q#70yGZPBP4`a}GPSn)O4#i4n_o!#9BzV7%? z7C-rmh{c#P9G@p$I#D^XmPgmem{?XC=2I=_k4v%msoepX+Bi4;96%Oq9VbQ^m+iVr zhQn%tr6>PtOk`F9agx2LKe&9?Pn>q$m>GX#;@~I}1tdomp5fuUV7VSlatb&t_{QV@ z>6H@G7M)DNhH9n80f_NE$w?l*KcKvrUcV!JHVpTdEw;gO05>W=0~Zn`oM22{Rd+B^ zjwTIyAC6u%7<2$|Z_t{{{AR%CiXa^8Ea4oFj_H?gjC==(lE2f4l4OxC)8QSJ!U2D? zqx}}U)3{(KO`5kR^*BBNGR?aZ4&5&1(!g#AI3ai_ie?Gvqz^DYKQC0(reEqprrT>R zMn6K|P_pe{v(C8jcW%z>5>R@GOY)-2clrpLr~h>cKHc>f|E~E>ud5i;_dVNO!q>@^ zvRoE2>xj~JZX09#v41t8{cqB4FS37Q+U~$)Y?zG=hG@wxR)%PatuBJGTk6xAD_VxT z2Tp6JaBE!BVfFq&^sahiOt2n(Tx`&#xiHuC5S&U(m-c^Nhnf#6sjK0nETq4mW<@3g z{)(U$Nhx>)3l@KOgGWvp&b&lKajROF@LyoXGnec!7ap=Km*F1c%Z{lOY)gM#f_;6# zqP4dLxKei#!F7WN5?lW*t2li(R>t3X@4SZ(WBO@{(`-~KLo+TW<2bdj9q}->B;*oU z@D0YzT)oKV9L~RueWBS_VqG%+2=yYIotdu!ifQ50VUbZf%J|t}sJ0V-3)h>pjT;Mp zU-gY7!r5;-ij>{TT~K-$@mhauW+9Ek(AP*K8f;Fg_ZdPbY;Tc0^hOSUX%qAQYXtL; zJ=OzZlR*ziZD@X*%K~XVE|Z)uJ~@xSn+F zjw7yEq8Ye(ox;I5^mcUlXqk6UieCD+aW~An)UvTTrowofvgqb9fe?Q-GoemDv^EAF zu@l&58kCp_SGF8H@1y6?9YG5AJsPI$7r#858?(Ldl;$Yvq{3r2_?OX+ x(l0b5M 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

DSa=8 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궟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�Rnb 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

4B-SjMmgl6l@>mIQ`CWAWML$KVn9`XmsQicZ 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%0A=%D)`zUEj>27RbkTuXq zs`g|^Wp^n1g+4fx&XiE_PC+o2%8Hk%_7X?I=9YHslTRuOJv-Lhnx?vQD55(hN3p4% zv3BQfL>{+FKhAovBaW%_0^zMX2voqxe+aM5k_y}s{Mj55^P#9>-Px9WEfWT)xhl}q zrs@cm3e_fK+7K{O9`@Gojfezm3S0T()y*JI)AT_TTB++^pVDj}(6^%|DMMV{nGUA( z4HRy+HDk)f9^LW=XeasdhWO-$I2*B7ew*6|2uDkMS~w_i;b?1b5RSpk{B<_we+X-# zlapiy^`+9bCXw>?vaPjI6CNo0Gsv7MQa-UN+L24F3fd$7rPE5(tJi~gog8& z)|$IAkh_Gv4K%UVT-5W$NHf*TcH}oQ5oa@~&&e6Jy;%;9R5zaYq)9dGMzj^xogBbe z!pbusUnVvCwy`NSKPjWO&dpCse-%?|d%P>Ewx=ejn8G3H7!?r{7#*Uc@LK*T(efFJ z`rd%@J`&~K9PHR4f)>--l`sZP=y2Dk#0&P$kORZrj6Ji3heO<*`FAh;vd;Jw(He!Z zg&&K`QoGn&5Wk2Q#0@CFZBP|G2(dGmM$PiHFwaPWYHHOCe;P%LoS}J> zg^OH>MT7w==R$ZIi>>a%6cXssMIcKL3d}n5-GaJ^b;p~EP%!%-z!Vu~^ zwQ4{|F10E_Je8eSOwMa4f7BA&7bsCNUf)U?xk%X2m{Z!8zN0a(F&FfQ!d9^7aZ>gy zh}%HJ-j$Pat!Bxg)T+UhP74xiGB}>S8=Jv~y?aC^E7LWU(s(ajLm4+&^gAR;>q<%5 z17^Ht9|-$Ft1@(wYVQIg!`V|j zx(PWvn`RfG4c>9vsT#_Q&~k~5lOl3PaguDIljXNtv`Jl==jqDY@?Zk*k5n6FhZ_u_ z9NTZzAfaltOT9LBe+jp-INI1^j)D-IbX&37EtEadd6fG2bx;;D%*$!{Gbceq9|BWT zw{wI}7N^=?Y<3Q1@mjWk5t6)+mC7}A&%kk#$S;a zIo(7Hb?my^-6F@ySq%5f(q41dYw=q2c=B!G`}QT@4!&hQjE~yS#9#3X;!ppX_*ehu_%SkH!L?%4 zj9bymc@+#(7MJy|ULCVrFsN@JBpmSNh^dulXhq3e^#2&(kc|yFr9x)jpULGK}6mp(T zfp5{z)3VOSTq2|N<{(PKFm=yv!O#Ptb~{=cwT3CORZI=!)!YB>iGA%#FC$lQM$*X0 zk(?2P*h5j`VG#N$Z132IB7xxmFx8rxKXX&G*PIaie^EK@a^~p@y9|>6{KTI9k{F9+ zBKBcWuX|IkJ+j5?wJ-9kQ+02F`ySzbAb_hL?8^}DcP*GSI?A^uMgQJZu0TzQv@r?a z8MM!Vnmq#RjODsomy60r^AMuFl;fs~mDO>vP{ZtOxAaUjW7vyOf&^L6ymDNOnO4-P z5`w?#fBLu~ge?PMGwhMxaxF`oQ-i%!pMlvP6NTbfQI@<@mE9=+U6lV^B9|1*N50mT z`EndNAD9^jbHW%oVFSKwvu-V2ipN?RS zn-5K=6bb^Grw;yRk%`)`>&0e3AT|iGM+sf8e=FPha(n1nfp ze*#QI-?Opk`um8tUw&sQ z<3uWBMro1Vhazy?L>uL~fcz_NW1E+Mg&T(<`Uk~r3I`w=!3Bj&>Fs-3EY~#zVb%T> z|1$P1u;FSn?A1F}qacFpThVVYQ0p|^R!X86btkq#t)1;hHF+k+Fwre0f6BK(%rhE| zV=)zB*c+kbP-oZp^{MipVO>5OK)tq#%{ervWdw{)xsth$n@xC=kl)T^M(rK=7`EJE zDh3GU+mU0fE<_7Ll2r6NA}odY^hU^kr|{p&{ypXSvAO?Wrokge#joH0Q95dUI(zQv zr7`D!mxi9}TO3N}f1HN8f3`IKhrH7J=T%hsdqlK1)!$18eTQvnd$)Ub>_3 zt)eNb?SrZt`a`RgjUpTSP7^mOi%QT%yC#XTixmbzUOZTN-&#x_Dg$G!{7BQX0E z_xS)fq)oNl__!vN(72hDUeQnQuK~W)gNplYNHuUAFJNN4U*es6f2MV;N$62%G^6u> zogNT%{?79ziZlnCw^q}e@y0=p$sJh61sJcj~>gqbeXj&J2 z@FcA>rgui8d0zElf4zt?OgHr6VCs%GGedSSrgyNKmQi@u3h!<#4$38pt@%VT*PJM3 zS`x){YoeHFOB9Vka-|JziH1zd6rxF%bi$Awmui!tXUx;3caAm(_QaObuGq?(gJ8%0 z>e2Z24t$*28gcb@uyIRo+!a-hCi+vs$D;wX|A;m~Hn<>HfBO>{@@M>X^58NzrbQJ& z=y9kAxexURf4-m!5;?=Z9}zfQfRaXjPRfj#Og%PNg!>uEld;DMmHz_x1H#xVKM2aR z!V@7|3o+S7h{?8cVPiY~MyuQN*Qm}EWox6dVLSRXDqC9DYd3f%{Pk?Y+c4oDViOS| zb{9oLYc2u{irYd6>9 zl!6@H?B{4abKNH6smRBX)C!p3JPu9C1FkK-0T+cDSu`qa#9 zRJC*~szo8^1}~{4)A~$H&pS^=LIcD<7-B^&Cs)+4f0*_(jNZCMvvJisJjvKr1LrIqO-DDk((`wqM0jcN+*K(nSu)AXQ>qkNirUW$17FN>E{e3B8W}c& z=Qwwdf4I*^Qetj3s%%NkaXrlcZXnmh|BN+pt$Hs$di6dWS4tX21%Brw-j|p^vxUdM z0=S|$xVauMDlgH`z%H}u{k+JI-(?HVdYiW}LlgA-HJ zdgmkocdw!dIBaH=M#_Ah2*%tA@Ea&jgGb>W^Z;hChI_4Y)s_)Chp#J@n4+xDb0ea? zCN(CMO6$~YR!;W&92`cRaw|oOPQ@_-e>HDEf(h<7x%Q9a+FuosyR4d%m{3tQD_VIA z41F8A@=>hV>{gzT^PkB75$wN!5&3Lp{AnX%8#g+?NMmhp&UeiL+S5JqyFzloqE|%aHcyph>spY+}ih< z_AksxC)&%?+EjKdo%SP6-rUESZ2{)q(;5ZB!fAtrW6`t%&K{lL7jvI=^Nc@SpzSkl z4A2%C>{~o-vH&lcwkg27tdS1Ke;zZfCeZetHUVg3MeO~jO%ve5r)>dnOW)XIrk&!Y zx}z$i%m?OI(Z0Eyw!}j?76{L*iExZSIC$C_K=|#N2&Z`zF7(QDH877~6LW*z%K=pdR2%9+HwT5!HHHrJp)UgZvVd;j zLyrfA`vr7&A9^96Hwb9Oe}|3)h4TdTl7IrBH39u&kOxpWP(WYzp=f^HI|%4cJ`{)i zy4MrX_F*3M1>klF=+-`T1K>6a=;1!}X5fCWGV}@``Vye;3+SUh^az%J0sYE{;<#e> zT>{!N+=H$HbcKL!;zRjB;28qCrw`o_bPp5IiVv*-cfNq09!26Uo; z{?UixYEhPevfo-&-<8sE7U$f7x5vx zP5UDRd_l z{#xRE1DwB0&$saWe?xk{gXf>p^DlV*?UDKulQQk^0sWyqr#}Mr6MG1g1|-J(Ag~vK ztEGoJ<3tZxehEKUrmX^|slubf6IFd~n6?3k8HU6FiH9KxK$2ld3Xp~XVy9&S0}#*{ z3a~_OG9oeKZA4L zS(EjY^HzF$3&fh!bnGplR+*3;c(cj}?bV$9Fl>(&@}`RW#++7iG{h^^mnNJ+DvXfg zx*6Rbtct-!g`_r78bRiW(@rk7k=T;Y;atB_ijx@{b%v@uQ#*`4oe!)^XY}6OdpO1~ zOh#eQpU2l8f5fC+Va}I!ysAu6Ha>y}&EzJ1a&~an0qzFb0CxPk(vH7F*ztG5G{ZR~ zGG-=0eutwLx-pQN;vY&J#UrNL2vr<$Dn@P6eF?I#Mxm%3YG^d{QbFv=z?#8^Jn#At zcr+R;D-JgtTg65UXC3e?Rop1Z4Bs)WmypAz66#L$~~FOEozYWrdRL6%?$Q~*nre)bo1szlzl47K8?$c z!wW^E!Ccs0jvFiEk;nv5t9oT3BCU@x1D5XB6^xn0AI79Qoh*F7q>)2+m|r*M3%t(? zdyh9}e|{lD&J^a?K*O0T_%#ipW0=l*0gK+NW0A+7VVz!`>q;x>xJ^*@DQlGd?r_QR+KSm_E_-X}{2A1xgH3IjLP}3;pob^>K6v%+bIe=uX*yKzX+@M~HhQqqEAxd$y zbT}KK!hT<`Lc5R^u?&R}?65D^{!ouI1~?l-e-?WXVsC^@Z;T4Se%Zmq=uJU>Gfq2K zoxxwKh0Q~J-(U<`=Xtq~evQJ{z*(C6H8jH(P)1v#xx1T;lzw|FzlgypQuq9kC@QhI z=xmJ&Gjf`HpBH6?k=I;nl<#ZS+PZ1~VZ74>0Tb1|HV#=qo9ZS#l;Lc1`iBXva_YMr+5x*gT zaPAa1cZM_X%x3Ie_;(H~#nz-aj$AaFoVhB`{>@YQJm_;`E^t>w-;I6>hp83JPq{x) ziPT=>Nz7sIj?hi9e(Hs`jONg%5V|MVe#^4G59Y8RLji0lGaSIB-R+U_FS{e5AH{Xe}3ek2Xho>x(v2{ZqdQ&01SRe_Au4 z=}2fVB(#M{2zm;8+_yk|mNcCw6LtG>tUs!nVL!&}mtKe_hS+)TGzxoYVlxDme-tY- zc?bU9DxZ&3mCK0cmdN`)Dqm`|FVfr(@=zQ|+1VdDn0k=|06q}%K)?mis_#<26Y0(M z`u&btS*VKL+__@RK1ju8J+-v406Pb(V%xKQ2s*%GCZpMlSUb{SS`yZ52ZTQ$!dh=G z67dKd-ab23$tc4odVSX-rTt9de?}jClY-rURF1`5jy!j}wOi`7!dP(iP}T|vvA0C4 zoWg}oo2*7r*0PFo{j5JfU6nAQQaK;?64l?WURes^U5`QRb`IlmSyYO{xv0EH3xclM zN1#|Aiel-ZVu>T$N#Ld_fnDXbK85%8z=eZ zs7JtXt@;E$di7y^qSeQAZ?CkD{)_*qEO4XT3N;E*|D*Ua2+z&8FG%+y-(B6opSZ@9 z{El*Jekb|eS$=2Z8|>WQe^E?u?<6L;ca{^}jC7PL&SB69KT+K!JS#rOo69$pd%QgB znA}^xBib=ELJv|I!0M?X574m~;P0*t$E+mXm_z6A&@2 zcec5w6HEqQ<_9xfwXzFu89xz1SBLnCk9blDkvD5%=F@OaMxP|he?c9wvJK>ETdAj> z5fik}LR~c(6?mPS2q(a|$}Rmm=~Uq=x;^*i&nfZOlB0gmnxufz2$Z zatBg)KtP<+(3wB&HOZ&ANp1t;r*o4;2<{yydTWt5N4g#Kon*J(G%MOPD@~tt6ootd|{@i$;GVxqVmVHnFZk&J4;hPl0wgl5>3{~~?!b3}yg zLb1%9in$oJsXz>3Vj3L@=L&?LFrqVImPu~UOzT`y-v9J#%JcTv!Z~m!%B$w?wGPQH zE`?yV%wC?olb1s1_Bm*W1ETJs>v)^5DG_}u+#Y9i&WUCsf9;d~9^|@pg0;7;yqzVV z1wdYWjEI@ba=ltA zoLEfSv~9{df18T5wo-X>Uv+MsqBzJ~yE{nk2zv`{V>gm-zQR$ejYIr19Vw+ocJU6# zuS@3C;_5t*E1w4~u`fH%hjV{UgcZmI@E^cI7s9y^&f0UHu&-ocpT(9d3p+x}7X$N< zKl;@xB;3jS`g-Q+6V9{e?{d-69{ozLHRe|0bZCaZh%H&xw-iIQb(h@+=f zl#zOO{JIl}E~yAgCT)-j^)HxE%PA}ASUO%V6H`Vd?YFUo#kqu_?)E>2eoUN?w}G(1 z=r~k(Dav)A*gpzR8)^jwz)3_R@B;{3#@Z2+=({ssukj(J*T784fEK~w%solWaE1{)kioJ*$_cc2q-tIEqn}|oMf0c;;7CzDH+d>Pz z6Q;HYsQnt$X7P18q8#=LHiP1F9}ej64ElRYJM&$pD^RaOA>QMQ{d$f0$u-KRR`Baw z4Hb#=wk%7%#!ukFHAtAoKSb+22+G9g)Z1avl*FBcHZ8_AR(XMp|AmPErD!Z);Zwd7!u+>zyIGhFi?2~Z zpuIDe*^{_|j{VME5W&0IMlI&aOumP0QyM5>av`7Rse+5UaAk?8Nq*MkwgeC$SB(TP_AJ&ICnxg?}a_x zH}$Mx)?ThBH5;VvV^RpQcfl0JEA=?L0Ox+jK?r&Pu`wZQ#m6>~DhtE)e_(L5?`dXH%y3&4JR3zI*amT=Muk!Q+22kG(v4 z%sv#{c?Ha-IK_^FC=>J--;uyf(VY1_deS}bUgSL%cg^M#tI~XNe~{ig5PmYy{XNwk z9pc=gH$N~ReI{FLuYv=b^BNDOZPR(3htj-ZH&%HAdEo;fY3XZkaNbn?Nr9E&!STwe z{R>`=8l_hPVSfA@w!eJ?zL5V72L5bj>gN8j9l@V!o=P>gzq0W`saP7HhB8FZF(iovJYJw2>azL+t zr$G|dJFGr934v7_s8$xSN&9;qHaYvDg(om^$`>4qJu2Q^CHt(EPBKhJclIYLX6GQa z;;?zHpo`=n`yAnY2`X50l@+>*qa|2wp7} zygE$Idoa=-e_Dyg!qg{|D!B+V{-3IRW!=KsXOIk2gcZcc{v3fpP)Y=){Gh2+>Vf3T z+qg~y68Qz%P)-fbDv(I?{ff1tkqwf-FF_0!VF;TR=X3YJLyb0^zo~p(dq&Sh z?XQJ>YDH5qwaxhkwr|wTMpxyet@>QpR#gjDH0Vc?f69dE!I}p@z@mh2HXG$GBWCmc zw|oV~DE9*Rmk0hU;l~ZN(tiW|-v{Bh!T)98zZd>@1OH?2zZS%Q5&kCv|GV(N9N>S> z;er1<`0oku)h_a-7L*ciB@QLs*^TK<;<-$Tucm9rQXjJtmcMt^Nc{b5k zE>h%Pe{d|{8J%-7O8e&CAq;nVSFpJmtDXLli@k#Y9Tyv7*YZ;VOp|zG^REzZrcY@j z3x(~3cT}g^fqCqg0NX)zzD0c}Rr?=kDc{MlP=t5=vTk(#3DxHOi+)#`s`GC(JQrao zv9!1w5OJF6yC0WJ#Q7f5=0`FLUYz)VAWo3Ze-Cx({P>H~`Jq0YANx<|Q}_8U93t5Q z+&mC!wbxUtKe1Xp8fvwdRWCwt=cLrA+i9x%T9>!l=B!rvtXC77T2W=_v7V+rR%)T+JODc;sg+|` ze|c#dpH#2(@KmO*fg@4Pv&(S*>H*wO0Xv~}b{I7!DoekbOMeVXZ)hkzLhOaGpmZQc z>JfVa#E6e*h;%lmbPj}Va;%&aP@^y#@#{~18N%;iW{ktteBRzcWt;LikG6e~9BZj; zt3bDD;vEE@KNFX^p_Bs4J zOTZZ(;0y^k(*v*rJaqgy{00y{1%&e)Ea=O5fTa5^Nu+;3;dt(iMs->p?!+;qe~dOA z<4v1aPvodHOf;fpT**>BLH1RrMZ_lbQ<3y^Rjq)CMrs92S*BJ_VQ={xlSDiX_NM#b z%%B|6w-m#bFY^I$B_ykAy*WD~kEP1Mqf~o$1V;HfHMN3_i3?<2GchCKQ6D6z%l@Q8 z*1rsGwhvT!QVg*TcNvva<8itmev-;HS z0aU^e#`yP@uaUfP)pjStU4Tr%H9N$^%55CbOwHGNTQV=T|iMCZCpOf8xYxF{6po z`|@aah@9rZ?hU0MoYB+$IVRkGTdZkOwDS|u7MsvW9Bl77i3)_v>;H23tnzWA%v{nA6=O@e+5z@L?BH;DF z(xz$MeSeIc_b*M7G*e@#e`LH~*b2T5hxchExXlYo?p(*MGD$4r*lkFb21{oV30w_4 zp3em9&Ko8_#ef$U&`7WJ8tIj?)&AN8u%oqht$_DjE4{`fjR=>;F37-g!_hLJ&U{gD+tpTK;gSAbHWXDwSq9y9)+k| zhA_754`YDF*G7`Hf6YMhb`aEgiKj{xDk1_=twY{YW|Af(BpUWNkwn0{CZw{#5> z@!jY+WpS%BpQEzay=(IPV1sfL$pbZMtL@C2_=eN+zcjuMf4JPs-{x{e$G4?y^0&3D zBhL>Z+)uZEI;VYSm2iK#tC17=G-bKyvdXZV4 z^e<~h2w&DrF>gT3E<_rGn(_F;JPL9k7)9vk0e!4rht4CW80;F=iv+^?Ko~~|J%0=; zLam@Zl=+gMe_rEERnCEu`((JsYwSJ+?g_$us_zyx`3j3^4bF#|piJ&MKqiVf$FGI% z32?6~+$X|4Nw`mgd$NXUR`UJIi*4!Ur%<2^m<9Ol=>~sF++Hrky`-gVR0;sDmA0bc z14Vs=Vb$T%^P%a%CF?#hJ$jPX=i^|Xa{N3l7|`=Qe^Z##$b&N#&K$NS7^_BPB`M2r zJ~HdlQ}Y4^3zHj7RQ!K0N5miI_h!fu-nuH^!Klnu`K~dBd;0TDlMi4EY6Wq=1g9bv zu?>1@#G6OE)Nf3#Js$ID^Zj;}&tnsm;cSGJ+~Rb@*-+uxv=Qo>mzJ+;PnqtEof@u1tDeOn7e>$sc)R64x$D0m08C@% za%n%K(yolE-k!9hDI@K+vz~^%sC;2yyov8(T>4v{u#z+G>ud5-ZjpoL-iWw8R@{xf zzS6w2(k{+}O;on3d3R&KtaPU%a^B5Q#zz&{e~XrijXwq^9hjFVQ4U&|mj!z|CDY#6 z-q_k&-T+N}L+Cp6CkX?aCWyg8VROWH$9qClzDdWsSlBdV@beG$#^~!4^=jb~sD(|q zCqW37)x{z|U-N=nTc+TeJxi}8>my$3o!S}IgAhKuQ|gep$V|XE4JnH&jQ5=&t5dcQ ze}Sb<#2f)%-c(D~Q@<>jAVWx>2{LJUfK<#7>6o%rJp@gCjSf?Tup8pFhI+!62Vt%4lL_VfA749u3$|8t#36%x%sZ}W}TEdMtERykBx<0)tg7nf} zdLnDFINvf&W2Q|}q1Ow2d=+YIGYvPre_gBlUENA_J*bS%ffDk(2bqEs2Ibpv6w9>C zcx^y^`d1?T8Js>sAm7DWV?EBVgQ`S`eHik{b3dEIm>3!Lbr$krnZ3px{*f)<)~tGZ zD}u_i>MM^0D;6pOh}~IFEK^VHs(@IgA7b$kF=F41Y8|a?J*}$)TG@VRB`kR7F^!GrW^-WLu{D>*o@R z|B{3fBB3Mvgch}U2_3U;|0T*y>OTWRCiTfcqAmj+llsd*EFKb_P+d9Kk#tiVFrDA{ zja7};nH(3gk$4H~i;M6Zw=Y(Cf1&5Rre|B<@NoB~QU$?cEMnQ)X`yk6CLg>xX_9{y zffYBu6NJM$i?Ob<1YO}%F)-nB%4BB)b)J`V=Xo5Lkkx-qrn-ER*Ok7xe?AeY&BWM! zq%7W3C|*9-Gc(BLhm+7IiV^yCzl_CB`Hs=;anBN5AVW@*@~kA36i zQ>f)RJA`c44e+F-&eMcye+9!GXCxWMt9GCUEvRokg++V~%ZhPn6k&8GRrdgTK!v|X zLb724u4=(9QfyT_5}nRb!d;=y8wF*fZA4w;Bs-oge?k#<&kTR2o5sx%@i#@nRSDlK zBK}&WA9Z?VM!|ZgCCp@52iV7LP%pd~^*E#k5n4)IS1FtJ)v6~{Ir~s91%Ei?>;r{Gp?na)E~J;~-)RofL7&2E^v**jco91mO8 z6WK60ru`hre%Vu z4rTyT6+5tH_kDU(&%B@+_4=9Ph=V2!Gb)#B)KMIPoscZ7M&$|sj(;S;o0pLO!CSb- z6x@)=j}&zlHRle@I*ris&Ygj&Gklsy*{B=?0!N|O;b)B~#%*4V+k+VMLotp;jEaI+ zTYn}ysYaQJtS%^xfBy1?ba^pJ1i%uPU*H(sDDL+^A^-lZbiFo~S=pW~!|@$bVGpdOk4^cRrNLF(R$4 zf?&~|hLN1_{LLy>XtPQ+$9%nQBDA*KSCd~)+@X&HGOF35VI8@jd!J$-2lDJ(01aX&AZM^ZA* zzK}p$c)ZB_X?!rxCsh6{L9YFSDGPK3Q%+SOFy!hSCx2dM8!eR6Q1N11i+v!%GBNQi z$N~taO_AHN1SGl;nOfJVoQ@nGBy)JW$RQ&fEON;1 zLy*G{;^bN+peF+AAdAPT6;~-~LPJ`zNc=D!| zn{VakPierrxPt7F2x#tp2V?nW=P3BvGHsbbnZb4iSsIjWu?A;bt=4>3!fI{l+N=8x z=E`)*mF5sv9tv@#MO;Bl&0_t2HAt>>sK}?)f`80Ejm#g7?tWfCyX8O8{#XCB^QD2J z*n;*8pj|~_n#JuQS=cNotC@!9&C+6tI>&?aHB>vyKo4*X7&653^}yF|imQ)gLkel# z^znj|FB-58D0A5PG{nZ~qzewF%WC)bFtnh9=>$hFI<8(;+^` zL4PJ$Dc@;unT|y%j@S4;`0P*u90$Ou_&EVZ=VyT{=Yb+gV#1t1r7OY_1H6+!^LVJq zVRi76efV&5$}3>uFq}##lCnf8ietr$&ahfj{n+~&J|)8w5eUKg1TmSD9bpackHYZU zzcV-2&0mrqFuP9&_MQ?674 zrky5#64_DRivS@1&nt<&B~|j*@vC zI^`Up=z9DPuii#z4XNLIr-wVdo?qJGorFB!CVSwML=W5(>h63(iC zL+j|Wy3nZ^*)ile9O!qf*)@lA`b{XOGRB?A=}AAI(_bN{cS-KTWBCc*ja-FDl|M#a z?_mKu7t#I*IT~wPW9Lu#8(7+f?$&Vr1n{`-2LT%A{29K9nTeToGn4FlL2}*fcxzI2 zf;B-f{}L{eXU!Kv_GiZiL4T3P+b4^H>=Xh{V19a)5$;ze{DNw-#+HVQl2Dn)OJXu+ zxr(yh2f#QXN#jK4IgTW0oRp+4SP_Qv6J|JOnI%h(RF`ZJj8xA7pY8{H$4d0VS+udqqK(Z&!hgXuLgfyuDi!SgV0w?p+xzpb_oG1Z0Z?odo`3SU5c&r-u_4+h zweuikNLOACM!M2sTh0lQd^IQAU9|pbODB_k--m^r1 zx5O0XTl!ub7dPj7@T(g5%%Ad)hI)82d2j{T#p!x@LnBtZ6y?3f0FHk@Sp1f?lFsnE zIQ~2wU^^0Q|4c9shx-$MAh*l&ZCqua@IszH=#w+WxKhqYihmV+!*m8{{VhYLiaW=6 ziKiisdshrBauM<$sK(;BAH;B`DZCVvC%rUPku!1Fdo8iNWuLd}mwn`&GFOG~lo7Lo zl|vxE4?})CLlD(=iD=~!o_k{Fqp-t_@`-2;j{$6$yfMTs^IWpn>%LGKxlFK9RW?!f zx;ogi`#yckynoLctzbf=ARhVFu=ia~XQW~c?d|zkCR$!?a?zuuri|`3Zb%ZNkRam@ z^fO5M;u+o92QxXP;o6X{POUvPVU85RnH%~`y!N@6VcS5>iy2KGrWVK69;YnVp1>&X zN&4wvf2duQ7ZTd29!7YIgTRucS-A{sdKzrX2#=wadw;--XP_E73FBn6jx)u1lPKTb zwUz{(#w`lr9OSG7#e7#vBVCc#+7n&Fi(Q0W7T9MI zb`i0c3jf*gr^$b~@Snpi_fTZ_IkpW|;nSm<{QzayK3DF0jAFlLIFJ3LxkS+Xm6zsW z!hfEZ=6?~we?F(_BF*Q$G+mkI?MU+iq`9{$1&kEBUV8zhv@b*eKYYm>gYAppZyOs^ z?xege;^b&qv=23*2G&^JVD;lGcrWwZcbG5&sx?k1s zqHhy+|DPUF+G5UYkmb&)(atWhbn?0;rd{*Jn1B6-7?pIIwKp*gOavH>TC`+D?N!Kl zTIW5?t8zxCp*wFey*LFoaj^fU`MSzMSBkC2t}OeBkdlkJ#!(!ns8j2?R|Xyo4!#Wz z4hlhZaf@pCPV_79XxRyD{q;`wthe7;3 z&3`{b0-byq_SxPg-oIpe3pKO_=Y36_Wim9i*Ek1jSRbH^{xgxNjv|Vt(QDj|L_S0X zeZ&R|;LabB$j6A?Bq4tSjAM`pHED+X@_&YMs;kAGPSB=;={$vgoW4(DH^Zk|@aE-b zkOcw$oSbd;7hE`^GIgWAR0?~DT|v(Ks^33+8sW|H49`1XYW@})-uL-;D(?}fgL~v& z=Z+|!dmhaT-drPRq0Ya8+4i`?<_J)nb#;_xROk4Px-O=cuNQ>h1Z(ekZ|yy_u77Ux z&T1w&4r`$P^+Q_k!1Jgb#fu61Z>adMH9mxFf1~kh0jm9Xa_m{k8_ZTdn(eAe!n^u1}xrhd>0M!pPIKSBKKNxa|*A|_8P~k z!G^14aQ{od&w~5k8md3Ep#jVDXMe-G)n_F1|sKd_eSa9`fY+u-QwfOW|- zIf{6c(b|VLdmDGp_3djd^isIyuD5Xj4_;Cin|c#<6x{wX-E%kYmoigG@_%;Gln^;* z8(866#)xXt-%uP(O>1?6iIdw!F*wlNJ3>kL)6gj~H#;)sK7e33`~BF)Jc<3<#yIn-&C0Hqw`*v^lBFKJ}ZDOgl*5lk5?EgTBt%EIijjGmGk9bpn zh!FcSZ;wdQ6#FS`S(ehK#2Rdv5YKM8Q#bYYt#JX1UYV<#d1YQTF(vn6Xzd&OHFwEo zex=03o3>hLKCfqSS)=-f4!vB@JgT61<1j(=EKC;jUnB$OD1%G1!Z{>o8R%+=Zuvp zby*pHF58I`na-h2{+gCd*4fV$l{vUPi{`xR{#_?YbL4p<_{ht2(n; z8R^( zGAe-ZR>hQbvsE?US2lzF&S%f9d}Sk1gY$`+d%#v9RU~1DZ&lxCh}!7>Cu|}?0XCXv zwZ(Kf$LOb>Zv8)}U5gVn+`?V-W3WAlM7(HM^qalnu0i_$4`uJ4xQsjjLNzfR3+D`$ zsyH{=CV#=*P(x|qX>Y_Gt)zfN&|q@sC+sDqm_4Eg*rv@GB2_d-Wx#*;IOowzo zh1rD%#dZIf0~tWzY8M-s7xOms3Or6D8V^kUsehQ{Oq+FZ3#2<6Ix_Lzfwz)jV8Oo4 zAk$H-;lwgAaS|j>jw}?%JRPqCJXCj}&=av{=1xOLIEAd4PPmV5g-71q54MteV^%so zDBwyin|PCNT^G|hQ*ANH8JfunwVf$H^4O2nF;{9xV4Szm6(v;(YE{LJMn*OzY)kJKGC_A4yhvt`srwS4}`R@k&sN`a)b``3Iquw!!KVx7vNzY7(>_cMF0(7 zBL&LE1IR@yjGb0%kTuvEVzpWA)_*W-s5RVbE-yp87At2uCbn1RtQJQTj=U3%cq|}q zv(wdobMl%}HnGaijv!gN5i&C3XJmv-6`p_E=x8yAUZtP6=)0R%KZky<&UalaFX}vp zpk4O!96D2s74B*9Tt6I#{K zbZjFIO+Q$M&}ybiwQkzK2Df!wiEdbCc@T0j7^a!#zD^u>hM=u#Mlqs!yO%TZ_A$~Z ziKoLxK-_(28?VEUi_Cff!+*971)#h#Kww!hkxbg%U|Zf8jryh0GY0J*gNVhP5Z9sHMI*%iHPvymy#jjhDn7%%tTU0;-C2}Ax_rF! z1pisW&o-;ZwtWek%*1kJ%97wyzAad{z$Q8 zw1ZkdO1e@F?p?x5I>%ugSSu-t?oQi|3XePFG7;R&XC%Z}x-(|jSL3^lG=etU&O7^L z;vK0(syHNuN2U@D65(w^h=&Fca`ol4`qdX+2y&XlzEwWqqjx`mk*Y2Z`9xLf^PvYq z88bO!WaP+U{x(+B{eKkMVWZy?`JqAQU`ymE8z%&0$CCLGcz%XbR*X!Gn7{c5YfhHo z{GNongS^3tQ=*u)5@N+EN%^vpEYSpFLhloy1QAL|LgMbXspEz95*o2m{Y*stY^W3# zdUql{rxbqh){I6*hHe^>?o*YQ_VC^))0NZddpzn&ca(ab)PGf0X*bQCzC8u84q#M! zI7y3p*!Fb?_Pm;Fku|4Coi^S2rv2dRM;A!XB-Q zd!Ti3vytIk1AozM#hZ1E>b|(W9K1RzO%D^J)Wi?VTFqto8HCgO7 zSyqWS#0vL68*R=6f|Q1cbZ{@TA>NxyDKUGZE)S*3+t}_8-^Nyu^|QSa+eOjt;QAS= zY`U+gpBsdJ)o{PPcc%D#bkp8xTAue^R~PFC5r4k>_!N`@ucddU#lGGQu9z@NNe1$5 zqlJtjp4|2B_P{-b6aD$YjMCojKj}JrR&Y6zGYN8it>V8&EhcmL5qo^M3Y{#|c)(qF z%{yVuhyHtwD?%$2zg2^y;y0`EPCe%x%u`Pir=~Q#w#Vy5I96Orh(lR9erUC;HW?jd zCx4k!xIW^xh`c_69R#>te(#juyF7%uB;aljaJK~9;{n)#^*6jnaVq%YT?26=N`Wnp zMiuncd=*<{)HV@{q_AGo4NCzFws~iYj$4wWqY~Ad(fjov&uOz~DuZLAlGWc~MA0)1 zV54U}fXnM+EI%F2X!VAOxL4+;h`2WSw}1RiRDT~4*C+oWBCb!qg})8eTO;CKT$RsL zorXJ9kmORZDPeRb-MwddVsEIfK&R{&u@PSQn9ySM&8PX{Fdy7 z=%lF0xt^_cyhnsB0;}4S5`WhnvCgu_ma0`sjtf!{y6pgEqkrFsbN6@y zd1OJk0`46|y|t&f;#7MZRNo{4%!|szbMxEkd|jV+mDisld!Tu~)%#^j{|hUT>YpQg72>@Sai7!!5phrCeGze; z`hyX1o%%ykFFY*u!Xr{2JSO$Sqf#F<;9U;Z2j#IbY(t`Uz)4h)0!a)fU*W_noLGgE zsxZL{Cs*ObDj;3H2m1ans-NxAR{fp@&ubYfZfP~VGJAaz;m%}1o_~d|bO-v$k4^g> zQGGFPJ8p`cr;W-^tT0s&WCvKO1@#uNIVdhDpOtXLeA! zUD!})AxnJ@ECmjaaeua)xw?3gW*$bStHhHuHwI6vIJ>evJcMkS-Pj=JxMae0oKH!~d|JxlGmt6j>!0vAD=rr-ysTCb(SM!2GamXlY-fL=h%ah% z_G11p#%Viy7yN4f$5_;=k*)TG&=j6GDZDe(%G2CkrFCa-NLpcIwen0DQs909XOGX} z0VoQPPpq1plxf|(Gw##c6a%ljcJ`HAaM=}iNqJ`Ou}*hG##iUJus!jg6&L z)(G{q9oR7P3HtFvAmod5v4!L#Kpa38qhH=rtsojHvryzt*orK3$p5CqzD*kgJdVe3sXit8;hxrMY@!m;anA zfXqStZqod2c`T<5=YZD=O~c)f^yv8=fd`L(K@I9#N0VS zK)lm*4<>JMRz`2PWK=!06-bXe+v?tq9X+%chkpX7|24cjo-1#HYvwjZFT!n0ggO-%z;nDJ4n3au;E%12URx<2np2;yFlFlK9*usa zpvEdlF_*)&#)e46J$WvfdM_iR9QZS0vYGBtb*egEtlW&%Pjg2s)@%F~x~B%+lQpUc zuzw8uMl3-d!!t6)qi~D_PE(|dO&i&G`{=wC%Ou5)=7g0jb>L3^x!#WEgk?HYQ7Jbm zd|Q8Zo(!?#nS}F7eWoR@YMJ&ob$Rwy3y)f3wNRGkSSbDJFF>UVdQ2djsw?b_P+?yU z7j{P9!Zs9_SPi1EX<66-)_`nd`-r?Xpnq>++vWv@O|PY}jk2&-nhPrO$hcN2RLll3 zV{kl`v4P6i;LW5$#aGV6PRQd3cgp*`Eb0RVwet1YtbIJXm^B2l^T43Z`O>)iytPPU z|E*xnM$jZ1LDo_&E0<@HjLHi|ICIO8;}g&z)(t`Ga(5#Al&?e1PvV?w_Lu0Jq<<0< zw#}yMY0s!~&UBo1>@AvnZ^2NmC$)3I&+E6}&ifzew{^2-e%jyg*mCnUEJ}8F2Kug5 z^YtCJU4=DW%FoYG|5oZpgZ#uwv6xLmw9rPszt8hJp0#H%tP^AZQ76XMrW0fTPdaf; zX^81D+_drz1fw@nG(^!@KpNuCG=KW=T(H34E6sfFZ0Xn5PXTx0qAAHTZ@p`u06~YH zU6lR7d9Uo}>>5)00SQqkV)3tc4OrZ_Y;q*0#`8j&`)NswMZ%#L)#10OyLbJ6Zc%yB zqOdel*P`ljk};f8dUJmc9vHEgiSeNKKJl3sdv9Qx z%G1>7FT&iy8F+Z1GwJTLn}7Exn(kdQUG_my4|KW@3iVO7v(O`9IB+&OdX00S9l4k4 zK?wIy_HVJ!m`|por47r!(#0Z5I$Ayt!mHq%XRUxcUli^jlYBmMSG1)>j{~qfoaU^-i#v^e9arK9V|w2Nq@6*U&H<#)@pW> zU8Z3fS+jj!vt?xBqRWg~@zTUh%)Meaugi?-_U}=DG56L07WH6nc`(b&#JB@31Vx|> zXA?&4vU-+Xj{IK1EJKL>2e9lGobXHNqKfP*fzpk;8Dly7*BF1B5VATGKIylWq&s(a zPuh~Ych}nC0W9vpf`2BF3`=7LBe9sX0vu%qO}Pvgw_t}i-+*8^SD^+{-FT%vld`X7 z3q0g{vtATqo89#q!Bk#?OuLukj%H1_+B(tfJ zy!i@ew>S4lsGYpyZ$XOM>qF(QU_H-8aeUT}X!$wTz7W7dN`L;pFOG=JMGDdBuUG|X zNdJ3xX-Eh2wi~Ip{X_NN4VvlC=LuyDf*P)gOz5Qn8mm#fU%=z*XvywtxcRyV5G`b| zVcrbqFfZowVAtt9w}=6~;oQobo_VU$#N?=fqd_LmO~sXiRX$T{37f-<$lM+z%d~V4 zWpU^>SHT*^qkn#zpuU}yvPsRpioIkHU&V$MzvjLZ1k^3V3CeH2L9)H-AZ!@t%GTOv zwD?=>{|l0Ca!(&-$vM|G6LVmaVJ(hdE*jNocBuB>Fmix0OvU=BJ1iZbEt=dGMFZ@_ z1ueDd^|LT5`S1bj5QNybqtR-7mCFrioJRL+kbN34@PBZKhAVzT)9&YSjL8Rzrrqkx z3M(*lXHzhnZwPuX(h9%_Mv$znMn&B+F+$= z*wNs2?&;~v1{qllI~qh~v(`*y8pN<8CR%o^t_cVsu;MxA4vH9V=7#-SH1k%`7aF~} z$ATG0F@MKDPMLp>a*$YGUL5&ichN@1+fQ=4ScxuwdV6pAE%E5`wo&ihQWIxnvCqcx zZb(BlQ2$|1$1EF8+$8xt4h=FfljR-k+MvFMoP9HbLUCM3dZ7iA&@NnHjh@mSAnzM>cvwwH#7e~H+r(?eJedJ4X-b2PT=L7oG zHmuLl^T^TfIY$VAu>OJ^Z7fQu@t)nLUJc8Vf6&EJNR=G~xWxn9A_2F00CvnHg>xHh zKoV4ZqV^pC?@u;iH(&gACl}!^$o$=cg8#_IYZ0*&`nvqSA-`|p`-EJD(W|eEHHtUH zOn>8>Jny)yGpQ}>G^2R(wiwA*nUoxt;o6?d_|D>)9+$RfE`16v-NRf$2pV|N{uA$< zLc1<@Hmdf$yd_EFZ)t<5YTri=jem{Wta^H%f!-gP9zyKAwY;6vU>22H)C%xS)lLw=jDMA< z;n3gXy8rCzlXcIoioSB9GUX7lk70(0?mVH3y}jO>qQfcd3by+ZjA!1Sgi%Q*L%KsG zr8RL<{9u=*VTaT7h_|0DiuXvBE3uaIl<4We6X$7Ivc)dbc}5qfG@pe@r)qJXOT(9i zHyUvqP7=jfsrxVGJyHLRyeLOTnSZ*Cx8F&}+e3IW+mfk0$94QPk5~!@r^ui)N4C>lD`8>{+E#amss)< zVn0}Sv{k-QxEsY^!F$T=d{E&NWra7T1Zgv)J1=wpXi=T0{O}oRqOjE)fdQJ{aw=wASRw|ev+k}?~kdJrNq^D(1G<`eqv z_2@qW{S8J(2v(Dd)z4Uu*51UxZxzNQyJ1twr%YrW5ZR-i$WI{h785~;{Wyqx$!oOW z=#VoVoT8;J1`Jy8U^Ie^vE105TkCOeK9z6c}cIffXP>S30og*lSvpbZdkj;fk+lk(IUFE&kS95#r zKeeg9IJKEUYI|y-`+u-gO513W9`&^E%Z|tXKo90W<|%Ujm1cj4hBrB*w0HZ{NVDb# zb1wE1V!Gw@`SsH+@?AR3{s;hFX4Ciww=YsBhA$pWLDDP(=ovB>M zG(o}nl8phNIbZ4G9*a*z)X%sp;76+ys#*O+S^$58#`}aV0Cs*BSOESzTfafuI*M0x zz6KTQL%z}Zs(*oq{daQg*+~ucTR(Y5E&l`5zUJ(F8!B68lk|%+jY`PEOp;*dJ7jDt znVWAzxe@&x?x46Hee6F`EJLsU3n&_?-hV?!eGk?912+{s9^00B6AQBq8NGd6i#G-P zurD;a6eJp32QVJZCe1!KFb>{1+RyXw8vs9iNSWb~4R+`eOM{yE33Oz^NxDjQG2?iwR4F$y4?x^WqmJ(5 zGu+6t{R|fP1S48}MgWt>>jO~I#;9+pz10slrZP`K%CVwocmMR9zP=r%jFN95?=LU~ zl1N6gRj8^vWcD&lqd#&oy{sH2{D4ZnS*?5zJ8*wbD)wWkNI)vGEENc`pM|weaekCK z_kSn(?Umov@=JN;Z$y4o`PJlCS7lo{IpVbyw%xwxX3|6nR)OMKZd0gbXb!&+hxSqZ zL5vuG6m4S~72Dn3Ydl(|4R|XdzdwZ#_6raOM#W@xvDzC#SQ;SYfbcvJR)-LN9U$a^ z@B$D}QV-$o0HGNOF9IPFLU=AfXaT}YKz~p}2!9U{T7mE~5WqB1J%c?X437rkxiQt= zfE~@My&*eVRC^<=K8rjjr}k3w2{(2KgiQU`u_H3@+6;}|JghZM;1nK#u{SI z$S7ZHH$KSHXZ2a?Cr>k!mOX>9W`^3@&AdNt6CSB;YB-~!!TZu3QU87ErN6^b*pVV1 zX2x(vM{zBgWpMHm?ARgoep^_fX@8tR*5qeNEVG|fvN0=)vn8AmW-3d23944iSqG|m z2hTgC*8rTZTM7A13jJj$>3aPY3zU{tjf;l86S{GO-4%SwMSrNbC;)B? z6+-PbX5psH5}L`YXz)lyEq6lgwz``WiiT703HvqlFk=ADxrZ=#Y&|&dp3mTM_26dr z&kP=44{mcmV(^4|aElw?2jGcy;A)b!kSO3bJlyB5L;$u0U=rk24(wnvZ0C)IR2v1X znm&d9UZ?m>^!vhQrENkm?tj|YA9wXn|L1jps2Hx3e#TkzR2zd(XEL~hRe*}A3cE<` z(fb{bC6L2JVBsYLXG*PrG8+trFdJU?Y=ws6x^cD@u%-blYMoQi0FpTLHx(_cm^D0L zJmvw#IkV0O>kgU41PN&f$Z||kHaaTMOWXK-;w%Xx!3doFbMI%hm46(Q4OiOMSL9lj z&U1!hEsI$<4VLSHo^5de+ZGLh<$7Sf<+`9AF&$X02&pZs4;~O$t_wZO6>W3?Dyh{S zL&98Gq}ubKJNO>*lxpwlc?$W$%POA0;b)TO(zkZ7NB$rtp8@&xm^?!4H$<%QDxU2z zob{u^in63;$f)woSbvSr`wHDKosh~KpcM_^roAEj8^Pbmeh%Lleyfi^6DSnbo(&UW z*L^$_!G06UA|GmpwHH5-0@xr3^TL?=_8P=57Nr(NOWdgLMZQl?$)4r1# zTGdLb)IMGDCz#aF=n2}x*9 zx}_-cHc2!s&Dk+3`;rLXUnbJ%mpVxGOWo7uEu%agsDJVsskiVN-A*jYX~Wr>M{B0N ze~`;h`=Mhht;6c++{$!XR7s~*6?6{xZ|SThKL`Gg^0VNV(t+L@Mc>;%r!!K}0{Ke_ z+13naHl)MgLKa>Fma1_ILU=TmL|KO#F32>TT>z0IGc=gOGL9w)I&;vYsiCBp8lPp@ zkn(c7%zuj{nNgg%Fh`3*Z0nM9<_Vj0OXNnThbGI*#RF5kThFcf1A*p`oT(~IKtq;N)mhQ#%bc!+cJ+B zI(hJNP}Fa%FZEFcQWyM68S{XUN8FcE@{A<^1!$ zw|`<=9mI@17>orqb>-y|?-ICG5S0&LeJu5K_Y&6KL!rA5Vcm_8+F|vbK7)rmmt`@BBs5YL6@ZQ_RD-m5eH56X1 zz*;+oG4UFe#_LRu%iKDN0a#RW$_x;+w2op@kg$*Dh&_ylbt&eSY9Gr0EL}NE7=Lga z19-vZbdGX71F(YSEM<%n7=ZOJ=P(AG$bc_Aq6KkAaZg_#91ckv#zJ=loFmwIB%CAJ zc?P6%6g!Usw1b@$I7bK3Y<3e~JFOhS@}BF!eM%!B>^%_nhAQB3`y(_kJQswA z?ek^~1{2378|hf+V*fGw_hc%*2}!okmSmv7h{Pshj%47`Z9H6h9ELl?>Y(ydUV;kF zn$GdCcgRA*3tIlg{Wte9e1x3;TABS%aYxE&(zreW%q%cpPlU5r$JdhA1b?I>Z!bfm zS*Y4)LZ4Bq<<*5wT&;Oh6xRudcDA70Q+W=BY61F~C z>Ght3P4|7Cgsm?X^7LR#I=7#-srA+RwW;ac7Np=IE#lmI^uf;TJJAAf00(ZQA3*K^ z!rewyQThIVZHE!Rn`O~NGgr`qUj+51kZKSw(J|+sC!tr9N z6}9hzk`Wg(b-vN}Rwi%$uw5Cku{XZjNwJR>I%i`w%IT_Uoqx#`z7)pqbT)pG1g=b2 zpMAGR`BcI5z*F#oc;3g0yZ$eYJ3SN^7n?}sbbFn0x?>IHbh{L_JEGou37WFKFFUNC zZVyz|9br{QHT=|Q{e=sW6*TX#F1@FH^{gwC! z!#ufP@Z=%MfrpXDM?n5j33<$iJl-!)IA>3AIUn?#VV*oB3Lg-Dl5r(Cp#D_Alc|EL zraMoAm@6o2&NET5^!i{Zkjnh5{I2v=>`DoE&I3Fr0e{bXfajyqCeoByzFjUk@~q&< z3qlpY2<`b&$o;b9%PYwFUy<`y*MPhh=F~#TDb;@6r|lI$^LNrB;wH*}=c- z)7G6&qTY)hd~G~$6f7om=hOb+NwYLm&@)4%bmucbmMw5Tr>{|x%rojxzF^3gq6KT^ zuTX@)dA_gfeBby!lEd=f>%iZ7;D5l;YJcbXZ+`&~;P|Hp`4=1~X=g0Q*{g)k-=^M3 zVL(Lh&B5dR8yMpShW&jswEuZ|ztPw&;ysr<_Jy>u(W|UXwn#vWvIx4r^?v0}3&I?D%XcmqJ zqeVEfxG|qP{GTKPR?C*PgS2pV#P@=gn|gP;YmQ=&7PD4vRu7?eDP){RhRVG>R~8{K zg{lT-EZXB;W6k#DhI>=69+1N`%!$sVJ%0i-31w^>VXiF`mQh%naOw6}Sk8^QvjS?OhU~wIfTiI8)Zl**vF$YPJ|?~tHGc|G zn62ikkRST&$QG|*c(x91%~O>7xLutSYFFp`?aDCArXlZJ!5e$`_ia1P)OIw#cv`4< zntQR&SS`d@P4i#@V>R8sqTer=_VaDWjES64D~TC?`wsL(|K-u#YeIVB5A}K?9?-!_ z^uO>sB7D-+uoDQ=-1{g--cA~P&wpVGZEx+WWBz{sJJsPdP+IO1qUfZ_q&|si3%IZlfV|u#lAp0^WWd;_cT`R;;kBJow+p$_4xVPh}-z zNLhgcvSP{NWby65WpOE;=iU>_6jFi@dFud9lK~|<5Io5lyc#fvhZcZ4d4JZP4jz9i z(eUKxxfm{1nhAPPwS|5?NGn6y7&1@g_i6@_r#d(c83IUq7%~))VPVK{Kt=$f*-4%6 zfWZq1MnlHKKM2P`Hr!R>N}p}{nK>Hy8nvCJSKz3P1k$`Yvt?jg|ACd+D$cD`fTLEB zm+~l3tn5n8n57HMc+~0eb$^MbjHd6y+}DhTY+Xw=no%6vz)oSqUdP~59p~U8S2c&j zmx!}NeVkj?9>+k*l!7_*K&r0Ylcon4(cHP|PCpEbZ#aSt&Yt}@G!Nc&*MsC7<*vRx zE@wz~665@x`BN@{y|Y8^U3iY52q&staH)6T`Z%J;b<#U<65MtPD1W=E;+{B-+r}fj zw!9NdODCk|8?+E9KZY{~teWbH(^vx|Rg4~Ht8$MZ-hzCTX&`sbIFJ}GL@)qMfCQ=o zA}mii15ZqlP>>(elr!1i;Dyr%A~HwfWpxjcKEpXcM94-hJvKLMSkd@gTug)HND1H$ z@`*@vU8w^S3ND9v?0^67+se<1FN=*m$(Q$>lwukwl2({(VCO)$&|@*Y_oY0}>lcup zjM_di?>#2?$bO#oQRO`8Vd!)3!_WONh5n8{Ty@j?`*>pWKZ!*mZ%^Sq#2rte&Qz{c zv#BZ9oXeG`k*~ZS3bPwTW4chmX=Q^!%*BX z)W;uK*9NpEw$VyS_u&2g`xKh&jSPkz=fl!^iT+Qz%K*7rKswX7-t==HLeh(@Pdggav?&NVRb6MP$IM<(JQVvo4n9pJHvTGuANsS|ORgaf#w zn|j6fP=cNAk$;uT``PIp3GH+j_m7n~BN|7g++_!Ve@M=K>HvAVJ64{7K*O8w!oNX- zl;ggTZw(B(Tp29hHPT>fC{Ok&rx?UIo0C(PQ)!>(UtRN>UmPV|PQ~pF0{Sh4;${vE zMeUChYhEZK%9(U`I&jT$nxdSApDQB?+kEJrkgyHL3xADu!nU_J@A?a6tw+GlJ+QB= zU3p+%SyL8-WNp6C-FvBgfR{hoCS_?T)?QOx(?dYe;-X6-ZLtXix$3{IAY=6(BpCt&Y&I%&#P#1B1wNJzy{D=su z?&#^smpwgM0jotJ_?dVs5G67$(4+_Z+=Vqt>u>uwO zz4@Ru6{yfHBNc01Pq&c!&Om>@z^ud0p?!j(8xKBNbTg|G6{NL4;f9(H5`G030@*m6pOi=#s>dN2se=C2_T9Wk2|7^JY z*B;Ve`MYrYgw6{E z_;+FRSgX#VuMw@z#V4&-=iyty?-^gA``}-DSGJ$q_ctnxUI8{<7vBw*^zKjv|9|9J z%O-md!+S#e2X6+Esq@3%~uOeTY$E^a`+%wvGKO z2O{l%%e1%m(*`Ee9-@2aeX);cd%V9J$;*HF(TFBqs*F%Ss<$sFs_kV7(Ccb@yP#&} zd+HJIy>!&9k&ZeGC}B2ta9DOB1~muNZ9zFi&TKD|U&q^$;z+<^`8`yAU3`Nb4~Gbw za1q;tcr^se&s9Xi_05N>;`(M+m2XoV&}Tk?Zx|9pG=6(rP}2B1ByX!0E|5`%P}+*9ubH7bT}Pgz=G$SaM+<}I0-LQS8{&V5vDy7F6|S^}AYZ3~T97gCBprls*?edp0r7C-t~olj`#F%9)^MM>*C**+7nCnp1`% z4YF|<)dP~i4gdURsuz6;l;~0Qp=mEvca|EwwuvhSPGNkMuax#;A7lwxB89c>>Uwao^*H^B9>gfyxa^)%d z!KTHd%-He<342DxY4f8E`F2+c{$i9 z4h(}ISmceF#>W)nD8r5sF{aZpp)HK~eILYS3-Y~@WK)VYMT3!z=CVfjY!%NqTE=o* z&*vO~t0-yss;GaOWmYbN47n#dL}p)|ZzUBl=S)b`GW?u{QpUT<{!ub<`)v3UmQWP# zuPCBJgXqN6SD}`zguN$GnTi*h)e71{yuCX(66;>&1gBul%7sXW-w~6CWSy!hMedZ`D!BH1@s;dBzPvDg z#%;O5CqaK9)%i2O;p_TjPFFZP<61@|KSw;jy==h-SNybkb+mJc=Cl*L&bX4W^Zd(} zZOJGv1~+5WZ)~)Uco=pc(y2-MBP&fD!c+wOkMx5*M_TB8S-@|jAFKfl2*I(pvYEc^ zth>)(CBF+L)R9lDigt*HNxXR~%Tl60%CS1$dwYKscFcNg$EY+O$~l*SlX2**W%5{r zP$y)ptdEv|8Nw40T;ArLA$yI}h2nQEH@p+5R~X?Fs8<@n3DntY_??!bAQ<@iLgJy@KtF_muO%j+o9hFm7mdaLJPj1ctd z?n{4*<(W$ANQAbYLOfK;o2JB_p$0Zg>sB;Z{S|$?Pvl0-J7%{LvF zcF0pFfvwSc1!=LmAOK=JD*`uGq)1-oGFc&v(X{TqMcFakuaPOdEhCzAeUv#IMZ(rd z%DIYuHkiA5_3GG^10sHApGK8jjqqy>ejk6e&5AkKvJx{w`HVZ)8T?MJzezUqI;uqc z4SJN*>wAJJ;KB9W6ClJUIWDqdy@54j(IVAzqamJ7P1^hG!NaK^)<2vo(+IllR5$Lj zpoV*l&rk_LgQ~JA5#0C%bnm`(vg?1KAOA={`|rsY+s_5kddr`m@HQx(pq)DYxs(IehG$045WQ~nb=@<)QvrB=ON zRN0-P%I@HiBp${xRJ@xd9>A{NC5NDQ%OU7Js+d8$kI{RLt1*9t^k>X%-irioQ-d?9 zSn5~>8OgOYHQB#{MWy1Y!iyt#s_FRqYdTPkhpiFZCWmdU{otP@a847s z5U3<__8Gow8M}W9g7e_^QL4Qhl$r#{`5X_HVj4?4uzQDUUxMHfp$)*t#-AtR-z4JSjQEq( zynPv}G!4VkJL~=y?7W%6cD1XRhgcEC&ZJ&r7SzvQV5xr&U`ti3<+mu}y-y(|n18^j zJNqzrF2VFI4x8^FQolADoP|AE^h=hwNcRDlxRPhCWJ*eBQ?fW3a}sf6|+&9Xz#!U zWCK}IQX)+_qxG;MZrFN+zEg0=KDi&2Q!e?ggrzrkjp^P6ckky1yGxfsuY;KLm?66i z)x_2KhEwEzwB1jRG5EH}^C?!=;0NQgrkQuvMd*L}@WqRx$WC1k&P0^#M&1tmI2)H% zvJ|&WE9qRVurbS)&hupH#L3c;SL|4(J9=yCKN!VuA73i%|7=WV;Ry)gNYi-|Y`-(XxVGWV39IU3#k3t8HVBDC)m%EKn%Jou4h9^8F`P_fHY zrm@UVgN%x&(WU0ie5?C6LXUBtC1UYFNi+sApCB|vI=W|RCYhVKxx#Rsk!E`c(fLFb zqjm9``bd!e{xArMkK(2em&0(GlDKSO>P~+&sII%FtoCQm+V~S&8!npr3^b!2gw*b> z4=yA4Sstg{>l-7DnA*Cp9&rf}pJPOX*cJvf7-T%pY%i^Y#&2&Em zaE2RGHfv=?bLx%2{?F#DTxlG^hT!43d?s(d2tgZ2j+a1%Ecn*B&Fe<R)@ zLcBzzPM57K%c|X9pU0&^SrLM@|6=Vg^*DzG))zwT%RIx2Mj_dJ-W^MPwwi+HKP0=U z49xGbVxW_u=97`lr%{Bg?&Xk13TX_^P;RuZn45t8j(2tcuGG(2V10;sIfcvwamZ4_ zchz`4SsAa_<8Mmv80nF1LU8C|+|7UYE_D8JVr*Z1TC6EP%fl~tgxNd5z@azkQ8g^T za3C*lJp*Kkz<`yq&o~}Tdl~H{L)FgeQqC!SLFv91(xK(Ip+dFV1NB@#JPihg8EjeZmdhyFomSK|%1QJv*Ta@s%c)qyZjybbI2&72hF|HOjlD&&UsL4RE~flI z_47XJ;{;hB&qZO>N1azOWft3vg89A^3=*UAkFOT=a0(f%edA_t_k8q-VE26W2#k+v z57#s2s6h4~_GDiu&U=Drl0<*hX;%H$Vce600J*c?#Y`Nf?>!Nxxn~79UIy)f5q^p$ z7;e=?SEH=FH2Vga5IIz+Y3J$FnNLTfTsuUmc~n++Uc(HFUNCEq)EB9OBE8O1fe^cy zVv{hQ2=E)oL5l#K1i+gBv_f$`T2JL@gsx&L2(jCM^H@DjHNZiLJqUkNjuwCkFK#QP z^}Jk1^Ml++i5)@*MfoU@IGqqu7gV&Cx}rT^pI|L0+T&i)YERVT90Q!U7zZKtU_Voa zW%QG&wj;ev86s1Cby%NFkvGq7Gi&CuvF-vE08A@()sGQH&Bilvdr?X}xick>8CawI zHZl`+G+f`3OzUK7KoEcO8(zZ0em^H9IpclFU2tT*GbfnLgQT2DuZAyxOf&f7dB8X$* zmT=gC19}JEN_x;5Kz3jTc3>18Njj6px=x~$B1e|MQy;Hqko$k=R>TNV6!(Lzezul~ znY;MReDKJ%abna_K}gDLn)@8}|3%BT$V!KaW|5)3!INZvtff6;ymG3r#a|P)_+P#8 zj-hlAQ$OIdAg}`y{6-grGdW>OqKom?GO*YOti>K1V4L0dvKu zX7?R-w+P#{({!g*l*PqD#%LcPd1|;jS3JfUVH1}h?4gXb@{?>UMzzI6H*C5~K|{RM z7UQjRzANl^jqveU|1Pr+(YKr|#&77wcrvbgDcMTHrW;*}cSAs+wvr@NU1695-L~}kxeeA7<@yee8 z`3`@NRbGyzqZq;CX&5}GKuI{CBMOhCuN3X#?@^xm37vg@jN*RG=kCt0$QAg69=MZ6 zsX@y*R}g;tu--^9l1rJT2E7i_V00$U&KTty`7eJM=ANabdvV2^35k`GRHCSTE9JK_ z5+|RoNuMg-#WF-ML*fzgMJ;{V0<7b8skuTfYZTj5OSg>WykyJ|Xc;)_<*)b=_V_pR zh0A?`dsYbCO5P6f1?D$&`%6qKJ%`$DEq?{Z^8K@0_;Vr8@l595P`|4tcL+b%rCR>l zz|MabCRzba`x}o|eYDW}-hcthWV|Uh$;0?Nk{ll*i}N-wh;1Qg+!^W9oqs^izB7XJ zZ=Ll0g!3ry|0!l$|AlC2weq}(_HV?{jPjkBX*U16xZl^uU8d&BKcI-u^E4k%xBLkI z3;whp4xGIxBL8Fv?@PklYw(ps<<*GrBG-Qa*j;@oh`XKY4nLaIR=deJG`#H3^%;Ct z?Ni9J-DN`Il+vo$~l39xBDCK{!ymGWxkWoBg@^b`0=nmm8$ z2Hkfp<^MD2%iplRj8?y6TO4zA&1v0EnY@B~Jv2`P5+4dsJtl$dpMA7k;cy0;xaGzkX7VJz zw^#Uc?jHj-<-jJ3@|`cnb>=e-h{1nX-N_?-tSNfZ9ElA_=Y$N(nE>&8uuU%WT73e?4yZPw)6^XjSQX_aH)CgYj`kg3w6^wPQ^6!KU*<%Q$`U8KDuJK#S zs=^@}#*<#d5U@d#8zB^K1*E45+LSV#!4SgAkK7qH^SyMxhdd4;@ThFG`XjGw+rvmQ z9m*VruQeK!4u#W@REL4;a1)bwfqTp@GG8<(cnZ_9o6FF?k?i3Zg8a+tjsMBL@lD9X z2;`v$A@&IDRw9L;TGc8?$Wwn06B8n#K{7Xu*v};L@A^c3i$q3pA_%cZVw^LIej4Jn z@9R--2I?qAMTp&j{7`Cf9>ElI7``me#`UNbcRIj{kf}QU-DrPp^oRc1=nsAy9aQbV zQ3yNYRApIStp5rn^h*CqNb3FF74b%s7BD2ln{nt@6U8wi)WFJi!m)pSoDjgCWJ>AE z&q){|YU3Zw7fw^l>yWehSJv_cIA4X+-M=aYyWs89#XouHL8E&S1-qZqPx&MqNYFbQ zU86>zeQO>_t^8H=CPnC>oI5b1EY@7NR(EhmEr@p+2%>x$+^Nv$URzs({*U$aqaNyR z#}NGfV?4M*!;+GTzI=a&WJYc8X!aI=pE<@~=nZdGSNZ6dzbY(YUk1qB?#=R4u`E23 zXpZ{7(QNJMv(hY=nhZW#Yrmog?;_Fy{(L3Rf-oO8?eSSt$Fl8u z{v&@hpFb%Y+I9G&#h@%&_~3>XDvK8NU;%%`U@sQ%NAvmfU($aJ_@jmRlhIndTOr7f zz^PXIRXrHVHn#bZ$Q%uagp%;CgG-}Aqc zNBjRqbM5kYQqO;o$427M*Z(8_kc~hp*y)1R6vrkm$IyLtjrNOn!~cw39sf6)YiAcu zD+_jcylUB9@Ctvn(B@KiuDsE^2`O|27dJA|cWN9xoW46a-W1{|76wC}YAye~U zsbhUuT%3xP0j)uRcwQzN6u%?RhgmV8D;;%t9n)TAG0fo_QNDl!+~`BwGg$w{Nk;HRwBeSiZu?F z=3!oT=YxMFW&uk3P~{D5{<+FK;=fHkrCO=_Z=`1AR(qMcEzaapNRwJd9Zd)l#nzS5L0-V06nI+E;FHF*2- z?>r8NVWWFHrY3-eW1}=~nh3*c-O#v+H(RYZR<3_=*O`Pl(T*3;IN@82m3h#$v?ZcM z#E?v_yvlp8IFX1m2{zP*VnDpKm9WA%Y>rOG4<`tbF~lGShL#tb2h`niWMMAN6Oo2^ z=NNNo3-pvu1I6{tr5nRdx?*YFWY1R= zInjR|lM~&sV#1kfdK29yu^toMQ!d7g7hf-vm~y6qHEX|IsaUBNbEaWn_!ArR*^Z`O zgLrI|*JDE-Pe^frjl z7(_HD^gC$B9F0awQ4LQG`9n}KNS*G@GL(Ok(O?v>N)^QAr+86kgAi-j#NeQ&Y`X7k zg+G5`1e9s0#kx9O?395Uu7SRhj~*v<*0v<7rH)XpC?n~*Itnu4k1d{-<8#@6x4Ab{ zJx1M?$4cwGt}EY~2HjqtsklG-ZA^)JqvRpS`7q6cl>%6}yJVTAQNhM26)3m*lreuo z=u2h0a}Rqf-hMb|?Le|A%PycyA6yU z;7Q7mZQ)6!8=URfyFI*Vj|O!xo1;x-J4M6TvJo7$$kqWN~PP;FWvM33MYT9>E)eJ z^r@b|ytBz$L3Mk!DHc3-k*t{$=GR;aoaX~4Nebm%We{G^ws#AAc9)(#LQKY_p ze~P!>_XKApTigdAj=ktLO&VR#=Q2~;dwDtBThiO7j$VS_V8*=v0FCMBO=?1GiZ4tPVovQ6eA-gsWEbkBLs~iA* zaFBB#dlrC?o@XI4;CT*0{rbLx;fs2{L*O$#-y)VK&*!jQc)rCfcAoE07B%6k&-V=G zdc{TFoH8KuLXgT5NZwMD&s8RUKB!IgEU@?WnY$Io_GI=j$^66p@bP~_2JItExtaJ# z&vBIJsCbT}O}>jooT2>}_x*TJ2aAx2MA0UlFc_~3nUyNY*HE^xX|r;S?;EF^sa0)+ zHw^dGJu6P_yr+2QA({%Yf`4vj-HpV#oeovY**&J%;heLN^)hpu=Qv)9{0XvbC;DZZ zp}J2%8czb`Wah5wzFdC~;dAELk9!;I$WvHJbQ=6Tbit^c3a-5!;oGq7)BNr-S~=Ye zy(8_tvkqPRZ*f-2iV z$TPuI?el@BRxa@Bt7XDy)xMA%?M>s`$Q&J?)7+!lWb^K%2p5@rfo`s#xkFl|vD`U8 za~HSyo??sMo*rlD?b%+P5cR=ur`VlCtz9f@ZMmQKjqzSzg6eu;u6zkM0Mh%ogf2%A z`w|~-p4w@;UlM;iic$A_`ZSd<6}^O7xeQ2`vx=mqVP6_nf>+1{uk?Y#Rr}ZESpcpb zWUr9nSJAg}b=Y%_6tt`4_geYAP9j|wj&YqIgFL?pH8-1I^8Ui$i^R17s?fjJi_FS) zTE2lxQoa!~qB=Lhx3RDMqvhW+U2eF!^37f~|4!!T_a1-X4>I{1*VOm7$e>%zema-i zWZ><7U~Bmf3A@9G`MI_4^yI69Wb1p#zZY^BHz)gUNWW>{W5V#(3TEYxb;Y&+WXkUS z&p!3pUZ5Ujc_`ltoE`j33gCTSQSX=8`-@K?J2u5>o^v?UULw{GO@hef7y_9G#dXwIX^bNMl^M2`oQwI;Rv1mM$2D0B9c zfmCYtQ(SkN{WMp#n#+*^@QjbJhuWkKoDecT^zySZ=POMmZ2PEO<{w#?t)sFo!@8S+ zhk+7q?0DHOAtujB3eSgybDA%l<5li*oEHR|@VtK*_PiAKyd3tt688Kx?0Gfpc`fXD zT}tmXaWy-CHRlb9@+MGL38u0~bKa6cZ-;~44uTYMeigR;PsEQLjYHo-qkI?m@3B6f zl8M;wo4g>I%II>GrWcbj`vX%B)37g{wcb+vx%2%qeQM<+ z(Eoqf`(tw8d3W*r13{eBift0&`-m^Z&6jU%8a?*+s;dr zE&nXsLCgAF$QyIh`N9-uFSZKW7WMpJdTr>d`bPP;dhgfu-f!x?f3Np`E5tZx!v7HY z@BsFA_4xm+_x`Ki`|o=1VS<*YJMHiL_8S!P$5^?XVJ^&$TpJfRbnuM+6{g!CMg%Zok$FG zmE6_p`P8bM+*|W%cyCRP3?I>-4^WCzgZCS^rSEEP%b^5D_me;=BNO6%E+v>*UP6D* zg%e^6D>xfHVFQs?z*{vYTA>!JW4Rs+S6|+a#uV@V?>j*t!um019~@PTDc4DkH%pGM zqe_;~wT&2V2nm=zN^pIyV{$+)QQTdW)o@}2S$YnUPMW3ZW+fhzMu|3ItmzEE^AF=1 z%~8TN*GX`EU4+bSR3()rCrJT%ZmfTr7wdhJlPQ9ZKOZJYP{sz7X$R8aX>xe7GyuTk z^hzU=w_?1lMPTSoCgvfK;>^a@>=&D4*g!vw?9W!{;9Sg8vy*E17{990ERkDcN@!f9 z@j2EA@t5s*VK7>DYs@zu?KVh-Q5tGg26;Tn&owH8eb1co5YSfb_842|xKe+3L4K}T zX=8^Brlg1ZNe3;pJPd(dDyxd&QaVP+2qXOnWHydM74)iw{Z$Q{EK1WVcRi&tjx$c>-3Eu@#FKI*~ws> z9nyEA|8L5rW5{Ks*)GV!6oY@#2c}RdRyWS>l(=0%C83?-t}G4ttc;1__FitM>rr{e z3677C$u4T>Je3;6aMPJU5K$4$6SC6F)iG#-H%6Kmle(YANSCPnj*+(9*?V7GP>lDHFxM6=!1>eV-eA`no zDd%en*zDs@B#}1D-$R@|R^`gm>Nz(}iq3j5MV?h%UuI)^e|+DdKK6z(_D1r%ab2*z zi3D#dznh6fsNb0(6WQEPWQbaM%{wc~j@H`i;tXle>%#kn^zxT^i~EZV;*CbtQo`2p zm}=NtfOIZwm)lzcv{irD+O)S?6SVc3plxDx#x0Afy=|=C?6!KIyq>TlB6ShaVCcedvprB`RiJm?OpcT|&&UV9e+x2pr% zb7IoEz&u`|i_La>uIN5^>^)HOR<-9r)*$VUBKIMC_`Aje_ile7_wFJ09$fc1drzM> zcB;zz<8ZhZvv7tzAB_Qqdiiz?frXa@WG`Ppy6nBlEo#4Y=zT#uYK{H#17k-XGyH8rqoxBbfClaL0Op zl_cMSG2D%5(5oNB zuRhpMM7=k>b*%R*amrst(O6NDF74TP9yIF4b2QdfVTgD}q0)-ZbrFdSN(-DNh!f3a^;NqO-KFqd zAx!Tp0@GWw4@2Z`RdcI3WpU1aiptZuj#^Kvd^jQ1jzFG{1bQ5-K1wuZOP6-oWM#ig zJ>9A)8~bfWq%c{gU_bNUCLs1FV%{!6yp496L-Bq}F*@|$3Qu|%xtv{Ln}e#o6w{em z#Ym3PhQ5DAKZJ0!P-m}Bl;Wq3Y%pfnV^lgX)X^6oyXT?YKXr^VJbsLQ`ngq#jnWQOD z>!$UBZs8cI-Fy7T>rZeTD}#>ngZ$wL73p}Pm2`jm1lg`m6o8z4QeF9351%Y?PLU)} z4fiFdN&QwmO=6wy*N3j`EagV;)V2K@BdR;!8-SNu(t77W_rT*Z-Ji41i19VvXCiJ> zc^NujwR#pl!EeqinFbk4Sq*IA>Qcf?VxY!2Imk&rcrmZH_+GJJM^JV0S`3@+64F(Rh&qs>?AE$AF zNF&MTH~RKpl5kAa87F98C~NDYP;EIE$HY)k=k}DdmrJBee55sJh$;BeaE)Ik_?xpY z_o3T)nGr8$Tmg)|G4psOQ26K9ArY0sgB5==@v8#rntiqGeVgn{)is3r8YyGfhGcB2 zY|HLp7_us%AuDFxMs->pwd)97ZEtLEw12}|$Zzh>^)d@L_*vk76K60QxgPBs*#PuR zYpvZT+nOTW6p}5C`!b90%fDr8-MKl&%FO;9chJP0rl|dUnbtx*R3R@$1@I4b^oD=P zF#?STvqWaOTSL3K1%0*HwYhA;_>Wk|Zw=S(Z8C-1!@xTv@Xl}@-X$1Wxm$kkk>5Yc z@1NxN&oc78p~&`qo=I~*8(+R4n&rRv^eWACdaiP}V_yC?ER3 z2}!gwv?{Zh)a}P&(&9r+35)Y_S==Z5;)Vu-PsaLMpXH}Q1BoFV#<3gHbTJZ~-m)BK>5(3^U-q?wA9h8xZ^Fb(3RhPZpKuQ8+ftd4)9?7F2B zl1WnbESObU30ZTVWB2nh>`@RaxG%(blfCe~2#+B=toUD&P3dLUo3NZ;k&wTN_RZt% zoc(Hy&ENVS-hNHuzV3;_8=m7$8M4X)yyZFGmdt%8BunMnQsR5B{NA1783bzn@A_zB zi7r}xPjpS}5t_C9evHj{CB%c>6#B^;D1jnaus?;b!!O1b(?@|NE6l(VtB8xbU^-_(sP4dzj$2UT?~d{YfNe z7`Sz3bNXeG%a{MbMfO4@@Vgj~Jev4l-u`Ex&iwbbay-W1rl+a}_cwo#tAE9K#Nj>x z&%a|*abirLR1T#$dFZt7xrvnaSDhbXFl;v^W%y%EuHyX^;|-9#;Qo2ikw32~qX`Wg z&own+*7sW6ccM3ySI01o7w5T(2z@$l6-MmUedc!A25nSk?bT;Kx2(nm*R=Q=9M@$~ z)DMC^W5l_~Ys%$qGai5F*tF73besF{tCQ&zl!YRcg;7kUQ-QWfH`uYbBHnx|twEzt zJR=m(wBsUPLK*vC#Y3*_#Q#Iwq==hho!oz!`_M>)Xe8~FbMbK!*nyEdjO%SVsa19-t@zB@fUk0bL$oj0BAJ0OKTJya$*d0TVsIx)LzS15B2H zZVxa;0;YO^X%euW2UuSMrh9-5Bw#}iu#p68>;X2BfK5HXW)d*N18gn|#-0DDTnd=Idf1nlhr_K|>nJ-~hvu)ha5Kr{sR8R*Lc_u@o`{MX5D>MhV78?@-wa-H?8(l*xZ{5N1mjRLe4aNvM_DOT9!7 zli8Wz^*@J8z!CC$q?fCxeUuleB8o^O?s%PjjQe6*BDi}}-ON;iWA-?5k8v-C0np>P z2e&w_T#aKsctW|x-(ndv&57cO@-gghEBEj>>;8>6$u@qXXq2JGaX#tTI82uD;-G0C zm46&7caMKVx$^O{EGKvcI8pNCBtQQFKTnonr_`4XI-MfbI<{+f?h)jRWL|R%khED~akR6>hDu4@P+OW?? zx<*qqF0%J1vNsMxu5-Zf3c!K&b1rAn^ZhEWi2V-z&I_N1(D1_2`2e)q7cjrwZ;!{! z)P?Y{-8@Q;otn?Qldnr?Ph37K-=4hO>!a+8SP<+^lpA$=v8=b{VL879z|#hZ2O$TD zS0H}}h^HS1i1!}FGqso*z7%bSzL()Eo_nnmFY44Tmx6SKOzX;UTEF(BYlRH$35Q zI?Nm6Va%Jj7RBDLfnK@vv~K^F0#?O4M6p&W!MPztNhXzeBfsayfxMp%dg4Z26T3O? zl~=CzrsZm{YTCbx`!_RuT7NTxuop8*Ye}rMY>k-{SR9vM9D;uGqQ zHO|Ha=v{G)Mu;a`p4|n8-W`I%T{uh?n;7kT;$ru_nh*T-a!MW1+b4L(GM~_#KN7|n z`>RT%nSaI2=*`+F4ru>rPv=jpK(K#Txg*cJ&&o^K+~@lYuOZ&Fqb)bte|VeLSv%;0+&nsAF)-5%ZbFlh|^hN@GbIu?tX*)-Po%nLplxj1PU*>m(s5$4>yRrCA+=*k~DFK04IK_ z&Di&|eAscZTTgoRXp{XHFeC2eQ@oinjPkj%hj`1UyWE>7mG+VL5zKS{Abyy^*LUqna5$*OEp``RXUQ0l1*HG}%KTTRH#zq!GL(%mjBA zhu(QsYygh@$3*meL0k-xG)q%Wu_K?4t!#IaH}5gRls63c5X*GWBaeUcP~6J|x*K~4 za+BlS6lO>{_cO(LI-l}1lJf*4zJ!6d+Ur5WshE4Mmr&=RnEO=Nvt8gRj$Rp$$OC-I z;-Hmg;2E$o5qQ+5q=^cwN&XtTJq^VlpnFGz9*&DwV`QI>b48=j4mmqX)BWC0bb#p= zP7ZdKwytbbq_`xC16O|@p!%K|hGBf4gXnWM5q6oR=^ji(+#3Dx_0WlcjB}{2guM`K zgOQSE9#8ynpB>}*&JOS~#}f`1IiAi}_r9jdekp{b>1)Ml4sf`y?~4VTmOeOXqYu&^ zb*CI2LDOP56arrA_B-{@Tk-id!L=P{_@0by=|4j3%zS9$19s2ri>KlhfU=ZT~Tc4>9?iLofXD*lfhR?;-eZB z0QtEByM!F|7y1-xzcUCG(5Iovo{6J5u3vtal1Rle5&M5x)at+xjaUUfXC=X7y~cZd zWhv+teR>q@d2|K$h*_&!f>|q(&guFsb}KPq5d^q zR~sIf@05RdHO^Z=w=I8&{2P`*o%n0Wck|ka8d#y%`IZWcSoBeUH4wF5M-AK{_JrOZ zyd@!%egjqTCXzObg^X#hiu0Ag{UsN(3jtlzehYM;Cc0*C?#?ynzD=Q1hT|!dk5L>P zRMo4kpc%)G0*UnwQhyge?;+h(ahLKZKyR=bGAV!ieU!c}6er)uEi=}DS$5s|0QJ|< zYkb-tA5!**$nTYu-&Akz?jXPMH8b=P(rpoG;p2P^=qJcwB8T&m>F(#LO_o1HRtH!E ztax=Wum@NPEA4!W*n`+#!G}*C@fhXr;{5GJ12z`h z4d{P0K1b=lKB445d#C7yh{AtwDRlOEzi2yE%&VN(2mT!W;7!(bwR-qL zq+6%a_gcLkjyoG3BHR~4aI8D8fPYGD|Ca!Jx@aIoc89m1*$ zzoiXLRk+xoqBi_xz3e9a@KzE2RiAK47p7t=MmC~oqa6Y)PDSJ8nTB{NM_m&U_}hOP z3D~2^VH`b-bA?-E>|5z-{R&blr%t$=zM?6ok0a*&Oc?UAUh%4jhQ^=~gn&P%8> z4-=t$9=uxMqT_c89uFvgpTf|=sFuLoT(yXz?_^fk%fBKO=|((0O>S0-9wUFuUgL*8 z3U(ci4UCi-BR&*;e_uL+3uk$S5jhQ8AzT0s6!uzF`Gy)_DT1~AT(bLhbSOWvMM5L1 ze?m-%eR?cc?ZT(2+KKpNnE>kiOIRj9)n_*mlfnF8)4vIRCYnff48h8)Sp;L%@#Kl; zs^h?)ed85)gGliT;Li8ZhPr)(F3*z3+}BR_CK6)ddjv}JDIpY*H!->oBXtBw;j@3{Z2ejW-w#&) zk&TaBHeQ@&natl9Gr)>34^@;E7yM3S68xZ6`6pzk7cEm>gc0-DcDIbS8W?0iC$h<+ zok`jeI8&4c0>~gx6a3Kh$Nm>_zaTy-J@cWzm2KvOZQlh8V16?`hdkxpPa2}-fLE-Twu1z!>nt)Z{B z25N&rtY*@}Z!j$rec-*u_c*^ z+$*apo7Sh%xCX^kqA$hi{ZJeTilFy4(dxpOu(Yqb^htu2;_5Z{CW?EhOYf8be3Qik z)upYf0N|S{?yoLgC;|936p6+`03_6F@XhKVg1e1zHAv@v#d56y*-JxmjN*Ytr&$|7 z?qamo7=q8NS>%5(?TqklRLhbhW;Y4%_}V~n#O<8$j;Q4m=%egr;m_7u;E&p^!ml-< zk#kw`p1~OGr%~7*O`7e6xtlc*1J0(u%joY0MO@2`32IybygmIbpugiW(Spfh`rD2E z4x_*BTj;0O24NqRz-uly!9O_gW3*ix68Q1{SFPRm7mt6b4GlbQZCK#huQojJ%&CnC zJX_aB2A=7)QGsV%tt0S^tc?yl`I;Sg64)*HXY3Z_`xT;GYNdeSVxb7XijM1X0}!#`po82{Tk~ z)pbt^MGJB#LIo$}ngsTPjpuTKF`7u6513~KgXDirB>n^~*J)`>P4IysT(ue(T9_qW z3EcL)Y=J3nTuxD^7+Y?}mfP!^;`T?r&kFBlf0P&e#Z#OUI3LJCpL`$(Yvcpzmv#*0 zqfZ8YVU8yClcPzsZ&ZFy{r9*8q?a#5F=Wof=?alQo(>-31#>QCFy|G);%+64-*%lS zrs7Je{~v2t9$r^*-S4~izI)#$Sx=JRlV$KTwq;%PB=43jdB=<7eP1w(ZNPw+ za?O1)1RhdY1DK^42#XuzMnExO_CUUVZ73m4TiOz!EKRzYKuT!?Nyt(XAjqBHIWu>8 zl1Tb}{X?2}&zzY#b7ntt=A4wYhB*usL|G2n@nQ;cnPRX)oVF%2f3q^lU z=_=_d$1#;h2Cw5r5qImZ{8XD>4;15G*NswE$d?vY8JYBa%+k)^>b^hv-@wEc{D8Hy zZ*qKl%SGa3*p?Q9H&%dsru{Yal=IRmzu6ae=CUqWT>Cbre!3Sx4rEuq1LtvhXJK{R zrzx{kH0$VPkVuT}z%s(=*vb}}ZEb&*CbtUPq~qWGp>&99o5`D+ic%c`>t)nm-d?aI znTw?<$tGroY|G}sCe&v$HD#QVjZRAcH+v){3-{d2BaKWg?gi}dv}zT9b;=<<3ThL>Q+oWcIB7q4OP+dK>R zH?r@vwnVD=JHMK>Orl=?T!C7`wo3Ze zN9a4@(>F`95Vj2UGKyujdb)poI!Q)u8YGe|qU_fBg^(m(H;8z{kav=CZHb|2v(Znh ztJo$s$&%*K1cv_|?Qpluzu7GI3W3lun*6Ewz|e^?=S)x0BsL6Pyd9I+baEWj@qp&1 zf!N8W|IQ4NT_>C-=?%4dVcZC11$5_)!P3pCoK?269H@I&g`#Cnt3!X$_YX)t5GOD` z$Xfw!q2dy|b+ql01^k9k6+>q5+s5h*L|>RN?+3eo`vlbP|Jd30#U|BiT&B*g!p6EEiu!vB$UVi)|csZytL9M7G09LZr&FjH$u z`wtfE?KxugD6%QQcx`{2O#x1YUCcO}0&IrmOf%VU)%y8~Il9;Z+nLm4fic){lQH#? zCVPEAG)eLPfHs*4@5!8`6OIfN3)f(TCA~{_Yy0Z#VzXpO#gdyObBH3|CcA)jHc{O$ zDAh9GFxB<}KRRoFF_}5(#sH&i5DVg4L#FO%-%3^zr2Y`@n;U=0W)lWytIc=BExd6_ z8T>*CDiP zl6AYw2xd02$J&3EHG=7kAT4k{Vt8*Jkk&fYJZADd7UxOWG6LPA`SJ{J2K?8{Kxbma zIuC3N6*ypUXQtQz1E%SCc$&uC*sbINv}_yfkPDVWjW1fI4PKdTCNaSzCJkDk)%tAo znQ>Uu<99~8R5@iNVhg3b;BL^%$-&5-9YIwKal)urhzEZ+cA9HhqL))xs>n0thf+;O zUUee^Z_{AA&k_|#aILi2RJ5sWLr?tJJesf_z z0*@UsVhH(<9a7FZ@-g>5jJD~9C21qSTK|0jdn_7lScARcH({L%;xD*KnZ_*LL{Av& z>r0Lx4d#CW!COnaOq4q>=G)Xvdu4%GIv5LVw5PqheNbG1jx;Nf;T+S*RQ}g&cW+HhFC!t`5$%M-DSF2WtJHRjdS8FCQ1&A~zbC#ZKl5g!7CoQyHQn>! zYRYhCQ=>tr0ek8NXtNy}9JU-?Q*>s{5}nw#Cr&1s*tTukHor_fv2EM7F|qZ}NF^!!U)BhZ zg(?H06dQ*8t+0@yIKl>}rmsFG#AV%beMCP0*Q#q!nw&IC-Bey3fC?-!# zxn}8S5Ohbcuo-?5D)y<_$}|;DsmeC4bYGdr_ei{3NNd&?(b|>qG4f|S(~BGcubndLfamHe>nfB*6PDRI0hMTP|Sd zN&frLjAU8%vicnjKi+Yg`|F7pWj^6xN7cI4O)jesarTT6$o0UagyZ=XnEC}Eglkva zXgmzrRcb$&2$$R{EnXsZz?@x$S;cE_z*}=t82(ipeFa2X#5s}Vw7tqfpTB?g6P}o9 z^DE%z?pCy6F)NJ<(StO#f^z&;bB8kIaNe$vw~0j*bH{MA)Dmi-f7&woOOTSBQS5ra z!ne0T^@?C#Gnsg`=Q&N*a~lDut05wv&e7!nB=;q*X&7d@IAh)Iw!Fm)R>0#^P+&UY zkCF^zzJ-J^BWjSlr9hlR9vN{u0sg?amtU1kEzmC(R_W8r(deYBF9oH%4O#w?^gTMd zt}OAKhKvIXKhJ`?p%@Ik8;bF>2HCF`cMU^2Lc!>{FKf*je>mLCyMP0j8wN=ZtvLi2 z&Tn((4Zl@O>~zt7CRLk}j-y#O#qnJjU%`(K{2G>C(W#9%3GOPa2|2dd;_OZls z-r%^uJboPiP?STV0fj(NQKZY3?_D)afwP#;2>i+Wk4fl>Mdu?@>Uuzm$f$J^Oi&ia z3xyE$0O$y#Pl?4gmOKO4yf$)q)oJHguSYUPt%k#lLiy6lK)WPFQ9C%DF!E)x-qgfe z-l4%ru`%<5LqwCrzAdJqkbuvr`MI+Ygu9GcCCgI1$5Xu*734f-`Ai;8~WcL3o$c zl9vWikTk5(i93=^JenZ|CK|Cj7C6}?1B^`gGy{%IHn0~R;)4rZLKkOORa5QED|WMD zzb;s|ep|6zdcHHOKgxMl@;Mh7*AemD3*D8Bs*6u|w1eQc9^?kJ&}lLRQ~ zPP07kWgDIly)uBF(R!t^mldp`HK@`J9UV6m28)c~&WH)1fcsYq=h$_s0I?{;n7!Pi zY+5$yv;oGE z+0;#*nc3BIY8q<-VXS@bhzTRbz0*G8l;N7W%qfG#fD&7`i#1L+=cLa73DY%9-y39{z4pcqt08bkX^k*WNECK~K% zoZM*AV<_kt+l$$u7yN1*7*~(rK_YSKPd3FkafDI2Z#?>NwH1xo_>N zAq-;#Bur?WgfU9hVR}b%%{!m5tVjwKMgg}$Wwufz)a@Wf(1zXr?XsFXbKqZH8dQys z?)3}sp3Y;EFuVO@ZCBWr+4NEgS~MoWPzRttB>?R?pc`UJs7IN2JMNT35?*ij8$D2# zC>+JKl_)PJ)X1ZnkQ{Q)$x-sYfXYF;48l? zG`P+hKHGWSB7FkaL?y6CriJZQ(|o2|em9(eWS>Tm<$z`hC>g?n%OOeMpMYUd4-Sw~ z^ruGstqM{s)yo2rN&zyDVbBiVNF&ezKB3@`gZf(;#7s&c6x2mRpaj%Ks+Sfbl^mo2 z!=M>_LeZZS^|w06p;RvqL@Fi79fm>oPESL6p7k26S41BZT`Cq9Gw7o>vVF^e7p1{% zheBgVhm;G~+!*y52`;Mr3SP^-2RYyoLD&EQx3UPv^mT}Q43Ikpa{^dH-}n4%xpWCoYWGmR4A-fySU_dd87rtRODuj;xYvgQ{pw( zKWGta_SHye*okOmy=ZBFkQSU`ZY?!y=-IS$C~q(M2hB3YUqjvCBSgc(kr9B2a#C>3l>0y&-jt?WgvLmmfRv_0U~Z~N<8bR+Xn zj#?#ja?x&-NTnt`VrX zz>AeA+#+L1o>?%UFAd~I)NzZZ7X>UfLpd|b;tA%Rlw}#n1qr}C4LaOyhldi4w7@`{ zafT1|jg`K(SP!H0D3iz-@|0PtA#W64^xwUlDtrp3oU6>(nPcb*>1#-X*1dRr?0M#& z9Zg8U&W}DPwZEyI&O)_29>nC%emi_Rcyp34lUowOy;}bD7&E|13A+W z+nh0Wz0sW410DdQ*|HEO68e#GocxG32{j;m-lg0jc%e^HvrV{(u|zm=`R2F6yWtwK zSDo42lYQI(2+(QkTXcTxaX5l0A|#1FQL)My97@p$6J)T?wiRIWHcr}CH#sKIZsEa@ zb1;A^oHgH%<8?)-IN4Wu*e-A^2VX4JT%9-y^~E9;?G89(|Mersr+}nGb@p5$9q{+^ zojX?A7kN{?@o#)l7LjuILg}tnUT$WYXA4yId{~T*=cIQdgMZG+S%%dnf9Q7VP-a7b z#IA&JE9@1rD#NS6fMx_sp&Gl^Zl*x=9YpHW;xT!f1G8l?mp-c7<%i&jxiC>uwbB#Q z*m4lb3p^l7N5-7>J@_iVXv3*T$82J=NUEnX<6e5i;M$fnYo(}==10xJcs_?Q82%uK zwQtud)(7Z8_N|j^%OM{^5g6+){r0UKQlPyMtBC0PF^KIJG|r6?htX!vOJJsXM8mzp zd26T&6HKa?N+rb6Z-QE+o3@qpYEtjfo9xL?9aR7xjfqd(=Trf4+^3mW=Qal}%tH=0 z-LHj|8(W{vU&CFhSYx98lKan_2a3&6VC#dGG%F$4<^;6j^u1ZD6C)52sFyxE8RU}v zN|e+#HdKE)8-E(DGv$PtNLZo5Wl$4{X-ocXi9+a3t|bp~O4lIdwYAyLQ4s*F$e{4s_%mJU)vN!!Qiew1MSlBk3P&f1dc78HJ$sfT8m~ES^L!#cS_tOK%D>so?dm@|E=jAqa19>($ix z!RL}l|AU#sV}V z{RiWeT_$ul*=G^0)l)NB3qZS4lvXtVZ%d&m!wej$502y+iGGNIGto?!JpqEj3k(}T z*3Kv_jxQUX*N0L7#vSd_!9z>Rt3}o7l~=2-Fn5x=r$13B!#R4_4xIAQfd!>u-o-C` z>!{elKMiL-Z|@*G#VBV%=RH*6J^ZOUyuO0-xUM3fcPagawXn8zWNpzb!{#$9*bpe2 z_gHtg6U&A1KtkRdK$WbsDwrh9Xt4?S_xn|%M;%F}uUs0vKFW`=NP-a|&jlMHF1~?< z3>_nsbxh>x%0*u!QMPnpS@f2GV1Jxt+k#!{$C=VgyNm5VPc-?7xevyhJA@l&?K7J{ zzaf;a%OoYi_5T>QY&8duCf_S5mcvWbp2Y+GSIO8*!nh$gqv8;J8TP=2Ct#8Ro3!iJ zr@$q7;R#gX3EbaoVl`V z(tsGdG91^B&gCrvZ;Xgy0-9YFVAa$QP0b5`nP+$`7j&a42hvz^Xng%mo}Xj zU8IP|ARlY|QJD51im8b*fSwvR#!*DR_U-+fpT^?lR!f%)vx|wZ-L2NWfxG6Y`{vda z8;#2sWVaF9C(zL~YuWWK-7^2x?lDjypD zQ89YsltNPe>AhW;TAM5{gGD^nQ7G z30ZvT!sArO)DR*~P{M?LnG}WH2J1m+9_Mg%#L;P`kuqC$6Jpt9WafjAWkUe@%ALs` z$;VmVy-fwOTOxZPJ980mhc=!Zy4s}_(}Y`$h3ush$-7HC)-0aq${vK<(wk;Z_EFm} zW*bqvqF57KU6U7}3t8smCJiHzg39SGDbNDyLbDns=T%x#(0MfWk=JsJQx~%ZCMrA5 zJ^fXs?Z6buJ=<^L&M<`OwU6Y+8`zmk*^1$fWnYssH?wm-<@6QC*I6-u@)am8;!&Fx z2^BgTQgB=Q2Z`Sm)2BL;s2FGJh|JW1o`ezPbgzB)=vW!RZs+4r(GZhcn&@5k+*Wj8 zV+?SXnb)px*%N%<-fv6pfiX33U?b%6=1UCj!%0#qgzFNS>sc~!VsE@ZQUBJm`50Iq z{87QScX?*ysH1M{mdBES`AGP)v5`4naNOa#3FpaC`8h)W@o%!GdF@qUtDAb{p_aa# z+AHdy49yIne!ytT&*w*)&XlH+2lO^M^&_P(^>7Vz4{d)WG((_@5`%8E^WO3D`4{;) zSMNSmwTu0ejJy1kO)7znr#;4rq8L&Qi%Hf)Z_3ow~$0=Z|KoS{X)m)^sDhG^*1n_KxQ0HCU_UVW;r zsu2_M>lwc#HdY;{jAGO}@}6=OFOpU&Ry~}fgkOs`whLO5B$gCf^H;2D5Uq49W=`w@ zj1xX7O%Q{a8Z4RcXgT=H0;!2>KFF+(_NNL;mOj8tRrSc5HP_T7j;=uLYB>2@JBn!ag{M6%*yBXzTg@$^AT(e~pWGl+ znTi#j?K!49Y;W{yDijJ_X!`-2P@m|w96XUY1646Be#9&Y0F===W z!=zTyv5An?M}uJ45Ni?Ac0{OkE4vAcP_*gQ72k3SY~ltxI6P3;78mK_-yR__=^-5; z_xN<*!&x{HaCkZ>#ufIYld{yOyC%+sVH(^YQ!S#)`WU65x>2)OPopyPYh<1QV+1y7 zV03wi=Ct2vTGb*)XBOK5SshBu@X^8VT!y_n@Pgw5IDZYiWxaNePr&C_-vr+m@j`TP zwG~j$wig4!8d}z#*-q4tsxRjWR$Bt5y2Ouagv38x=Ee$?^tsm1Jrmm7=@CNpvh8l= z3R!%mOUf$YFD6~{ga^{HmYqX|jLY9n6S8}HJk*|8DKj3+= z5gwo0<&4u!OZd^9u?nEjK8*-1RWr++l7Y00YI^8G5HV4UMJq+p%n^3NW6 zs4F4?m;D=j9Djn$=XZMs*x3-a_s&?NxcwPVdBQk6+Tu`^FGyt#w&Q1}lU6)`iNoi_ z!8;5sZH9bFyT7^ElaubxH($VLDQ7#qNW1ZjaRUt?!dn5zB@$FC zKjHQ#nVUG0gR0bRjB)Ld$;Zjf&l4AA$l{@17O+edFmr4JFL)Vt0VElp6xXVrv&S8o zQyM~%zKjq>0^K=ugyE;5P!MwOP_yb6@;KJYT#=wHyG__~M;Tp#YI36M*B1WXv>E6B7SgTHO_EP;j&ZPK_(JCH32-S;rT6Bcw$J|zb^8(8 zA-S$+8C@{OSZht4U2gzj3H7ZAk;^*m*JrEOlI{xJ3dM%$RpfKCsAgRf+OZ-%lZRm+^9?&#e)1xKySST zf-FSvb3JsOvxO^|?`gHwOpSkF0He$f1IcS-6>Y0z#(aBv@e3Qk{SI+wVY>wsIMTw> z=;6XOk^!H`yh_0N%hzFyO_@-Tor}twbiUr?t7U0HyGAdPD?87+&=8R*qi|_BmLTYp z93*}8o-KMo&T&!VtWt^%iBIq=gjoDAWFHpbgx2J^lSpG^k2ioL;>qSU+d!*-(mNwjbl5%%9$(vGOA%4G*yQ=2zA)B41Ez(ss)es3;tmGIW-baj}m$+GBZ# zZ{?l?!7EW`iM94`I8;U()!gtA5%s!UzBH`xxu!&CKJ!j`CV$d3hdx3}Ui zGccXOlXA4NBh3TD7Pec*G+n9MYC-Rbg}Bj!_If^B3hc?)XieQSM-C?D?N8lOebvn; zWlDEXj~>?elOsVAARWzeOeo`6zoyAwCxfoq&zN`7$>KlJgTJr~cz@>rhYLIrE` zuz9I^pk4&F7QA~?!fOjrzq|4|{;#d4m-Z*tqe(WcqN!)Q=YlHXC8u|Ji6$sSC|e{; z>8ACe=Da$3&Z!(uq?atKriB<8wGLb7lVNN2BFH>IB5BI}zo@F4_A!*En?XM+zyrTZ zc_~EQI77ZHA8VZ)IgL_$J0ACIi+^#7Tq8|){~RJ*yZ6w+rwwHJ*Ro^VRS#5Q7~?>s zrIJhZC46^7V|#A#oxv0Dp?1R?+esQ1U;inG`t(R3wqN8o5FbU*p3&w0j#scW6yaWoI+fx90y$o6B`KD{((&k!M4KlDVeBcxg1 z`3A7S^s;)(u8?&=d?Z0*j68_9Sz&yB52*I0P+XgYyn)n^d*q3|vN3f+Uz@^oX6*om z{FlkE@!%Oid^|y~3_Pf}X`l%oT0_M7<*u1}&(NMZLQ=psV|$O7J3+6Lz^9=)Gk22w zYoxZ{aP%OaPr?0ycNYC?B)5yNP<>#wqhLCT2CRSBOKm4$ccWi7!SLklH2JerUSGiL zLq4~I`vvZ}`qxmdY!>h6Hlz4(ZsP$^JxB)Be{?f`=h#VjEo<>m+~C$EoRg`9(dc=Q zGST{FYW&Hu4X0UdvTBr~FR1*6)|fR58Fc?kGfEB5XSM899&E{0O7o*#mOp1$g@5OS zg&s`T&M;%u`na%qkPugiP+t7IM+PLRKwO2Nokn=5`d6jbamKG6LW75Bp)o)y`*o_| z`?1kI9JbqmtnG6!!Bpcfo5J`LF&f&Bq0&xHo@puglx9P*+=GCK>wP^#8TpIuKcr`?S~QG z!$b0-A*+0&&~f+%N895FwZ%^_TfVx^?^Z_!?HHzz5zSw`mJG$mgG4iAqnmyyb#|9{^@dG~_U(dZw zKBovrMBSTzSj!Z>3WW-I+`vPVBIhzUy zx2DpJA4l?=c13aF)&)SU+ewK65Uq|NjAUgDJK2tSdDG!*Z#Dt_>67gxZugo3Tl=~Y z<60X}>)f!v z&!ay$AR}G}wX|{n5vKaT*zEmZeGlX*;J--Q8X(wXzn2u8#se~vz74UlE(wPWvTrO+ zrz2>)i2Znh12XsO?Pe)@7!^IIBbdvdW8{BuY1{4~T7G^*iH_<1Y!&|Yx3cgZn|V0* z3sna+5dJ>IH0HCI2#tKHWh7!eY$0eMtbnXcEB;4mU<$s|KMOYkHe3f1O*iZahL40h zlI6f-f{)aDQ|tKtBU(Jtmdd==+Z9Ze5Qy-ViGd{(I_+NxUk!yZV1e zpl^eNa1Z)EUsNKnd^`HT1ZyPhdba%ls^6rzB>+VOIy%0WFNoVBAl&7@L)N67QlRa~ z{v(g1O&X#__S;V?zC*@g{hNz&VW$+hON;;9w4KzUFR}mIgQkrJ!aei9JyL+G0Ua^_ z!FAjXyEa`n<=l&cHud=QlLxF*el4e&1i&q@MXLp-s3 zr_H77#141)e@ob@1`T-fUu^Nd9z(17fBURHwB2TQD%xZO2KPF%6ucHD_-s`1?I@JA zZ0wkRU1S2f*nE|*EBVhpJ=lhO`*LS4EcVMni@x8V95fkQFnUF(y^m#-`2AU28RKBf zTU;Ho*>uoZYotS@_-VV6^ft6sE4RgYw9s5p=oV0fAa=^2*%82gvq)sSwoAY*c{OGI zloibjOb(f&su^I8b9NXV@PBS%S{I6Y1BR1*KjJpz20l;6$8qcELc!ALG)VKZPhj*GUkY zm`SXc`{k3)xu<74dYr0iEb|&7I*oaqvgW8_A-P8yk@I01Qm6#Lt{V;w&*cf@Nu!A) zGQ0E!oIrTLt1jLu8+#|^mZ0&_i>_=avD{*s#J9KLSKz2UC6=|79sw4_!*+!@9P%e zb$T8IE9s&vV>|Jj=E|I((bR;!0eZib9@YqYR~D%d+DYe9Y3S)AboXB?{EH=<*lafsy_-nJ z9M(hU;djCbb?b{QW#DIDN>+70np_&db7@C;Dckuuh~hRelj6m9WI|Ky)Jd(ldB+p# zgdLlxhFBF&NNezijSFjE5pQ)87No$VEB0kPc&@(O|r6ht`*L(}%;vs(8<#;x3>}7=ztzM1T+vtg(q{NxYVcjh5M*;7b%G=o+ayA2k z=o|@%>FWbHI$g>fu?sA9&35^^i?*@%t>V`-H*35(gD3f&oO4y3yJl4KOLI6k(_#G7 zq^U&))q*44aPW-sov9*BOc9GKncOJ2^Inv9EEpC(9#*omfY(cZb@A% z3py!@s@N&B0Fxt`9?njR5}b)jtW0oMN#hE|-IGkurAobBjBXB)S=q-a6nD?k9l8{| z5SgTk#LKfK9b+ry6iuRLrI=w`Xt`fu*zb}SCA(^QZI8~_bv&F;uirk=x{(l7Cjrcx zh~Nox1zp6*k5E>#wh>g>@`SCwfy<11Y|VBI`#R z=XPpY>b$79M&r%zV!jX?k@)&7&1(&9>srbkS{8 zR$={ms&mJktX%aC+aTvw<(UtfwzgKr3kG5vBCmXeXAXb@Eap|GU=Ocvnsp12sHm;b z%51-Dt?n34x&4k)fyDzsfB-(NO-Fti9>I=jn*v79y4RXK?6)jg{^arIXIwL=mtD1@ zxp0AB!hIh>4&c-CW1WO@Z~?n$7;?>tMJ0U$$1LBf&$c-GgYTD}nBryjN!D zk9P7qj~;-C3onI;wMBvGJq+YxYYeEJn`gVJrhJjIc4>Z;)dO5`=6IUq6PXi))vz1a zVEgJ{-&EXp*XLM-OhVYc+<%mK+)-DD|D;yW2MxosOMYKk*I!Xb;$gY#wnHk~GS}fT ztH34)H9bf3W|tdSo9*`%7fj!~@}oV?rm46<9YO%ox~&2ZfX8x>M@d#c-4AsHvtFUO z9#C8$MP?#MkKw~|vBZ%P1a!dx$s!a4;@34K0h|1PbI%P#xH(!eJ3)9`sE`2o8r z6f-x|evEQ(*#y@fR=NM!6~2n}=6H+RQEKpAszY%7a_s_W_Jva57AGw->|suByKLSr z-RJ=oTndDI6qAF$9cNy^q451PFfmzf>3Z#4=|C-6`cxRm)gi>Te7W=n7Ci9z*vXb9 z{KYm3Mn>4Ca6gZ)SpcJByE9&@s3bh5!?W3N!a#3aErRNEs2kFmd@-{lc$7cuqo{+ z=k2C_Sp#%l0mMXcs!w^olfi3l{9z!|T;{iGbGaMyVY5WuKMNx$5BIWKav$39(3+BN zd@La*Q~t&BVH&e%?Im<-i6X5H@++e?X&wepE;oSz72~IDy z6za_$8<{Q9IKN4Luo)O~vdl!gJl%#h<->OMNiW&`kaUJ>qbsl0;Zny98=HOSv~8E-jrw?7UV`0SO@Jgb8Htr$5KnqvhY*1G=XHn5e4`~te~sxtNUf6 ze1_@OOue2u%GUM(-H1(h4PqAax%yeZ^0ATxHi#=f zfLZhNr-|mzdfL*KLeBhi9X2cgVHZUciWZwR;i?TA&$ev+SV8LmA(MHw*s$utbKu1B zI#75ooh|&F^QM&kDC1V0p#NVQna!5Pu3F!D0_+fPY9V z6r$V-TcTv87uj~IIl-ezY99n(9f)ml=Qjn^e-*kA zgbu@Zn9f6QXcnO36b5slK8KJNBogr8*|qy@N+s4k-maC_u$hS)(s`XpjeF9Q`Xrmz zR%c3bzpZw5@CC~>-I}y5!nsiP?KZ^QY)0E!7op)7?QHx#QoLj6)rdN+>F+9_yu`(} z|G8Y}qCOSQPPB+bSsSk!5~wGo#tG z?e0}w|DZuPD1y=``%%I3gWJou$LDT$bBm#4V@%(t2c7^xOAw3j$i!u4xww0+ePD7O z=4rdKmr>|7=wm>88@5X2izW6(kKXMlIl2e6C7jJ`P3`%}Bg-zfbX+A#B1Sq?lLEKd zb@x>;Y;%O65d4N=2@y=hybuek5ol-Tt9@_@NYwg-ix$Eqcs!NjNIX=*(@GEXmuapkEfj zsv-8$2H3Y=DM)g=gT4hE7 ST6w&BW?19#z{qPe+#FDzsQKB28RHqx8h7gxpDqiZ zRD-~b?(CzIgr)N2f^+Q~{=KCuxO=qXsMurjxZa*MY(n>rLVpugJx}Q`7+APIu3bAj ztxyF_*4+HCM&A}iy3Pmf+y`07d!XMks3FJ0A;MMqnti@Lii$+?RTBJ)c6qn4A_WuI zl|sOWQbodV=-(6WQE~CHIOXJne}B2jV_RH*u5E80f%A}Meb$96h~9V-+J3@`Om|y; z+XK^5aGHO6_W$NsY$S9MSfd^~9QuogO5U*oV@`# zf#&_DHW4*Pp?HwkVks4SA1?BqCPTqhRfF zhu%_2F9NcXnRt9@kBFVspvvP@86LeimI4-5zYxsRf+OX8=-<|6^^SP*M- z{Nyvf#YYjGQR87iVM4}#$3D@3$w6JluqNhAhU=Rmq}j}lv4BB{71lB`7gEagdr(5x ztv5=g5^mk+sK$BQL>8XDC-WKP&8-hmsFdN#jlZSyYSwZ!xv+F>qK;)I zGjJ|m$Px)&dg5d)GJklAJaeEDpK@oe%nY(yXFc^sN;@UZTMHNGo#@E9R@eF2rwz6HJ z{($I|T0v|n)?41C-Gi)S`1-2r+OrGQgC1gRE zT?>C%o)MW?<79SUW^=?Wmu5cON+PH2ox*+yS)Jfv=}$M|xtVi==rv3jmuF}6eo1DS z>V-FSRfg1v;p+tevsz83-Sv=PhWygOxXI4c&g6LTQ8p-ekQ)s>a~++U~gWxaD54*Hw_Y zMWA^^hX}@7h)V^#X}KQ_u%kHGdl^s9+)MbOnw_^d1NJ%@%0qeyiT6$GZZ7J+>7=Lg zyCC1it$6{Qt=Oi7crB~gtA;1}nW(m_W820=&T1v*%5d-xpTETz1Rwiay)0&}xN=#y9E-r>fbM1iz z`qqjp;}}J`z9lu@Rc%?1G%*In!^Kkf)4gEwsL+8@1k}4LkpZPVtDCXsT2s1fwi6(R z*Q{~ot_rVi@wCWRWf9sJ)xIe>TWqzJ?qkV@k*C*4Jco!w_VMHLH~rwhxXu))O+D|+ z$YL9(*8=NHbB;UWYjQ)5W%3j4TxD-I-XL66kHP5dY$FG}%7~W=Yi3 z=FS;_0Ja#6GUvV`^_dzV2wM;ly&Lu!27uRO(6ia-xI`e7DUH^9b8SKt6 zW#(iyvqo|Ta>Tmu`ID4RUjxyk(^Zhf;45X23CD zZ%Ae82`bTeM-YRex@Lz{#K@G#^;tdM8EsDqcZ8M8%S6P>fhbtDMQT8ix8}>NQj5!eZ+9k$ zzlbRqh!i{=YCEO}smWIvYX`u@wrMOY)H{%wB{nWNpLRomJ&j_1%D)R z6mHk!ZM-?tvN^3FH$DW6A%-YY>un78P96DmgxzT*k1N=;J7Z)f1p{!S+oQ0K3X*Ko zAKp*)K1;2nrtwM7oO@9m_<1!3@e|AaGt6&6y~aRnbXe4t#B91#JSBF^mvCI7$pd~@c@$!Q5=03S3MLkw zw|U$lyDnie_}&Epiu6q_*Eg?T*?-CQhvl(+O5Wn*QH2{Yz|=Se#4j|$U&NtRtgoRe zKdSwp1&xPIfyEH4`Atw}pgn-ag{*i#$0L>gpgW!sp{PK#!FLnl#Q zD{&5dilZ&TO`4NyFwU$Z%#LZfx%L6AXGW=Ay>`Sj4$|*Wc{od>S%W2rr1x;e@mnIX z^NY1_`|!|gL4eqwXVg}*o?`n)hlO?<4R&*8cJha^%Zl{?U*U9}HtLS^M8yFMzc0Yq z=@&FMeq0)HQaZreJkV|L@1bx2xHQ98Px0&*^%g%~%JL^%Ao{^9fOm3oee^CnD4sSK zPjXxnmJn(&F%F%eYiFulz4o=70T4hsTv^j2FfX?-^{zuq zB2!Rv)61sEo14kVIumC>$5uj6lGWH?)`J3ri+rR#A~)d4aJLs{x67c$CND#DKFg$n zR5B9D=lPE&RQ<-5p`6i7jO8&$Lgfvzd2EzAK~!TDUj35izQiZc5+ zEkrrIkf}|Et+JF%xqY!DA#$HX#1v-@vSW+9pfCw0&YnW1+W=>IbyelACSXu1=2PdM zm}FBzsjkE~sFEOmS0*f+cL$p_JgCTM&CFD}O$KoHczR5u%=LQmRgCH$|35yVi{Y zKwo(=aSu;)Bsp`Z%mXhBrpBYk-=#3fRSH({4?XsMz7^A5k|n(dJbsJehP(#}Zm@^6 z+LE)t(^_9$tw$%9hK7IHTg{_Y-;b0h1hObS(mz5jlY?a4YPXMX)91(77dvy zDY{c5@+h*8rPfnQ4~$h;SlCdSCg3R+K>VOvG%j?lttN8E!K?qi*}HAi{J`K_51QWi zLaqVG|CoECNvw`EDl;@)u#QN|#@gcMiV#bLGgkN)2=kjRVyxLX55|n)i*Iz3M%c?}~EQ@j(f-%U;rn@w`RhzlP{$0Lxrb;bdLTrf>pnu0G zo0V1*5p!m8vbg#TSIY9|Y6hYxpx-V^9cO4=)Yz0#y|H_Wwz;WFB-v?% z{##SUqux9E6DlS|hX4HGQ874) z=>%TPx1l?G<>)y(j-n40qTpZ!XzgRLCNAoq=Vn)`*39}cT-QbZ$&^&W<#tzGRmNj` z5p8LWba{B~nEluD*N6%{CEvRDnfV?I@LCfcfqkHZ-G&Ms3d6%wmuG&zZgu53ea}RA z$p)cPin{Z*?^Si_3&*y!Ws7=|rzC6U(>LZr&bFNGBJsod7$xXUeRDk(Fy%y879guZ zF>6J654-E|)F`@2=}|a(suh2 z{Rz{7pXSm~g>m|CLtJkjj3fO)%JQRzKygR7$6qdMxY9o}9T_eKfHD_OQxa>(Hm72$ zi0O1!Gj%ccN}eloi&^V(cPHG7^5p|#(TONh>1kyJPmznPgTHpl3pMyzzmZt0nu9#e ztQc#IBLT@quRh^u-#5*fS3L4%>6aIy{E70#Rkxd)n4*sd1Jv)c6YAhY&{lHJF(FRq zR+YnZhYTK3Mfda+-}-|Eog&9webV##Uvv4a-?9^sLii|KBWclHO?FyS2P+DiRWNO8 z8t|Lr#oF#|&?5}P# zalfv@|A6z$bM$G-`0f{qnXf}q8Wpj%$Ak1}{eI%`0 zQz!B~(vteU1DFphsw!w@C~0M%x?hPq&PnF)!00@fUc-7%5-*+P$3Q3yUYs@k8=F!{ z$Opp`nOwJ1S26|9@u&4h_Kl(q8x_kg*9C4tSF42Y_FFqGU??EV##Txz540jC0KN4& z%x+)W^k2qzYw5}BVz>Yq!10O72EpP1-QCZ4T#Kqq5FkI4T>10T!ag8l3=PO=v2N@c z5E#=C;>5gzOW23!taazsT|P&*{M?dBZg_=p|M!phL%R;mBn*$Vdp!51qYlf*7RiTN zasd>Pxr$4`qEI9O-NN_Wr*i{Udggq!hq|At!b{*FM z)2yyyTDAZB%+XouM-DV(>&+ff@vGlrqw-)@dnrd^4KeJjg=f{^xa00n?w3);u%?)r zR9ecK?%f(Nk)ajXZh;5Q@9`E2@rF4f7T3^tfdTYZ@sRcVv_}Ibaf>S@DeYEjiC5Ei z&$}YoV|fXg$3N~VE|QCGlX0Bi6S&6zPM;PBk}K=i=Lu(ExhQxSrT$0@+UOJ&CNWQD zC$lh>CEfNo9o?|-qWi1OR_xs2a(SVDZ|DV4fi%7MbDA`b8Hn{FKJ zQ3R;Yo@(e-w`tT6Opj|p8dOjpF)`z2JlWh6#gz>%;MH$+Vte_N7&L%k4+SUH9y!}@ zlj;gWvutvy$>H4=tkuJe>w@;VFq_EP!uiVDkm{Q*y}Ac~A=ltUvA!{zEba7?ci^Tvnr=~; znp~~(cW^@Uz+v@|wKBX3R<>q5n22~E%oUvn*U4%-LI?nl;_CV~4{XTx2@%0WYS&j^ z@*CW1Gu7e^X9Yer&MUJ2<$?j2?W^b@Yh`O>*M?^98iL12{=y1*O}wnilg+BEDpje= zf2vl0m0E;8LHwn@74QU@{+6)j{C#zuqBtUu*&3u=S+#DvpwQu*t;f^I{yTd#4`M&E{kGq|RLDIBT();ma%;%jv@0kWG~ISF{t{Cm{G~+zg5{VTcmI zL}}V9tde%N@1JnXHZHYbh=;B$R`Hj>z@D=j3)#4{2#P#JJ)pCg-88dYPC0Rw@|XKK z>vc5UD+$(dYc$8#AjiMw9K*+12TGZLg;i=|+?D8q3HL->y>k8oIXV_Z!(WT=CvkZA zIIm;FlH%+&XK1NfUZjg)64C!E`J=f02s)Mgm8Ndv`|u7un{wVjHn11-a9Dln;&6FH zPvwMzMMrT+Ri&yhPut<7XJ}_`CISgP4b08(-blTz{p-RQcfW(0yUW+hk@x+7D5TMT zA5Ol95O@KBizn)(E^3u_kcD3Ah7**bER7>Zs@lb=D9YPtx;VC({%rjM-~?Yb%F zkqNx%*RJL}!7S`)re1-ck)P|nh#qOR)tIGS*Fj}4=bM%qv{|%xO=G#VSF|j56*Lzq z-M&qwm)F4uFi~6UYkg-4T&nngrOyc~BWYm`VRbC>TJ|w++56G5G-grD!pGSiN-Y;h zaUKY8;N!dr_UDo)&cXl(J{?P=-VX-e@NwQkmwB7zI?+DHZ21)}Q|5x4+=|Wfah%zv zbqP=5b^_|MEvSTD`ZlY=F0Fiq+* zQx@NwxE67qs?MiRdrFEcF$_QK5A!cTJLtpigW!+Z<5&FMQjMI$HhHB#WYCS&8CO|Q^5vFTQzft z_JJl}Rn?tmklrfne`v=EsNoJzhQBsdqO~?r(GH15yNN_QM4}z+Mf)tGU9F-W9Eo;t zB-&vJF;%Y&1reTq#diSCw&g~K4{GQMY7~&V12UfMd7z7BN+0Y>%cD|DZ(qSOOWKi= zP9*UJ=<6Ji#JM2op+3!;8niji=RFX#By~LHjU7+&*s&M^&*RAlKF)g>ex8ovECJ3O z#(_`A@~HPxcwfNY@NwS9WZiiFIGP%Uch07qI2YP1GrnbiU?O=5$a9FaJXuh5z5|F*^aU|gMFuJFS8wJR2jpiy?_j6sbk8G#?4fqqOx0}LrPH^ zyG48%8nP>`DpZ@YM=F|r{}*YxRcLxW=(tU2n%yH+Ok+$DDp!^vaf||QsqC$kJys?7 z=`SX@r6l-&0TS6t5@h$-XwfQLtC+_rd%UtI$f)YOMd2w$owKPtuc)Y6O z2`c17WpAVGZB>6#qy0n)yp06jRv~St>`BVrUKO;Q{-uI$Ck6cwg_|S=W%u?frX7?$ zS=l=(dnZ-ElX@xO4wA>olE)oY0e4a%cUJb4DDCWjEPSI zs9hzg-BeOj74q)N-Xl8b(p=WkzPl8h-Fqm!J(WEznzcP8k!fnC+zW%uC{rd!{umwp z7;Exl4=?au5_oS@y7dB@kL}F7#fqOOO}2mm9~!xv#+v$t?d024PEw&G_;qNISN&ql`%BCpgCY-*nAy!SG&v{fT<_2xY8i*&e!JH- z1HXUt@PnR6RX-}3gH*;2j)D(X;6tKd{%q=hc-{z&Za@D?aU2#36hw8H>Awxcxz|64 zE;xAMo_*+lospjTn$c^%W<>LK9rAU!%GZ^W zufru@izHujRlcr5z7FptU;n*bIYL$ck;*gzTO)#&s3#3 zM%l-zq4{lpXb!smOzHE-N=dyC$0_@_(fT+}uzstCTr~roBG6MMrqk4rdpeLtLO+c) z`wTTn@=g>q1pUAn+P!!5(`aqik;9FDp1&|xq@zG?XOxDMu8zFtwi6ERLR*qxeYRMM zWWM|n#Y@ru4divTq7#n(NF{Og8te`N=YhqUeumFR7M*Lcm^;^0yc1m;sL5L#y#oKV z)%?>)%PJh$f2*|Cm0+DTR!Gieou>EG62cQRGzzX=AM?Uy5<9~OKP(V8rL6CN6JvoY zK+;x1N>qAnH?Cv!lgxD5-pNntiub~|s~5lLKdYEig}C$kVZ`6P?;~Eo9kFsArjQ20 zY`+kI=ASsJafc&Wy#koq559jDbXe`@n0y%-h=ugpLx8Hn2}0%XRB5vs`G{yd6rm?s z96?R0wElhXB)K(JimmrPexE9T4fH>bNtMR?9|w(Fi6fqldDwZC=c6$=^#(8XE-jRL z$3H-U6%;Lm+vwrm8NzM(W6wyNJjAnmiF8gh(*6p!YsN36KEOlV+DELH+LYR5{?A{# zH*65%Ay0twX;9NwpeCybS&OFPt!}EzFQLAV_lSdIgEl9QwN7z!&f!6SseBz}=Vb4b z?@Qng`VBrUHg}I{&?_KwCipQKJuk7QTN3&5muVK&SUDe!4}xK}x8J8l{Vn$=+C*JU z9>NZFt`B#$?L^b1Ub&PIWC)7FFN?y1y;l=>rEZOd-P;XV<@AC4F1%`>YQ7x#$i?`D z4Fqn(ubA-J$kglO85&f7t_Tk*Q;gC+L|X2Rh>V}tjVvdDbyXNEZ{)iT@69YO*g>bS zQ8=)$6*Xgvp7-yZ_Nr%HE_;pO2bj8EssLX}4G z$5`mmjeJ+PyB~%qtC%hniw3qU{3;JmgKv~!^(Hg)c=5LI<3%8UFc;-UHCo@~0dA7D zWzV;YN3Gw;Tg8Ey|L9$C`})w6!iG%nF8I>0N0aX%Zw;F>J>D7)$yB`yE@Yz53vcEg zhmyIs*ugu(e=->5bN^*~?+8&V5@WCLf)O=qVDjGu2ay|+#H}{J7Yt%IB#i}j@Lq6O zCh{&A;iQcOS1NsfimDg93r00eCmPrkM00bPXvX%5;YLlGCDattMlqc)9u^$olJB!I zb$(kMqHv2NjeOp{&E{GiZFJmDu5KOGO5q0?l|o#o5vd2ZN^r7Xxd)|kGYNS`@6VQc zQ}R#bV`NwEbiTvD>}RhEn4~&T#IxaS(20%}{&o4tf^wDY&cCI3xr%54xB}x_%)$C4 zs|_9{ve$I&Fm2eW-aG0yw5=QDO@UYEC+n4mG4=0%5kuoW!cF)nCNlRkyuCR!;{6zA z#JLfKVBNJSSa&T!cR+tlX=5q1n|Z#1KM~O~ETOEOYc!FOcquIu@1@_1^!tK-wX_6k zrQbgEqvfC0MZXLo-%r1H=$9|j#K}ojmZCunESbtHXj@%+m`172N&Z8&Yd)aG$SQc; z`9Z{gANKB%cR#1Hl`i~>$8Sjl!+~ z?6fHCIlxYj!jhj5Y)UKwn*rDvQM~H_J2MLV2(Z6IVG}+j*jZ87$$*_5g*^h;IZ@cR zfSntKZTT6&&WpnS1laje*iyjeL}BUA33fq$6gCa83!|_L0sCtd)&H9{VfW+ z1+c5D;sflOC~S+b33hE1b`oHJuc~{%=0#!JzX>)!3Y!erKccWx0lO{=dlIngqcH1# z8-m>sg-r$Q#whF(z{W@E`DwszisB9UmS8tmwIyJ;L}51o_RlEnZNUCjMH}A{?A9pk z0KgVh(Hda4MPVxeyS=JkeowGFqOg4dyE6(q53swc+5@n=qcHskg56Wqw*b303Y!Vo zeNot4!0xZgGhh!yVfK#%TUbStfIV1$MF)UA6os7**uz!j0PJ8b0{a56{iE$W_9ucJ z5rv%u*f&wwQos(0#MimrLn#gDhWd0e+)j8rqHn}wuC@`6KW!|kM>iJLV;l2Wv=NWI z`voq+;ms|XU$OZ$oBw9>8#cdX^E)=bXY&U(e`NC~HoMu}z$Q(OWX9Ok*)-UHG}(-^ zX|b7LGs$L(%`}@CHf=U**sNu<51W12%(9tdvyRPrHv6%eXS2X&1DlO(HnG{C%>ir< zWOERk&1?>4a}zd)usM{?VPuvZs=LlVMH)Tt4rl)nY;MY?!{%me7TIiJvz5&@Hb=6# zIh$LsIf~8EY>r`bOE$M+b1a*GTeCTi&GBqbK)#MdzJBz0FnRX{&e%jo*oMt*fi@p# zTC56fJ4Tqq=Jr5KZveUb9G!p0VkgwQ&w=O{ku&7;zTx|fFv;gO-)F`t+6m2ly?e~Q zP)OV@4}CO*KN`ayO`X5>@4yf5AO08+{utP~ZE$UUP#|P-{_y5hrq}X){D)t+GvF)T^A*0FJd2h5yN^<}V)@`#=F}0vOn_Qhl z_HtBJxs1?bzrKzlC!{%eL>KrhfzNxr`Hb&FKCk*dKlbr`hV&($!#wE? zp)l=>g_nqxc)?$iCn~?9eL{JOkI>LN!c#s%V--SKOL$&QRbGX1+V|@p^=lcR=R>{& zdQDZYJOK{hR3B|%6HN(^8VpQokX7I=-Jarbdm~(DI9yZtL$H2|#;oZ?C-olBQuv0a zE50EMD-75}LloDD9Sd#cc+i$?oURy69j3wexedO4Y_J-C5JR+p9Fz*>l+#OV7m@u> zuD@5Aj$Sk64yNTk#H_O5I~V<~JnVmqSve%;I}h`n-4?BStTOG06mn%ofOZ51f->K= z62Na_c*t-Sgn~qP$~79~F#U`3xt3GxVsl+pZeIsuL9e`FvdE)#Re4?Khf#T57vz`-?n)>HxInVKZe!V=s#o6R^xi@)z7G=#&d0W(^4!Yhd4%%DG3b>? z!9QxtkI?mQ>oHtMT4b|sL%=O(2U<{o5qAbIKIaVgRF+t?7z{lyHWKQG`kJ^gxInoLdI+kacKQhIMNBLkN1nVy&wgH;*4a zFrT%qHd|XcE=gGD0a#mEheE%Oi@bOh(Dp}vDTpc#S~-m4&g3V>T)}-*&GnIr++G?b z9Iy}H>JQ%ONjnw1a3K#=I%SY+eIL1eT|=d+QLi2dZ%gnMi`vLc(%H>w|`a+e^w=27&(|Z zuK={P>3Zb{%#q*8BJf*p(&p&I&+SBiq(5*&!)$woXY=o(vpIkI=bAJ9G-WRTJ~Eeo zYkKFJB{i4-h&=q@&C@5zJYB(j`%`$n9c=_EI0&Hw2pg&<^5vL8i(-dQP{vZ#>TxR0 zmO96NIszND_b~DZ=fblqgU#zes z&I+J>%4aG-+ylfF!14g>=Yc9{rFbqD9QvIdIt}a}_Bc1> zv3c0z{HkNZi_|gUh(4O(T#B~pcAn>{86|aJu>HfqIsB8Fsmn=zuk$QrAQc>_zwwD(VeUQx?I&*t;T(MF)M>Fgx_*RE3{#uVgCdhZsS*2;l zLld7O`OhJ$MgD47^#GI>J@&tt)7;2v^oT6Td;aFj*Bw8Zro|?fFM>m-e<@6#ZPn;> z(%~Q&R~JF#edn|w`&(7>cj@SG>D%|q;+gZP(HXH)!@xYI#}OZYodNzvPe+Roj<4*R z;5kk97f_jb3+wNWOS2DX@=fiKR8WAvB?wHW>oG(B+(7{^qv^HKY| zGiUK+&g7PlJ$mFZLZp1VWC(sS6m1thrq&>Yo>PnC4sd=--fKR$6d+ng(i~*3Yc4>{JHSLwHAg&?mLdzpvt$`e|%K z*GKaARdfk24bx?K8Cz_ZG#gP_8DWsRucaj@lrVE7V4BcxC}yfrAiD?Tt)E=cJX9NAoz_Y~#U z<$Xtaq|X8)W#wY9kO}+bnP87T;9Eu+VxBV00}ZFQ-_37ySsEPm*dO12fIh=( zj3S@l;_s<{KYv2v4_u#>P=jGhfF)A{^_aXU2f$+Al>iK0S*Y~8FAdBEIt1zJ0F*xy zb<{*sH4%q{n4bI7L+1V-{FHNqe8>Nv_{+QMjeO~E-^=+5>p>RMSN|94^T@VB*UUAj za#Du!*D~D++&$J|(dDDTZt@lGkI&n>9S_`t14crB4->oj3u{=l5rJIWcdgp?M!v?a zj(iL*AG>}7*Cf)F74s^KZaqHXi+sp;fBT(}=<8m+AP@TtPUIUj(9`RH;zWJIOMkg?3ksm>ADG;? z9yek=mesHx(IvblKAu_vOPnx2zNR5CVPtWnM1hH9GZi?1$~Zt)4JQbW{EQpEW$2QB zC{X@LVx$LYclpMF0n8ISgk;SqpXh}scq^!E>bt zdW;x!IJz^Zhuvx-hDaRy<~5G@@Cvv^`Wv+gX@{2@cX;uQ;B0XM6T&VpA>Z^85cw4& zOU)x~31%$7e#F)>a030qD?+3Nswt*_d5vssjmVS<9meFXqvQBTesgr3U8_Ybmylfi zw5#5u+!*s+U+x}Ny9%EkmXxy)`Q2ZBkaaB{V1$JKz#Dp!CPNGE5GHHF) z7XLKl`vdM`ZXf(l!uq_F zaV=a8aI7CIs?qu6RFEGFbySUg7Ocv5w{6E~9eXyyP3vw|p5zt4g-rr~5&jNeL-kXE ztM_o#%o%S%8E+ws_X_Qi&*N^Wu_atGK)tsc0J>SD;FR@58em2vS3@p@&v&&)Sc zW4!j^Ohw%~oT-epDW79VYMsrXvwV)hWhBl;Pcb}-BcEcRHF}^>gUn|bRM`)ADrPts zSye#zyUW0AB|T+?|MBAHL0L`i&lq3?i zUVbrEb$T8FT_e(~(a4cGgk1YkB#F&PvY7tZmpu16N9BO=jyk%b{y`jhLp|>&aS^k9 zJC&`gnGYEQnvANZ$&il(>h^h4PQvk_U?eh`XHL7UI-xTstZDnqNyaRHKf2FnPFQU* z_(%4ur*!7@9D96!HD`}+8&3(3gH;kwmv{X72bf)cD7&!I=`X4|J@)bnqpPXMx~2Fx z+=gUv`JCU?w!27OozL%FVmp-UknAJ1WgjWyVuO?d{)0gj69wN$DZ{JL^{`NNsC`it zV!27Dlv(7b>EgJ9bL3#(uv^6aVNAW)5hV7FAmRWy_UM#<1m+<5hQy?*1oEE5*SkC; ztfTv!5lXbq2zM)Hxv0JB`m|SV-8>_F&Fxhmb5_r6uaDGTU$BB3I4ij1z!TW_wBU}J z25v<~$3cDZ8`-H~)Y4UIG)DNr_DrGj?(9sV;U}eSli#$k4;$6!X4nB!c+7W*De~Z> zrOdZ<3Z*Z9*@mz2bA*F^XaM$uSJ1%Y=iw{oz_j^8Hd{EeX`T6iZNnY|p1kO(jqZD# znO~FT^hdXL|Bna)(Nm{b5fs+w=%^@2iftrx!MKn^`&MO8!~;cm{D9b&E7IK0(f%rQ zf^O8mBc0z9Yhq#u9B<$f{7t1xg0oGC}sFIi{Hhz(8{E#DIUXjL6 zh7UEvXEFV;FVpy8MS$^(vW#D_KN~;O_I>RtKrF?S2beL zmphXY85n?PWeMdQ?X#Ron8|r=g>mkeaV9{2Uoy_10Nh(A#32b|LB`qCj1ztR{}Sf` z8D}CZ&R`j52*x>+^V!ynGtvKuGiy{(UcsA-XhaH@X|f1*MIm4*8d2TguKpihUF8d9=XFV+krNFp z_%yssj*Z(LZ@!>9ux;WD+a}I(*u?CAmQ9>NHt~Cdki58}OAZ^s?^z8aaaQ$Sptu)T z4X=oHKn<@T4JEw?HKkC)$QIx;tBJx*n`wyEu&_I%nDK&Xm`yg*#WpiHtOvZ{2R3wQ zFQYYS?a*&jQGa}AIE9FzmYXA|G$>n^R6U|$@@9>Ef2@3wo&ACWc9JiybVJO4VGwh| zAeSe4ylTai5^Jdeo_z*5G(j%mh&MbHs&r4F9uD0Wn8%-Mci!FvLYkf=1cidUoOp|`Yn z9TJ(2M0ykyO=JelUpW4$2APb1Sp>f2qo_e{PxKh@kTN$PG5(YZat(BcSBK~lcpPs*4>W>1MrK4a@_%J7R$gGg8x-iu9G99P&=uJb%9s9*8ofZa zEqaOUW^liypDVJdl(&RQqT1uVdNXP6oIz7#RmJKo(7?szi|79{uJ(9;_M@_T0%~xm zL{5S~F^hSo#8~pLz#cpRRpFBjx+lWwa+X>GY41~;jM6^ zRsc66OJpkFWhxQjYBX|Wer$_4YG52HS7I*Ly?&-o_9tiLGc@pEMwW3=CZ|AN3Re0D zAO6MRNZOx?YQq|bYmN$k9pb3IBxW)Rth&S5y&TQ%B`VWiA8+HschTeH z9gYp~6icP^0Q_e@Tf9i4|K_vBZ8-tXRxoCZRs}uG8mAKCl3|H+$uQG*$uLvr_d?LU zc84u{LTiRuK5K><)|#O#uNkBP!9Q?47q92g^+LQ}K-cr}dY-v|uBhto+^?(AOTl40 z7*a)(f5RIYJ~nlkZBtk1a{D9a68y&25t&!?09|7xnn1dZp`qOO$bjzf$_h%qb8daRH2XxGykyPnqR|Fs@p zqg(6o5MGZr`QPhtTx0*LnBkxgt(S94<~Z(VVJd4&1-ajd*Li2r@(TU?xY+;^=`6; zRwG_Go9pI<3+;8Y9Uce4Cg&hn>)R|6eaij zsw=9|5~Fv2QLhfqfpzYU%!yqarlRdw_t>YmP-Sm6`}Ah&)4Qlo@3P{c_@Ga(gi7CO z_USFYmAA$0(^z-Mt#VM^ZS|?U%~svD;=044#%!ay+kw~H&ARJAb|QMWPWQy@VY!#( zK9v2TR?&m%ia~c(k3luQy+nG;8r2<_!TWW`GPw7DzizXjOZiDgT=TZoB6H#7nhS4% z^OLVlhzR+q;++K=K0{)dH)I6k`k8;ivhHHwv(`|MC-AHgPXW64<1$EIc7@A?@-_w7 zdFRHdFAuJ|f6*fI2FP0_97@NvJoG0&^l=(Yqo6Ylj5u=^dD$5+Q(Kpovwh+k`9&TS z@cSHp@O}Cxw?%{h z^&W|)!hDYeHHiFKShk3tk-4lIeNLy>NaRCH5tIsM#=&azc{vnnfjh@( zL2C3x%S!{F8(J~V+-9Ar(U-uRteZ|)%s`ia{mXO#d9dr3-g1p97{GhJRI$QG7Q)S( z8A&3DB&x9Upc-#3yR4fxm)WM^ifsz6u_=&ymb6gHQ*sPlk@i|1-s0k*A4-MK^knD( zx8(@Ej-%!`8o)O(C4XEF-yySb7tKOLHCkdc(%d+zTi)*Ajx2)vQF%>qg>P`-Hz@Fb zj+>}RC{D~(G80!!GjWAdxl3l^t`#T64`yN}m&=y951_ zWpzjRB@XgNcv8S0Efim@fUk=WGy*-I$VzyYK@q5d?wI@3eecndBD+~LTq*L`=iBn- zKGSJc@!VQfOf`?=g!BDA!xj2}?|i?H9U-nUo;%kV_kE|y`_>u**V$*Swx)jhz^7l{ zv-;%}?w60SFFvGx`53Q%r|V~U{Rdq?#p@?#f1OR|ck^%pe4+cE-@)AD!aK1l2M~|d zBCFukQVV~buZllqRdZ}Ls|Wb3$Y0w%|E+1d=v(1nr_RZ8y(ZhGv+crv#U#E%Ym`F2 zf=V0qnk>`@>ecT+MAg7f{1L9?Pw#Q^ua;dH6_GV%7fx9?PXbTM%!M#QfUITm_rX_K zr7T+LqtrCd8koP0Z=m#iT`Pb;U;K9*`3jIJcwfu){AHwX%tV%)sypTlb(z9Hgf&sMO!^esEbu?nZ3 z_`lN6KTpI?FaPL&$6v9>-~Z3}ll>6cJ97-I^!NR3IH4OY z&?h);T`?#7!8wS%E-C_^rI3&)ad}aW6^@~_+0CMXfPTDqk&aF%E)ARrXF4!k6m+; zD(WIfX2JNz99b-X4MwJNo=`?z8ZZz-V&WLm#9*)xE4=MJv5)t}bZ+i%aBN;s%sQg6iIr%NO_{PBno)C zN(y~6(?m5or3{`*{td%nth@22vDVm++r+xRCpEf%x0Uykn31La&myM%cM*H5(djX} zX)ultUK}9lq_1{PUtJ;h8Dw6P<9N_9_?vCx5F?GRikragxO@mIWVrJq~fr#n`x&SofiY-k^$spZh4u`1?b>0qq}=Xb``u*b}7u%Qmm?Z$T^Wivnd>fE&z#NJ#0^XW^D_9$fVB&+!b z2dBdS!^xU8iWok#hNUm+t2e`S)FQ9RMk|Kycp0A0O+U8U2CcYl&`KKS`I0KSS@x{B z;j^d2ALOcD>&d@OMbBOzVpFK{Qb89M&Cp3 z0U}bvE+8s^zFp@ilYDWEks0@jNx(->JdeA2FKzFaItZAkyW3G@n1M zB(n7vKJVNcNi~QMxHdBW{jiYZT&lks-PpjJ!Q}>Ai|i#2pWNxqK4V%et5wzLCg7ht zhkZYSE?Swt8L81t(I%F{k8edcljFKM+M{XM0ptz+aY;juLPaQ$%NDq-Yo_AYiK1I# zWi_SiR(Rdmaoy1OAgi@)bJ`kz|8)-1+W6NwNU?zb`MbkuuuH!wW;obYv@_&y+V~JJ zdcre9{9gQJ_^-nbEFb*upvdo;iAV510fa9J|9hzN=p;s!M<*DUCtUO3M~py=PvWSa za1Vaur7He}*xsOn6Z996RgFfDtRmzsJ>f|eVZ^i{Lx>(i{O+b#=_SN}vhd_vcDrL# zHZ`G)(Gy)2S|Ihgvz3eHO{J!~=pHO6p2TK6_Y^yO(barC7iZ5&OwU^!o(EJ1&$w3c zbA%A_DMY9lV$lB#aWFT9NJSx%njxzED@2l5X%wdr$;=Q*|7QqJBNdk;xf$ZQaD=FV z9}MgbT|RZ&wrz`*`USUt@lr`y#csg~D-=x%Gn%Ebqp?HeP9a066e6XUgUB0N9sZM8 zDUg2``}Z^bm;4|8IeriOk7N2z!2anFsYn1HB00~Hj;QqCd4^>7B0NKqy~#X7YGe2; z!x6{l6@0#lbLeGjtk4|V)@KfFZJ58e6y`Y;hf_>Da}F&P;4_wgJJ@5n(|?ZT4*wp@ z<^T6s-U0H8VupjFbvCTu5WB-LoJB3z!FO;DL9Hjc3Vz0~4=ygc@Zdy$5hc`UDvmC)`+q9t=Fw`Qag0>X@{;>J5=R%z^aJpZni@m-*$+y+o9KgwnNmv z+o9qAZim?*ZzyIsXouc*JJg1HiGi|5Q9IPNMo1rS2Xw&CNcZ{o2$4Uu;}D7INlg;v z7#1=@3MGes#R1A942wS2u&7V1VYbDjN%okqgX5U!;~Wz`eOsgFzwFmdtE|)(y?ojt z%4&;x+!k0JF}=;UXd2*H0ztw18n~u8;77Nf+JxJrtWg7TtMJl!M>Z_PKS^hMHCt7U zehR9{yYMHW7WuoM+(CB0JwlA(dqQ~0Lu>lqQ1;hjHY>H0u757I4nxwtAj>kcb~#z z16?EXsRNM1$B>O8&)&#l_~N3m=zAg!jtLHXC8MQaWP_bj*+3XPac82 zYO1qW71Sbwpy2XHb9xDV)~N9~L?-wgjcL(OGn39Wx5?->C6?P~PwZ#V zba4{o9a)~KctA5!ZpZP`-n6UH({LQcexDTUdTmG2o4$pz#fUBc_ ziimVsN~AZ)ks?>4r(Qk;E@T4fS*GIW>8Y^<6xdSjOM{+$tx7O*k1qSKW-g@TajH zKZ5uOvz-?|1`v{|ri$;*sjBk3bHbN64S82J8e_>ENK#80IU5R?NZx{Do0x5Xwu#wc z{Kq$dwi%9Z0EO^3fK~_m&u;*^@cnb*o??cD-nHBCd43Mps}1QV`C+u{k$H$(43Wm{ zk>#epJ8=MRb|~<#tPA-ZcFZPeslr#Ik*b6H&%JD}y$5gY{Y%8xOJ*Ozad3J%gE`r}XT%PN8C!CRCQcoX=A zgAczzZ;%n_7v!cy0x5wkLo#@T8Jelv%frAW-Bpr7bvol^1TPxNnplb`|+m zXSl|%I>+oZ?eBWu_2NFe+a56Jj8?vL4D$Uzrnyh{+ss}gq);~Vejf@nAI}vV;jOF( z4f)&oA#ClG@)vBWiAKeL+&J#=1^8=u)Iw~aU{CZSw0(=^5Bi?yB^D(1L@%`fM6M#^$^T z`8tC6I%&i@4WHykGssqqbE7u!jN$W<+hb@Cwqe5#Mwjp=_!^L=_)9bfp6pz5S5%|r z*LkDygT3K*yz-Nd11=(L$H>b%U_8FE8pe(mb3smYkvlMdw>xpRLqAr)UGxJw!ES`6 z&;c;aze7a-hU#>>Ov;Aw-xMf5CUuFD!e7%POQCW8%^5Hu*YIzaCBdXH%)dhnxPtlF z!Gzz*9xch>A#b7jw!1Anv- zy66mlUq)zuBF#V{>SxwO{{D(cQ>$l>4qe+tp^wQcU1D}p(AB9W!hg}_yA9Hmt5cyg z$o#-VFsCxrNN7q4z@Hn0A+u4Y+R z+pVkDTg|d9c;@n14cW;Gx z_362Pna0g$=2gCMO3hFF(i2v5MNrpelbM6ZupC-h1lMyT?hAJ9YsI2=qtxPx=rHov zNxV2NxQ5&*&2*?QD>vsau4s{hu0qB74vKhQ62tx(PP!Cg zeIDqAP^T%xqv=9?gUv>2vF1-9rp%PFq@egh#kG$@^y{IBKg67IW_f#uo4Ie;T9LU= zA@*gYSPbFe-V`bl-J-CD=m0Gkm|E~{lKbF0P`Ju;eg)y692G3#nX2D8n7 zXD>9vX8BI8Da4f0im1>I(e zU*nrsd-~8-CUNGl5aHS7NO@$2ee;O&l2u$c%=`_=ORhP^>cWcbyLm++=;JA?VXlTp zC}MI#jAh(iGxxcn-&5{KTUV>r(N$`HQ4nm)Us>@ATMMs3MZ+Iv*@h%HTkAt}MJz3b zuIqAB8Y#rw!)8mrT|{k^LhR($H^iM&Ld=hlZIr^iTC|Dc3l@1o74DOYRYUu@4;2)3 zo|-v0f6}atJCCfqtRdI*V%#RP#-CUt{_Zj}#DEm$RdcK73~(tNbA>RoM{EdxBY&gB z`S@g;LdDZPkgL=fqTp#tt)O^UP>Ayps9T+fbfMzRP`ZjMLc+{ZaT?08dV&yfR6D+u zugnnPDabWcs5$8>sXF`~jewL^h!moK3+m6IBKV*gB3?!_mb!2?;S}n^`N|OfRTQp+ zb?<~|)E@mkg;6&vDPEx^#IV7CA}8b}cOJYt{1ax4I~aBw*Huw51pYSLgEv~;eq+|3 z0@h-J^!Fwk>58c%zEPeFiY$|bI9UK)?`9^~)S_p3Mf6T8`~5SrG{NE$SfpK*G2L`Q zipWv`b;rT#)78DRLJT~Hv8+sP_L5<+B!681-?-Cyk!h*RuclEED(ZKCCF=t*L#!Ax z%nR0>QZ?KhmqpSj+)Ms|{?e`=_MEsX=|aVB=6V9`cbQ-_*YwF{W8 zm)V~oo*$+$(@>0fVETJ*U44ZbIs$e2hi3Kzm=P~gTQ(GVADjL*S!v|iY+enhX{K?; z3ULiqHyfmDN?4)L)v4b}7c7>Qq7mOzbcFVJ@(RQDV2c@lEUrOqbls0v2Vvf?kQsaX zVwlfS7gwa>)^8|`H)a~=-^ zhL~cl0B%5$zt@KGRYUQ_^7nHoU4@ESbA$*=j(zgh8q-pD6V%&Fsre0ayfw1=c%gG< ze;!jpVO@(Krfc)ve`YMRB5C{<6jfjrdJ~4a@kh)t^8(g&FQk=U+R+^6%TAfGvbTjj;qBGFX<%n;;S zzJ)pBTV6I@3w{v7l^3syfwetX0$ z3tsiJ>NG(ch3jUofvqTk$QwVAXvuve`k(172J7(amulq|{>FAl;q==D~V5Bg_?} z^i+Mxb(DTsH(f7V^T$6{Kd8CKtnoQkuj@X|oCEIFGiRpXZj&xZu~XZ>!p!NqYi2Cd zpeJGtr4U7-cLvIq>D8Wk_OE*LYG&9&h0R)PZ?*Y(f2)1R=QDK&`iGalB{`_qU zb60-%u(>M_vv#;ctetiCgJwA*-kDcvwwYHuIe$IGSXfEdlD(wp9O@-S#oR!J>v>;l zGep~?l>4S))HHJ*9NAmpbz;@$=2~jv9J6*?zc#~;twt^V&G_q`;IZ)B8kZfcF<8@O zfA;&Rd#2r3WbM?a=b`writV$kQ;lop)scV9t6yfA>vqH1s|~qghQ0dS9Nm?3QEHjQ zO&Hy{hs`8LcTspZ+x2%dzV1Bo@`@a=D#iV3Ua|ciT^S-|71df!arC*_OVYkE*UyEm ztF?ht2falw?8|b>^>glA3hx&d|8DMQf1X(B<~(g)Ek8n6{e_lY;oR4sLRK$@I5SMJ z6=?a!v`sCbU*QZvVrRve>s1| zK(2=6MO`D%t(EiiRM5rb#;duC+4{c}Hp}tPV=5)An*X%s?p~(9Zfx-cNDo=(ddC4!5lNhe<{VZ)UOxPN(-#*2Z|+u=&sXl?02R23c$xLl6fzd~S%kzniXMV6$n*qVrXhHoiH{LP=HgDpUknI~Fh0AMRMHihu6Vf0ZH1v@uVQ zQs-BAXE-mL!u|eAD~0pt%}zU;Orl&ab6lQ(CHSh-brxEIu3lMJ0fu??dY|d9xD{f5HgW~q zw9cHt4qCgNnbsP;jkU)~f5I#7U=aa(je1byLq$GV=_i-FgzeUvKe=@^)LN|%v~)kL ztL!1>-r%FDmo?UH-hN8~(d_f6AnK6kapbA20a4smx}Y7ea*zGUTr;%ib;MZl4Ql+! zG`xxn?SWT@7|8jXD0>9<_K9*GhF5vTyt3vw>zIE8?;Pq`S4(@DyNN7IOx-j~m&(#5 zhf#K*D8>?0-Mn&HxNdFv{_b=Au9cgwn3VqNvKe_gAYSI?}lCoJ77>nej4 z;*E7R!Me(5h1IO9rB>LTmcLb&Yi&zc&(bNDF2>UBv#xSjbuRxerSCMa23flO*3}*BYNK@(WQAA& z`+(z#@M^Dhe>K&*x@KK%w62a>S84w?$MpE5=Gr0z)@!u?_|}uo+Y5?G%gxopeE2&h z6m`q)npck()74awnpcrC#jDSBRZ%4AOXrTkqA{N_&J`D6RQyp+p08Oe!Nl1V9-;VI zBeJo-Ev3_$hGOnp!6UvyHnIZvFFcRnfAUvQCB7J#e}TA!rI~JNG`u$iG;1x5E&`2?yh=&i;fhI1W&!Q$=YI1EgHSq=A z95{cAsR2}nD)7y_DpmL`=b1oldZO~dF{wjag!&?(bTQPGPumrYG^&@6#m^-NA0d^Nd!95$LC;AGO#!95 zEGhmUV=Kb4f7 zQu7puG&PlTQnMWLbN?i2YAF|_=H>@eQ%|`fHAT0Xng+@psc8%`lcu3^Uut$8e>eSf zRq$p~7;%qGO;06`iZwQ118I(kzDkhvljjC$`l$mzgY~?lFlk_4sU%jhR_kUn(~40F z%TS|}3rkZ$YJT)F{R~nnOAVfakY<=tUux=gCCwalqS8@n2Cp>ZnWS`)nwE1&^Fv*$ zY?7ML&!(UK$}y?w`GYixv;)c+f0@ICDNR48l&jKDw+KqhUpcK@mzrEI(maG(en9n; z!VGm?`5-k(cAJ`8$`7e2Zuz;VXc}s2ST+Ap@spa7Rw+oz(noY2GX0QZqD+G)=`vB|>Th?59)i!?ZpsSu|{~f2fqCk+%d% z&B}0FlSgV=rHrj<_u1CulQAFrYR3FkDI_&_ERC*KlA0Hm#$T-?HLF@GqD~3SbCB9e zYR+1kWNL4z*>7pW)EKF`ZD}&8W3<7b84vlnlovIb)d|wit(2s>qhwL1N=>ztrk|YZ z9H|*?`N^*?mzwWiOif{Rf1}j=YWXRy?vQSkg9&T#NtLLR=g%zrbdP~DT zb`jR}lzL6|cj>1#?52w6C(SFVY46ayk(z=I&3may20PrPckoHtn(8O2RfRNL)SBww zQWL>`){5HdKT`9J{cHq{>XKH1HCsWWOU++{h0qVcx=gLDdZgwDe``vBAAc9N`+Y3M zU2ONpYC`Gf0c%QtCXv+4fYD8wCTfV(+>S9d&DCU5GbhZ{v{J*QCOFWHr=6P4h1Mo` znGkXIqqS+T=8%3WpCwHR(S2AjxjaSYFVi{V}%;1R&=55&1-3fsnw;Q zmQZ8e_Mm2@T3c#nf4&i{8KX9l`I%gb{2UR})OOO(hbm^MS)jrCx%Z7i!8%#(ApInI zOqwLhT(z5w=S~$fp1Eod>1Xrrrk~}g0Y9g$w3e$;QgiExV9grTK&YLC%^YrHKLf2$ zC)5?vPhG2Ar&%-hPhn{`O3k`|Ow9##v($t@**nWM?FDt0f7Fb4YifQ|_e+iIovFE^ z9+nz^=uwjjC?dD(n)<8Mq_H&D)l;&59*h)HBg75$ob*%0@`D;|9WVIlpHqk~u3PGD zsTt3j?x49VH8)3)ri6M+y)QKt*-s4kc_cOcMv-O+X#S9zm@%Xo0h;Ghb9yvs#(?IP z)coXlCV=Lxf7GlWOPVR5`7AY$IOZSXmio8UBxKE7<(8`JsHw@CIS?w2)Ewe?7Jw$c z)Woo631|{XO%o2a0yK%F#>08;1)314Q8?5AD0`UHq~TB-z)ytKtl&^vK$AskuCita zXtGI7QZDHp(BzPs7F-)gK$AymUUNMk15E*``N?UWe*#S*shP|9IR~1e6pCZM3Yy|l zGnQk%37V2pbBgnG7c^z0rai~}5$dp<)EqEd2Q(F><~?g(L8!hIvsv??=`S@aS@RGy zF;cUhOYs9VgQTWAYZU#KI!tPMa-Mb2jFFlEE|(WHZ-bhV$E=3ja^G<3KbLvIF&j+d5 z!ts;<%_php%%yk&X?>BJ1gt3oe!fc09*(C0f5iM#YSOaip>kIh2IlZ*2GWd$cr>ZW z%YJG=Ji656j)W{p>vee||c#eRks?>C6Kc_%b zTWXqc{hR~ME~)v2H5EX!S8DRGriOM;Js>sDIA&PEs>h|~0GIue{zN?~HB;EnRnVN1 zny;+637QL1Q-6#Z&lB}NmCGE<;OBR#e>rAa0MI;@nuVO7Q_2(dxgl3^Z51&F_Jb)v z^U}bT)lOJ%jFCIUKh!VMkNY5LGOEwiuQHypkotn`=;yimUHWMU^A2iqyPm7Ujecg1 zAU|Eek191oS)&-wRks^M4R?g{lYWYiB0qDKKh*?oT#LSgH9&f~i~LhfEJGE7e^8|P zOHJ*@Jg5F?`gx~jm6}tzOh50{qB7Kz_d;yWgEQkN)-1I&f2$>=W}~I~u9lV>*9TMc zk6KP@j$3|It)kStwKOiRhScn{G;XbyEJX<9@LN8d-~F_@($AY8q-pMoqt%z1;y+D| zzt&J{Zd!igYE7jk;2%>HU+W+>e>p8pBCWU7ys+X4)?z4>r3uxBN=;EKRC;Zy)Lggx zWYT6!%~(qlp)Hh}HkKxfwnl31!X7PsW-M1$Z7ZeqQHY^?vF1x?H>4)q(v;HfxN&b@ zrMn_ESCw+wJGU1!$G-{IRM7sBp}N6}C__7pxuT|daJ4fioHRnz(!3toe}61LwKRXJ znPX|{Xz@LG#yD~VY1$YKwO|jf>+-A+qBiu8Bchd-Q-&(=J86q3P?@jRHkONR!VA=5)|rzYrR%cYKk~C zwWP*fT;Wjbway;wKebkyfAMVBdPzTXi<_Z#YQ3cgJ$o0_BA4XNn`wq zoYme-&C=(l=A!2IqUI0F&s8lzYVIsBH8-^|sX6@0)ZEjuNzKeDrsjcGOllq!Ff|Xg z@=}v%n5lWJHS}V8Rf6794)&){#B;5Y^plP?#r02Gl+@I?O`6jBS8b3Nd(`HSq=8YU z4fSI0{qWHY^-Y^ZfBESv#KIs8U6PvIR;Vr#`=@{`VWS8ASGX=QT#E;TbVf0&xguBTGdBfYKpLuwwU zwKdOVN%LAI&E|R~{jA$6q^5?*#hUR}sNAmCQd8B+Pd?WNFP;*=D^40A^0_`rP1X{& z=7-dbb@)l-hnfTqKRKkvaQG=CHK!e#Qhu_29I025e%4!l3b|@X%`e4lO+6Xv)MP4G z3D7i=eqLC9e~P+VNI$Kuk`{GENzIQmrly3euhi_aG-X@^rRI{QDd!p@H7BfiD!E2V zO{kUUDy}h7v%zYeYOe88v)uAi!!<=}DqHc?cFmNUe=JQs*F32iVTEewS}ZkZGT54B zQd1(mtyxL6VQCtN2R8-LvvheGN-pSC#2@5!_P^n zS?KU{N@|v+u{EcqCSka(IU_Y4(%PD{QuE9T)!KE5dX!aTZCzKSW=#fLb3pADRY+>C>!xPEtBBM*2{1JWT*aiOR5DX@#8om@+0VEt#>(?q)PSF*Zc}sK ze^n)xpNp<)($7%E)ZBJ8lA8Cbsk!TFA~mn996oY2lbXg>ejdA8NX;@!^M|Xo)HJk8 z`oh&tYBa;tymEDrng}b0Z(W_Frma@^&zqRX!@`?allV;zU%y|f8x?d$MWOWXUTX{T0K0izC&tKTRkD2zFTUR zTct>^@0FShRw**+`=utIRT~ldL8NxpCpC$!(Op8n94nsE`gN%pXSHcL{T7wf3RPaeBQ+&+nwpCGfBjf# zRnwov($v&n%1~D=OHx~Z9m`Jx{d24l*G&H@H9f8TG}je>-%u@dEtaN@?un&or^kt< z>7>W^$C%S(H#L!ZqF8=<>M5k3Q&zk8(Njy!5vv9J>1q9a^Bk>bkeU}(o(Jj~rAD#p zaEKleE3M&r7U`##Wj99Z+5OQ*e|7wadxADf&lxM!C_T5oZx5fS7nYjVUQ;tkFY51W zk*4UyrDjcHQ!`C3Ej1~uHl3lDm6}Rc*_Z0or6z&Zg3I)pQWKTM)U44PQvIYhHJkNT z{y4r8ccZR(RoSg~idBmJdN&#Bp4G$8=|lZ}?bs!KxYYP@xvna|>7%6Pe}Of2F0+=9gk<{c%XKI3t z$5OK{!qg--o=VNmtfnT3@l0w4S}mB=crG;sa+#WB#-IMaRx5?^N^06!mNvEVmTDu3 zsYz>mkeZ8De$pAA{C#a^2IGs=^h;=JB8;z6bJwc*EXH@K2~K2ce{vZA`1{W9xeO%$ zHNRSZ@)&A>Z{NsgxB`4@H9u;6Y)e7IEj2wXO(DZCmZq@bA4^ljh$}VatZ`Ay2$Y)A z!qgNuf@JDdEsIpfNE$2kaz=_+IV^9al72>8wNb~&8sMzMt4cj1dw_2p)@O~q+G$|q zl$y)IrlygRTWZo;f3s&}Bd^poJG&QY_!cwDIR=tB!MrwYs zMnPAjs??meY(kV#PinqfW$$Y=mzol8vt0d*RCWteQV&?3bF~ta2SU4#o;~(l{L8 zJ5!%CjtAgje^I{FX4x+oCj-#-nokP;m*$djK9=UPaU~#3?5r=uX+2Dw1$iE1Bj$|E zZ)5(Vx9>y#t0LgKn^j|i<4oB*f%)6xV&44Xm5J?){nm49AXgc zN)HXrAx5#BvP=kX;T+=6$wD*)S*eX8eg%E|wj?*!e-YvY$l0xh2>0d{OMXR}Lo8`0 z#BZS2+6r+EWPui_4-`Ec3UO<2kXU_#{7q{w#3OL8#4?iQzF6TY{v5*7hU7rzQC&#B zl3Z)>kUl~b1{v=XaxN=BdT)}AT9EwQj^x?al&`HEUsg^Z^Z&JZ zIk@g%e|*~eCAbf`D#RO*xj=pyoJ;(YKoRPYAn~av)#FQ8g8K~#6!jWmegegZjwtQ; zmd(L(*?hSkmbdQUAzc+IYZf8?R0`Sl*L$!K35V1j+~6?DpU+9Q|AXXXw<6`@Rwxyb z6zV4l$lP6pNCEP0Pa)C_vEy4Fsfcj!KS?9Ge|ZqpgToy;%MkLHWk?Qj{1>XP%nOCM zp1}4udWjG@!C&Hvij-Ga_LxrkS3xB2q$b%m56RIif6YhIo1f&%V{iHI`cMv|?^kqmxD zGCil8wlB%)3YBl-ZsJSaKW=O#S()=2f6n1va6bJw-}9JjbG{#DB-w`Z{ZBTMp`7pb zobR}t-%BiSa`*-u@9!M%MArZ0csp>sI@ix6<^o(lO*x%NPA5CZ|A}R8E=OLLeO{70 z!|ht0^&7Z9UtqbCWkq(c%<>SAgZA8CsLVQzpKafx0~}Zi1QJ~_4S$CB>~r0bFMFg>**-V zRNSBYbNpvn-*XfrZxV-(!{uAW{;Ke}y21VKVM(s%C&Y7k z{MBXd#Qk{y$G4r!H<`!rc+S@qf3B}gkraM#3$`0q*{*aa9?0!{wU6<9Qmp z&tUg+EQ2`RL@c-bhO*Y+EEN>6`@Z%+AGjy0LGp7wlG&@H43q1NM}un(f4BYnVcXE@Yz1<+p{Af)`s63d0@{u2fBXoMo(wG^T~aQPlW^aA;% zG39R`%&*ZF=MZs#2geN)e^)jLu>oXN=x_7lD!e`j6L)hdVhH%p@)S8pyvd=65x{AC zlY0hOFN_6l$Mx~77wHppBKZu~L6g9JSx;m|Y`Q4KbeP{mdZG*yYhnJo6BZ^6kn@4@ zPWBWa@f~6bBf>=7dqOM$ZnHp$l_2Bd@3kP$C04|4kb$s%DV#D)e@tyo=@;%m@;sz_ z7~Idp()Y9@-a^}8EempC7i!OrU`Osc+(U{g;@J>8U3`1jE0D*aAH4&)w4@N9K{ki} zqYZ_AkW&$XAY0{CMDn4Es8gNlxhvSA44{vKah@6E;g48OMWhW;M1J6OJrq$M{EvWo z`qmEWhwHBf^qbm4f9-UmA%87_i?t#5U*)~pNs&qm<;~f%@AS+#P|3ptuFe>p~k3qBcu{jd_me+2YbDl6hRNPM2-4CE7^d%p;B>PlE|CR1d8x(e?2 z>_nF)Ve)>DTj0KMKc!3UricUANWQDf`g$buH0OLa72-a|^IeD+L#aQ##{7Z&0P+^h zPuj3R(E{2ve-6mmP@nNZo`&^xB9PCdr1B*O8TSXpW0q?j)N}G-ia60u5$Qm-;(Q-E zC`2akpR$yY{jhFnAqoOFttLci@Ye#yc~#({&@XBYGsIsfs2*>0#`qOcHHz||f#nov z$NIy9#c3Fi&4=0j-^!Oye!}Ei54(a)3hUH(5n)z+e||3Mo1Z0+&nS?QoZq5{$UU>n zXAW5(*sp#JBfT}=Iea!)j|>L+;!l#MyV-8$xS;k66Bla>F&X^zDnjLb2j!Uyd;sKH zsF$RTsJz=6W4emC+>6pDJ>(no+rhu95y`wD_kz3%^V+^_Vd9LGisk<`tYZ#CyzOCL zxB$}Ce+>J-B5uPtyanO1=TpS}Vd=%MP*2aH9j<;A;yv(E;4dJ%ffU2ji)mkk@PK>) zG5}-{$PkcM+225rsfLG%)NRRbhOqry2IFWL*x>XmH$gj}&JiZ|NDdPd!Nz2Qa66!% zVxSkq9n^PHz{5-y<9L)t_MB?;kJN`hH(2pUW5Fd0l5q0 zRgf2$$3cI+57NI7>}!WpJN-SJ+6|?d?=szB+>HnmM?eOE+zfU!1mtj--@-tCf^;H4 ze@+5@5s>M@{!|0G4eVtDkXd2<-*$u}e-Ljc;CbNQYXsPq-sJwKl@KFJAc7c8IjD&Rxgbx6@as{3v!8~765vf7egY`{N;eYFUfd1FPVWPo8%1^w3 z)E>z}MuYprj(845<1*1mnt!8V{vA6}h?FB?eGltNl+ErF_mC3$3G}11AnP`uc-uk$ z%>Y~lB(B45w;(;v&k>+kz|Lg{f4PjqW$Q)tGNu8ZUxmr@p@N{N^P(_5$AWr=_)3km z>$4=Mmx$fXc<6lWzr$A^X@@i8F~fgR6;TuG6V@;FK=#b2h=y5hd%gthdrQzyfpuIv zkoZhd50LomOdpW0cd#A-`6?9FpCDVqm>380TS7(Vt3)Ej=bS1X>~p3-e?2CsETk+} z3T1lvhNYPxJ43tA8)=B^rO==6dT25DZ*+}h#pxt39VWR7<~fx6PY`D>Ox%!VSt;%K z`ony*0`wL3k<7r1`C8%dH{cP>PoQtUmSpnxB{zIUm$!G*w+&v<3N8s3-V4E8lN%U$^SGS zr?@V>2JTxRp4%W_bjNk4eO@;o^r@jPLZDyXhkSenJN(#D-u4499jb>D&>o8}gt$lhh!S!a6ep z$U@Lxa)LbZhGd*1v_CMV3;J6=&=&()0^-Tkn9e)bcOlL5=dixl6_Nv=kX+Cb*2!RJbL5A)VU%f4iT|t_CYGO}dcB#P`frDgG`^a&q*d{ZTo@MX>wbN7Wr%`80-y_52}{5Bk!+ zCigsww{9{jf9k5(Pi=ki|DoSEmt<`H)rG!#bN@x-FigJF+v$D~*4@1!zb#{>L;AGx z>3ZB}(0V;gjLro80Q^@xF2uM|_B!v&FKl1rIzCL^XFD6*e>ZVHO?zUlS69G(VZkWd zKi*-x%HiMiXO4?_(BA98y$y_uEu+kR732%rW5+16vwJ|61ABM?WFy#L{sQtLtOrhj zoD2Q`EXa<~e=dSd3GP=x;=4d_y=vxfKG?ropnu*=5xevKU0XZ;4gJ) zMN|hFPfA66307qM31EHE5O^1qzZuADAX|fs5B1n#v~AxSLi_a|U3c)wwu+RuD-eej zAerKCf0SU4TB1xZ>cYGb4YGF)SWkld-c1pcK>iB*pgABvmJ?zb$jS#`T>-Ka?4Ndl zECKtYBOt$l9XkW^A6PG41$hSKeUNqV4TT`nfP4?K%^)FuU^tNOG3mv4*v|%nyjfm| zq#z%{Je3ZlQb~wxAa4K{0QsdNtPeoGf_+>Se~?=tpY=c<0z1yLJGt7qZ2=ZJR7>6MJAf7ECGr@j)AIQ?MUOWc!2h0l>Kqdjc ziQ#Gr@jJ*rAl_FXTL6CsSsU`Lj7=|+LVR&R{-_G;E0CR`zEXlr2{I$d1t4>QTwfN} zfBPVFgDeN~Ea+>1tOoHk0=WhBZ9x7BG7@Ab$ag;s5A`q%^oIx2Tx@GrWkD2AG3hRlZW9@UG5-sg@ojHy%d=qd#53*kqDj&Xg^zv9mRE7EN z2FP}o$$#tOxE@ycJgLUuh`u;a+IHBKW_nmJ_aI*X*2Is&KK~BodvXNU_YiL&e~jDD z?ZSB9P3unNw=HOWZpLGV$M`-%eEA{$uOM&E^d`kPfA-WN52 zaoKQOph#AnIQIGFue-^=InSE&k2$~6xnmCTA{(9mTIU3OzG}|fvGu!hP&&SPyFX6v z33C+m!_8Gl)>w<}ZM$da1hyaa_b&@6|2a&u{SInJv%T{*L#bHni21u9f4@*K_*~F} z_Wy3bf-ui@2idS0N%PzQ_rd+g(LNX@zHv7l%v;4e;_nBve;@XL=s$vf)Hs{X^A%_O zb2)yLc)qj@5T6ne}_Bhh;Jp>ffK+z+LHhAEc?QIe-`vpS*~wN=VHlty#B#F zkQw8@#POpX0ru_|$h|D5O@euCoZV0RaD7$bd@lcw{66OR9>=QJSFA@_3GDFCf5{x8 z7mP1$Jd7h~=lJ7^6ItvVU+VD`AIdc?C?CJDH0$XJ`&T=V#Cpy(f1c_&*LdH3=-F{~ z2QPg_vJi|TluxpgtT%)7m#dSU$o_s~_k%2(mLh#UmP&Wh*O-lLr`@Wm$w4G1^*}q6SG>+GM9J~N0=9di z+<4;c?qHEYhxyB`e+bt`T7OMxrifbO!L}47)^jPM9>gQ0R7B?Vc)p^D9GOXG%mV8# z&`-}HAY8DRURe?C!GEya9|Vg^U|+if2errF7j3!Z72f|r`REPdR=Qw50y%X9{ys+f zk(}RgAiHTo%mi625lV7j0^Gt6=3$Vd43fLtu#RE(opH&1e*;K-XVas&RNhB%?fw!D z^U;3xe+0rW@E77Z$cjmXxB+rdI+*7`9*Kbd3G!@Ka(|o}`X$JYi7DPd@aLTnEJ`O7 zA_2%~$Y&amqk~ZzB3&NbZy920M*JPi5KkANois$VMbZvi(sZ9+P@bb$GIqGJlX1Kn zVjb+`vQO}Bf4@8v?Dq4g^BCbyWXDqw+}km?Ohofqx$*M;BIqM1gT)P4m$v76DK>%X zu{4xpeP1D}fm|x*M{=(X?oXlo4L}z3z`mniu=p4P`!(R_!Bk%*(hAWBxCqqa7?2@Q zk8?mC$SK5HkUetYIs)q13;l9}Z+#?8W^;Zy58C>nf4vo{zckm^|Kbou{4&Aj1$oK6 zcqq&R-T&Wu_cYSig?aF-BOc@#^$f9f4b|6&BCz*xxN9$Pp0n9(uh{V)lI8Giw_D@v zc6-wi*${t9N%j120`<$M6NukVpmFhO0*#ALkdO9x={`DiS0;vu`(Ou+iT1odv>TpR zl6#zqf5F0wZ&m{NJQ0plXcy?uDS;0{du0OICxY6gSyoEtPcO-eFy3>4yPk{uwarcb z@T!&7(-?S|X?voOdyrIyz8sMSuO9P-@K>n44;`t{Xg?q>8{)2aZf_`5@@{ix@ z!}J4!NhX1D-vaclIlpemS7(rWA^yG-4Y3Tre=(5N5J$rmF${Q~oVTbQ;=}m)7HGSV z2KTmLFV!Bld%b~j-7Xf&a|=Thg#F+I{7ANJH$$9yC&bi=w*MnAo@PyiH9OeJ1t3#q z#&cIi{E?OR9d(ikv6TI91^E^Fb#NL(3@(P}#H7DC)YMZu?V3n-Yd^^AP~Nj3%f^BI zeeIU89@HmBq9Hs9sajXqVcsG&Y{m z>ghJe^JEguPcJ|=2D|tf@*nUw{?174;+|}Xo$_}j3V#sfEBU*IZTEf;Q^fJYfB*mL zDg6YKgGGNBw;_V)dG79;-o#kxO`A;ZGkY?HM}Pm_ zPi_AlPm{fGbDHl%fbh#=m21m?r1N(a&9fh(6f4}2A!fSv?=+kE_nAKYJ0R_sc^w1o zkY6MFml^usKH%NZPA5Sw%|!ZJS*V?=804NB`q@p8L(`I-#5aQ_&5FSkP_CytrfhlSe%ej5e2|brJF+am1)X+o3N+fwqv|W7rRO<#eJTzCWP-`c9$s?=X-V!H!M_f3LvbJdk4`{9@2w zTMp}V4!3Ixt#kKJ2@~~t!G7Ui672o}>aRDZksK<|K@73>F3ca`f8OpX zA-nJo$Z-PFoN9=B=fQq~{1w_cF39$f?;wzm?hBC^WNzr+$)}q2X9z#AFR2~jOn+v* z-2|C=svW=69_5%yfBDNhmEtJ`vduNhXSbz7l!@iPB5-Z?->VGy(^4p+8t^Y$g{TwD ze?#Em1r*WDp~rk+cy#YDHCXu1hyLA>>aXimnztH({i-;O@?V1cktxk`o8`N(3+vIh zy#@r??e%_=+*gXfq@;9~)uVoc>sMNrazC6(cE0aavhyfQfAe~)B-@wQyv{tv9G!^x zb{gWfIx+5dkmE;?Toyv}2HL~@Fh0At!~2%VPRyEU+6hC{NR0Qh8R9vwM@)I@48{X? z2ll<2M%wYD+JnD~K)dfHJCsS@zh;OHv#5PaOdvb$te>1ieC_k7sWk4#PxbXTbLxNl zn>Y3Uj&B3|f7|;1@VDQJ58CGsSm%s3gjfD9MeQ-RDX&YK8lw4k*ta+3{pnQRpH8KH z0LqU+LR^|k>!$ZpY26fO8m*hsOrv#EnrRe1?=-S6g+OKidsbx{*`E#|e`G;v2nE(t zLo3_ug8g;iG~e%pk$l+P*C&2_gq&%iwHf$=ik zmzTxj9n;IF!e`Y+dKzeo$OV?LI`bgl;jja%e@~qFU3^7k@Piei1W z_NH~lA1E%Sb;chglBaXVpHS3J=Zrt0_$3|1mmm`JpGcf$uJ9V;Pb7Y0ZUw83)H4!^ zTgTr zj1=-~nCO304@Fd&ky6ypMEoA=r|yg}(U&<4cIVAzKx4|M(x)Vj7l`Sl6;CD4fAn}^ zl%9x_R=kot&C}zu5bb896(5+RPr+^&_#5-!h2&q&Oq{fs5Z%Gu%NzmRA2?xVXL{+x zkj#``ryI~-Gt!CC%nI`)=ETf1ndiy;q!SC6DL?7N^32ZsrxWX#pZrR^m3iwC;yui1 zbw%=F=56f%1oPVY#OIk)a{O1he|+7UpE56C{>(g#*^`C%5~rVp`Ijz~ek$fdi^x3# zbIf((tjxw?;$qCDzY$kw4r6Y?Jef$<1;dfXE~_9rIzVs5>Yvc56mYXf6bhuq#}7U z^MiLV8_&oj7U!b)l(XdDliS&UG6_8o<*#x{SVedSpNyT+XZf$ zOT(;tc1CuKgC+`bV@3{(`$2!W>tMaG5RV-E5$fkzELLacvG_Ugf1=6-EDnbFlFck+ z@z)pVUd+mG)~RTpOIWPWg;nTGn`ck;EMXOkhXW5yQO)9e;M8ko4U5mid^6C&y`lYw&#Y;s zw-DyfX~Fd^z7dNrK>SXA=*#*RU;p~^SWNk~neyAv;>-ony|Kjw3Zi>ci_b~-<`&

&g^cNAMC+12M>|`&0_smSU>*d;4RR<^NSun{BfquR9`(UUL@eWuO71}Q?FWpftj?`{WE|F^k(CPnx=+|j-TI=EdsMFcz8?;hA2 z2mcM_P3_>~V2{HcOykdD{nc)?cQz;7BSe7L_D|!tpT(n&!}?U%oHQ?%-(vmcc_FgS zvibLNipcNa$dcIKqJ8RrTgCxC9F}mP75|_$nBHK^f4#(EA&Skix!Mrqp>}x=$@ek) zaJg9{?DFM<^+JY`7AMZ3h)?xwUIX(_wOKY-h54!OtWg%%gZZPm%>n!JVtnH)e%u!J z3&Lic@0@(-m@kil@SSJbjO&?R4#xFP*Ah14deq6wV7v^n{p&+wgc#!pPxHlii;cX# zd{oA7e{;8^xSy~&sFLEt*dHg)vUwZK9|46e*70edT*BrX+i^a&{a*$DtqM=D+~0#e znKjFo7tNYz`G5BucHM<1#fpDYtoUsX>jU;`)?^>vHfx&2U-~KHmsvA?_~NWN7UR<~ z_h-%b;b*fJS^1&)d#S}wp}n#OTCCs2yUJ$Se~kVAdo0#wFSB@4s3PLbULnrN_03Z+ z*|$~VvgBc&bHINA-(h#McdNx?b{_|vWcF(DirvZntq~vDeF|`@*=y|jllE|}_$l3w zD`XGX2_>J+A7`!;F3C@owQKM@jvGWq$wwux1kOw>8tg*%jiQ_6;k@76DEdmCDK1@u zfBrsuqgb6Ed5WlxcNfmyB<>U-Uf2xRb6Z5Wg2dUNeoL zw-t=H*;_>ZqQpt7C}Mm4t)d%q-YU4>-7cm|Huu9j#9VUc_2dq*vMA+u8SKaN&E6r_ zIJo%ionotlE6m;{ZZr3X{!w%GZt;Wpf7o{+n#|rSG8ZHM4)(hJ?EPXm^HT^PHT$4A z$?WVT;&FF73NjDv40*B4Vh;YCT>^U zF8`3(M?@dV!z4$w>;ZBdim8x6$#-4@MDP<`)({#-N8Z81XfNKel03i!V(CX}$t zH+%M7v5edW-VOSF)&p^bIsbdGe^;{~iZ{#$vnpcc>_=j7DdK6{F}>f#wu|qd7g{Wl81PTxN*LDAtslx z+vnHWFT^4TpPv1vxKoD8A9slmS7yJGcbQ{+U!cF-nf+Sakvv2MwZ{0~e~9?yh?j%u zdouft7*&qO(~Xlt{5|`fSXqwhYdo69Iq$_r=EnGibl{!k?DUfX)4$_7rTM@K1QspoHTr#$87bUoZpeief&5LYNd z{G|frXJJi66q@rDKYDBBf2Ra+a7Aj5m1~9A>;FxpWqvXY`Mb!;+<7 z@H6=qrG4TWrYoACaS$bT=v>wDJizG06^{GsF~-r6xkIq@vmI*Pf)x%7cW{C7Tx}s6 z*g@P`>7KYmzpiCbhkA48^FUs)5|i@LieVKV6TXY}CX>4M2WG41gOphkHX)VFREyGa zrM1G6J7W$->`R_}y+adNhp^6q+lwwkFM%CR1!1cw)aQ&W`*S$4S5qm*fR`25KYWWp z`RH)yj;i2-+lwLC?{hOl`JC%jHojL8xfee=Ht48UUTi7gK!Ztp1qJqSG8lLJ%dS+? zXGII@F4o?5Z|hqY8!5T&pS#VF+nJ=`qLZ*Pk5~HVG*Pha+MD+sO!SOQQ}QepPmbml zd{Gk%xXHhtwOml%bAkLURJ8ua9%c8vQYm{a!&;*CVD=4;m4-v{?e_JLqnT`j#NKE8 zmYM$dckWe6nrQ{u78x))%a3>j`5cE?V$gjR8lSH7A1Y(Pp6>g3DnUUimYUt@`Kl0P zPvPNG3(n-A{cG1GjyZwCnOnG}raO?yG)lXjjDh&AlU^80bPK5YGLes*%b zvhY?tbzQiFc3B}h)E4BE6sz5T?wv+(Fg+qJ)1dy7`QGr`?VH9O8Q%#8Ck5CxRDg8X zPQ+$}ZAejgU}-@?(cv|J+v_S8qQoLUmB55^Me|j2RB%xShuSL7R&P?ROtxVV!7wZJ zhs)`J30=D|!?ze<2)>mTQ#ZI}S#5#*c&CRIE?=)0?%QUo&rfe>pQna;LCT2OP372fee9((`d zURyqj`<)lEoh<>|KB7IDV|w%4WNHN2EE`XexNUNQy)bdI$CE58w;FvfThC?v{7luq zK)$K#!>Rm<+8JvDO6tu})`?E&O6PXu&)B6#D98f%M-1_Sy5-pZpeX2YqY>2-FqE%2 z?^DeG`=Ce@mTcPYhSEMRr`*@_%L-~4?evslEE*QpdXU~vDQO+#8#m)wbr^EXxgHDO z38+E7(G4lwi?!$veJzVtLB4s~%1;Y6Kdf`UHb?(#G44s3YF`jdj>b~dv54`tF1dY& zeiSu z&~$Lnfy4^*fGKaE+EaqCwm9yst#c<^@#G4}C_Uj$>#{V4;aR*6>lJrMvqy$Ju~`ic zx^)=V>GJ6Q1q}{?^?sp<)X6c z?XUdgO$jsNQ%-OD@kRow{}vQ6eWkN`e_NAGA7SM z^xMFzJYnVw%bt-UE(vy0?~QXTGdt7!_{+Kr3!eUvXse1|-aRYk$#%DsVDsC+amQWy z32|*abK%F^h_fL!+g_&GS=o`f*PkCT5Z3)pG=6$)4qUO}<31O6>mS;3!taQvR|?dx zJbkNa9h8!Gz8u;>ZkOp$)gsdSIg5cuZtQf`BFIwa5&dCu`@zCxZ5jS zIASc!`b=CdFyzYh(}4stcGSXK>1muJ4<>b&!8R~ z%7Rg513?mnm1tzZq69a5j$(Q_E5kf&kBP4d1YdI8582QADFte6DrtHBsK0mAXT*TsCybgK#!*SXbc;)gw6%mfP9W!iS!5mzl-UX?;<(+aFW~g7z<1Q-gsbtZqIfAbBlM&CoI;kmlknbwIYICc^g?FJ`%-Bljz)&V6-i zHm68eASvq+%Ut}@MuuzFn1h_n{#hy^K1=I)6nWarZaPx*L}P^z^FI2G9IxWOf`x17 z?sa(4X+|D0DZ6o6sR#tyU7qHkd2lI09P0G0Gy#=-4W6|HeEsSod&HmpV3t_zZu+II zu)$kv7Z>wpUyHvI`HE*1;BwGXVQw0`Z??2n1tJ~NhUV9txH>T4HD10%oShv&WqhC4apNh;b>C~82A>{jcA??ZnP=nW4=a(GF&wiVyHm5~qJcg7B zddwV~OY8?seh<{@)?YDn0g6EJrpsLQU;#LPc1qnCQl;G2?JrW%oM+z7p<***|OJ-PI{mR4KPNIhss(BWFdI%4I91V>RhMu&u zD*;kKJxA0ow9$FIIjm>&u7|}R8Wq2O|D>~~Mk(`N(2nDn>THuc>*pa_cS-y2-gQ+t z6`53`j2x7X*o!5`ZXK_!er}RG=^_T%;ZC4k_EZAHysn4IU?Drv`&tqwv#zslFWH8Z zR41)JC#a5X);{ohxH)@&37S<{4P@GNK~4d!7c51&yG!~}S63{T(?XX*!%G;9(50-! zKZ@ek9}tl;MAQ$-r9<$0tphZp?6r!xW!blm!~xaLMmgHuySHvMpt6Ty_J3wwK7psl zB><w4m;%P`vq<1PR51(36enKs)1JL zDAV=e*C7{*iFX5Q@+a0l#{}NG7iOa08uJIZWw&_%b_0VBD3%~yoRA^czOvB#6Ka~s z=<8&Ued-h4PRb8+)S70}XSwb4S>CrTqqz?a{=&(2@pm|wrhiqxZ!7xncnL1bPcmd! zxgEojQjO<)*v3{O92cHtvLu$A0P^M@nOpw1EDhF9&f0it2WT&q+JY|T9a{(AzXcu& zOKQ5VWMSiexRB;Ir82;Z|KxbQCF0k?uvO6m;DgA?5AXfiPO}=XND9gEWdr?Eb1ohO znnyqH%2$0UzJUGmAR`AAIj()7_3CG6cJ9Zo8&^LUY9E|)(VY{6`gJzugrfli=a}w^ zzMb3-i^8Eta*1NU_pUwob=N?N@!>=swCl4Bs;lEG^GKD17bxS%azKkoBF4((I7#}? zg51OCIr`9m+>M(?`t+WCeDMe)4(s?%!S3kilko36Zp^PMn}-?S>DBH|X18$duEiJn zNzy~Pgd0yBcYwVmGH7r9$PuJ~-!bW1XpAP6ZkDWCM!LX1JN>U`3w`joC|VfgmZUZM zjBnt<4{Nh=OX}S}jdObW`D)0^piVyYbGC1`O|)xtPV8JvVspWyM}>^? z!<-_2N^kqqd{4eqjZI)o9M3U>55$ep_YP4W#YG&3ZJyYVzmy-{(GLaEN7aWc(hJny z40|HVZyV{&x#Z0y4=ru?jmBC<*IYI4O@W5J)E+K{XRodF`^}cy^}1T1&#gSn?Kt*l z%yDJIWV=U;6(@fuZCsXqOW*aB;?4bd3;vR4_bChGPjsZbX zHJQ|~-$l*k)FLIy607WhNTUSL7^PcKSNL1ui>=k>e6aa~_L6=#IhvWgHPf6=+LsL6 z8k~5?`^gbpH_+D4&nmcWYI*_MCLeZAKYyUWu2D4l@r*Zh{wIKY#SD)1(mh|30(|M) z*6Vz2b)-GKJFI>eBSX?t>1poNM?urU3)_P!xi6V+p_gNTYZ^U{UpMHVJ%VoY=%s2O zoXLo#S(oldbmL7aK}b#2or zzl(+^e&1Y{3zNqRog@dk@Sm1P%|A*{rSTh^^C#_gXa@@`6i>iMh5mlrQumPHg=p{} zy!+_N`xgaEss%jW9YD{qN(>j=4H;r5M_fBM3p5b|d-mxbyTH~qZMA62R2ewz_Z|;* z{_ub$4DGB60C)=;Rh2kSudTMD^JVVrHA$zI1_of5`(7qw^>vGT#Z-V_B(KiB3Ip^o zl);*0gCa-IQjxE8tef^2fBATzG8Sk_VOSgwd<%&dj3I5I+n(c_+C9ny@!7Pr7iB=b zZ!!1OtiPQ?dEd(tO+S&?QQr=Iosj5wP|%rvB2eJ6q*UM)&BvU6A0FqFz>Jo3?-;@j=0?werclEw;2v{9O3G19m1Gd74^<4xzFE@kHTz3Rz4jfD7 zcyop77h=OH$%E#F%c&XG3+P2)py~Xj zWwlXPZ9g*ouY%+|!6W@mcrK-v^!*W1DtWPG)b}Vvb~yu_dk#R=b25~wIncRl|9%pk0Kq+=BkC{tpL)37ytG4N2L} z=aa+lp4Ah?=@dNj$hl$K&6E6ymt!l}%KZj6oX3X8-YqU@a1CFH{cvFnoG|Qae|)9j zvMC{YPIlNsVr7^9X2S8Y2fQ{^CO&WMSoh^Cig!IcTypG|7lCvtN}M?>wYsg_7qRds z9&;85?DY~I$<~Dj)Ad-#up7FjaG>!$3+Y2~qCa4G5IPqfclnW5r0 zrY!o0v1oG2XD{4#S}%&|cjwCG=}m&BU0cwB2vde@HXXa2?kDk-?|6Ro7P)j9nEm2C z=0sL2^Ng%3ZwimY+;y-h7jK>OBMPBkJL;E0sDPjz?zE?(8efZl`^Snq&H;ZZ|LB0i zSjbxB?X2uG!x&MaPmgi!0O#F2(_jSP2WS;_NLCLbYRc;x@0J*+jfOAM0zN<8G7U}mP#ZqsXP z`7^x%xu+#r8RakMKDRWegEAYhhPf7G5GAZZ{e0}R@FZR`c_>jy8Wt^6m$jBZ*Z7Qi zvK7|i@bl2FLxa&bFIsonFfQ)Y415RVc*tC4_(PlY0Okayc6pp!=Wh>)p>+2MyQ^Pe2a9}cjuNA98W>a}j(7|(7) z;d90=7x0GufK-CV5^~1my6Z?7hj+!yG>9O;|LQA!evb3R3BQ=3KhI+GHthjBYpMBM zWa$aghMhG?i?A`c%Xl1L>~Q-FhE)35{=j-4Wb!U&apec(&4NMw)0eyxY2oc833es~ z=^qev$qyM2uzgQHr>w%>_8K!_&j|L%LcPK37wl6X!J(1nny=(nW?FMn>(mGjgv_Bw z<*C=_34nBWu|f59EhzVarSvEVaCn#aR&NAF@^y~)^oz`S=<_U} z11&zVub8Ky9>@QTGK|B(73RrfA3Xg8&JW5&r2+5rcQ-JMVj}mgT&m8;FZR0l8$Da$ zVfHrs4vo9OAYN5JJWKF6R&nu#J`h;vbTV9^$FBe75I@4{ohI6H0fTlFUSbS&&`)6U zAnS78-22#Y)pp}46aO@ks3>Hr{U;tO{U_d>IW)e2y8W(p_;gLJnOnVKV*bKn=>c1+ z2E=j2)4NBQ@cR-Eg)a*S)#wW+>jM(=IrPdHE9xU5ZET>upGmKbOdsKJivERHgdFli zeyAJ1o(FIef5(gB7^_;j6g*!a-0|Dm{e)GSj9M4=$R9_k-YnK{XPpAnnI~NT*95fJ z4}Sd-a_vnp_O0a4t9p ze8>I7a6RJRq8AzJSN#(%eKunwXaO;G%vbVs$QEF!RK}NCs*{_mgMb8G54+!(@F73- zRKm6jJ}uZRZGdm7FU|p99QwM1hbvm=3qOQ8S!B5CTDTA<7Pe7Ijy8j(s<5qs_d{9H z6SbHl4fOpL#<1bk_LamAnnTiAhv0ZaR3uIMq<>ZR=L6OkTlP0~Bw@zN5BIa>9^~4M zaDc@Y@2BCaarp&P>aq`Ub|!r7U%N``_>!(QS4>gAnc%1ny_Hb45~0jk{+$M4x4Odv zw9dG2LZ+;)$jeq3P**SE-t3*)V4kuLjw(L5>{ve7T2d^4mscx?SB!k}fm}A5e|a#$ z@zL)yB_Z*o@|f$F8Hl4JO5~t=d+Xe{O#o&-&{>O2Opg2Eh{QT%V{|~;E#3*tC#c_~ z&k9zS(Fom_3Fc!`-QPQ2WnIb>CEpq=P@z}7C{t$!$PF6z!mpKOp|`{_O25a7R1p{P zEa8XLlW=YGs`X?;bDV+z?g`no7c!7_oH(U3$WZC3SD)!;+de4xb`BJUUU+^6&>LHu zbP2h%jC%cTkfG^U*M)lIetx<9t?9G>G^OsFR5<&cGNq1+%I9D{`V7nxB!e9mJ$^E@ z@DCFdS^|gdH4%p1QBw=?;Uiz={3eIL_^B3C+-Rag-lO5mnh1&6pmnpE8V57+%>;XM zPo&G*-SL6wo$Tc#inAaOXcvFNcN7!_`k`;Tzc{T<3OENd9$$uPs@70GMkAM?6(?X4 zoao;q=j-I>)%}TgIgJjljWvVAr=1B9PyVm6AC47LFhS7~LGEypJTRbDy`DSV{Tit| z-63I%yB4x@p_uuOg1O^(+cyer9aiL1{GZVMpRm7QOaVmd#{ZOoNQs2?|3ujTi-C!7 zL23CNw>^xT+(Cw0kYk$J9}wHjc{x*&IBnL?>0LhBXET6^bbEtZjMT0Q2v;-}*s9|y zyV@1istT4>^vU=xD=<;qw+COaY^uLN8d&JDPT|nS1boKWn&dxP-2g44AfhsfkU@&5 z%pqjpBP!!xuD)^Tgl&dZD<5hKI@r58LCxIb`j8<-|Hl*;;q$8OA*i&fp}IBq*6G&) zPh#a{_k{P|6FPa}zpD|FuQUZ1mJsnp!*%Xh;{m;2{@XKPQ>Y4NNaNWz0%GTMK{avx|6y z+*jS-gwdO*M;S{#2XK1d>|0K+4XK@Q^nuO9==_-ZDP(2z&zZR8EY*%&rWQoH8Ci{U zZq%u111o}ve`yAHg*!DsyBU|3>>L{z(HnX#=k7-uFZ1(Y~=@^ zycNd@`|hu6PXkQZHhG6Ci+w)f({Y*${=GJ=fXvV^pJHyk6(&kQ%Ukh>4U3o=ntH#O z+h~P3qc_NRDRR~CeHD|oBdDb`BR~o}$agJrD;weO4=%GWa?2gfr_t5sn%iwy@XV0O z`@+JByRCXar6tvtg~$xUd9uu$e&WiP%|&(|3$CQ>ML|`lR)q!!viCTqG_M!0ff?j` zF1YO(HP;NL+b_6vi!LZxHf_~KQ(v==ZgUbzxw5}Ky|fK8FAGQA@Dgs98m6ZP0iBL3 zQpc3mnodF-M(qnGS=%J<+K&!Bn_P^XQ3EPl36JqkGQ{aG;Rs0=`;N{037KYL`CIis zWAFc1wnKjsa3Br6Leanh(@O*!R)N9eK6vo^ovCiBqI<0Mt+XaQ7COO*fxe>i}Lhg#?k^8Er`@1aCy4V9z+nE@_Dr~mBomo@*h>yLwm zSs)IHF+F=q!z-N#$E?nJE3SHxW7>{6goUP7S@E_pWBeS$V3<-V_>)z9RZ^%*nJse% zr?=F-@_g6};nsm3tjU;tHs(TkBE$MLbQF`{Q@=Wv%YoXvmKPtCZ8Z60(S zh_dAxP5@!)@hfC9q=Z7d+v& z72Y0nEjf090iF!YpOrqh_o#3Se~?oWLVXIDABp~{`? zKat(EyIef2!hI#GJFk5EJap5USbwIUZPe^;7}AOFmce861r?Q40z&e8RLG_wF^>%N z^Ju{@Je23@WRrXw89FH0ZQy)69%15KUqVxH|Y=8Z;jOIeKE zUeff@kpzP*S7P%k1ndX2;boSaWH!LKWWpJC4JrC-#R#*kPUskR4O_@Gd)|xavu{@K zfP1DLMD)7D>|ZWSjYzdpa{?;q53y zbbJ^Hn8N1hQn1hPs?m?@8Hw~aWvZfmbt!l-GW5WU1yHAyu+E^swf3|U;5gROE)a~? z=VA6SWD8ac+!7RKD3u&))ZDavKx=br@Ro7%Iq%*ax>ixHJ`du^3u+L?1R$IDnzBcZ z+Cx{SYXi=kKZGY$v4aSZ9p?LBk>uZ#`D>~_O=}R+!9x9@9Wn3H5U)TlCu_?OeSl(4 z#2CW7re7~y+E9@|-_!zXTHkWSN9c3_$wFMGv&dFT46wZM2qj4FA3lVJYBarm(E zy^fDj?&PLH9l`ym5b`O!vMNzshxI9uVZ9f3rgrOJkmP40>I?y}!YN=7v-OVc-wn=f zA_)uGUHX9L3&wS;7*klc!aB#Azqd#$W|;iD_d-+uSaejMdj`_r2%s=5JA6zxOCug%AT#8mTNS^R?CfGg zpXf#54@H43qjdwU{}x71ST7AK(7qGj{>kDtW&HvgFHERbXcp3$A=)KM`V6sf6KrE1 zGS1jwWM=$E@A6gXUhsp4gRo(TpVFJ*@l_v776ZHR_XAaMPhyD`6~&G#H`Y3~o7Tky z-oT+D?5L=K1mWd?ii|@-!iOs~prX7_sx{H{<`qB%!xt$-OZ$-Qp`4ex4-5)mPZsz7zFEr{oE*$c<QpaZV0D)IC}Bf8~g=Enn~BTGG2 z>yynDZ5`o-BLu~dF{Kbc^9K=0O>n#q>Y{M zR~2Q~yAi)cL@8-})*{k3$^X2bJej+LFs_@>1r|*h-IW+g> z(4cNf?0TlVk?p`F$rx<=(^?nu>GYM3FzHQaLahHu$goT9+UD1dk|j}k3&*b<|9G@v z4qKznvM)@3vzrk2-VEpj@+-8x1+Lqdp)XsLFy9nyfS0XrI9H$=LRbE2#=dEbOv>Wi zu7iGAo3;NI^qP4W9y~Ct`Nzn(siV1Lt7Ch=0Cxx9OOt+ck6pB7t;F)#BF)nx2aj@v zdgiwKIi!gLB;bn;)rUJ$IgwH3KV-|uBVuTu(4b~mMN5GN{bCw3`^=L z;WgU-hAnU21I-xy#lOau5Tweh4s5xR<1Od8@D1(bAX_~ynB53GpX&7QN79?OT`-z7lCHB?$Od@exCuY^!uul>Wgl>V~ zL3~-yAaNI(XuuO>z$*pet!at`sFwCl;B#<5Ts;H?E>Hg2&MMv=5;-X~39Z%_6h{5< zH09yKEI0Q{AX{nA(OKW&%g-5;=Wu6XogaRbY<{5%XAYj6sxmDkda+!8^Yf;j8()nF zS2cP~nP1x-#@}iFTNR976#Fq*TP52-gl+|sUFxfG0CG_EW)zy_KFz(ZwLFNTx3;k! zx(`$Ifo+JJg+FCtr4F#GvRaVpKJwLI82DLc+_biZ-y}-}VFd|OS&?$Vf14(&q3=+>3aW8^Q4xRDl6J3H5S(mR^;;M0t} z)x_~(ZNzZGQF#=<2yy$ABQc08!LJ`(DVx#* zFLaXh{hsmL(l(_!Bgj7=vXQ?Do!;VU8d*ba+Ri5&H9l_h({I%Wi*Z-RUQJ%pe|7{I z$lPH#uV+~jn4vV{ndH=2^Uw+wiF8)KO z7};+c+!a3??{`{v7??Rwlydx3{-($9S(D$2LLb8ngHm==meEm@iL$`6&^lH~mFLDR zyY>nHGxq&6-E>Zubsg9~Kx%52gksJ6&$oOt`UZ{a^h!-5 ze#JLjjS;UJ`#JT%xCe#wD?Ek;$Ma_!4&>WJ^c zn;`AR*UfILLNlyi0#my>Bvbd7D!}u<2jW(RC=y-DQZIvO0V%aq&}kJa$*@va;N7ox z{e}NAqP#~84|;y$-e{|R{A5pO>eZGSTh@)MUuq769v<9iOwCRC0;1)nj=fxUGYm33 z%58$`np~Jb1WkB9W`&Ua_kU!YM|#B=MbA0hI}Jl`Z=YBP8gCl7X7F-FjyjN0 zZ<*>l_k-_ztgfpol}T+qNK(bEHPv|L>GSnF$3nuR<&4m}OcOSU`IRQBb}wtqOt0k5VwShsvwloE ztsnl?bfi_N{2HOlu=oo!8tuf^LcV;*lMc^n8FtHq60u*t^Sg>q)8aw2_q1?oE9+1@ z-uTaCUzho3gbvmZboNRc`6I26!20U`aWwB2KR*&s+$eF)g*7oC4VXXVOEfeA@iZV% zYim2zl?y%IJ=)}l*?;|7w|0by3z;=)r?*%7q=CAu8 z{~3q=KcbEMw>_>}5On7GZ)+xoVv7$}y_yNY@==YwtM!wK+4@8amI-a1ptAGT)mO+LYt*x;XH zcQSNPNHMr2IaH4yPg5iuxW9E^@)sc~1^*gx1m-FaoMJ_g5n(@ZH3$<%uF2o25nS7T zNk(_#(Hj%$*>hqA+oyiyRVv2=(50#Fyej2*=n|;iZ02aQ5v;%y4IG%v#c1nErf-ra zV!mtO%Y|fG0s)*$IxZ#9G$%d!)>)TXZ-WBW)+i@L>Ez(Yec_k> z<0W#vy-suhT#sD%Kbnwr^#q1A4Fb%E7dR1#f?Q)Y&^`bJ$0CFa+?cGD`4g9qJqoi? zc?_jg4orNMZEl1c`O%#BO^#ztvpJfnG=+&tlyufrmIO^eu(;0+e=O-!sW#qNh&awb z_xzpeHc#a|@_9_3M-NO??r4UGYx^nQ**k919S!E*@M{~fiZC}PArLdsmp$ISMV|{A;4##iSz+*d60hb8tFTH8 zs{h}q0rTgPfd-H16vf`?OAP?PxaAwjN2Wn-W){QH6z+M3l@nfijl#|F_wB6#8B(vXcKf8nv;F!fnq~)1N z#shd5d9$tJ>9H-g(p*p%4d|f|JDX0SgqXPHMqOGf!Dyatac?pfMcPLCNAVP=Y2911 zQmzYA5*+yeXY|!PVKM{<7=|#eutLeZr#ZPL%|`5bzh(qDOZ&U@Nrxabt>5_jB52U< zQM{WVHP^4X>_S8r*@<>W|1AG4HaNz(Ycihm7_#$s?lNsjniLJMJH>n2$C$hqGa=XP zSBsDykwlNQ{EUgkI7nFJjkk1C+9Bd5>@{)`EdwBQAa}1tGW6hv#SdP9elG3C4$xSzrCvQVX=e62I%ellk4byn zz1!g)-CgET&zKA4vlm&{$oQvS4rcS{i-ZAybUZ}+p4R43059yop(1_Mck+a@pmyH- z^JL*C?uYr4m(=%R?ji{*IhSn)xOt&meR%qS2Rh6s>rtg}pc&C$!$6cxII*;pSTLFg zWn{tnXjFepq(qU@T}9%Y+(eae^u<+@f3HO&h)5GwH1No_J-mv88(Er;6FbQ!z%soQ zOLa9x&O5`-A)5=%&^?*yE5OQ5%+(`98rs>+H+3nVGBlQdQSbfHZv-B@Hd`1XFhZTWy+}1hR3V1lyJ)JwPHUDXxu_nN+nBU<6hJn zv@sGHE_?84CuSqtz0pG7eKq(8W@!n=-z`o)Yv^RO`)TdS`{#nLertlNN^ogMIJZbl z3!*VQ@Rc2FCb0h0s$_mpd0_a&05!8+pSJH-M8G8o$-aFde($ZYfESd0|Jk9ou!b|t zXs640dzr$D#`vg1K#-@_yB9$&Z=xKa?*zGWJjsz9!W{nf5mK(PcfelAJ#x&esrHJ` zW(!7A2`}ZmJBM{3bA9bk8DCoiZ>(HzieocFPYyr2G1uL1wr!&E(GAMlBNauA&5KEw zLBttT_K)FU$cSMBDP2GEi*6SoZnJ%ufDR&ny^zh#24$3ZAeIj8qn*P|k|{2*Cf^>iKnB8@v=t7S$G}bb#C0BRm5#4yu%w1; zRV{x8Fa=||H1S8%iTC@Rk8!Op4?G|*?TgzzI{X8cfca&1^7f+us{G?8Y*LK)de@PqKUuxakya)X0YS;@=RM)TR_k3T1mXK12E_h@5+wI~IJ{z}*|2Sn_~k1fdK0+T3^ zP{+SqZ+&x;=!#CYW}jb$nk*#;@UaJL_2PFpSo{9!xg^jJWVHTh~lQB zXSzh|RX#yHh3T3bDPY@$TeG`${l+g1Ow5HNJCN{s#Ue2gYg>Gsw6@zYD%)Dqp(1^n4S>0_K&Eh?+p=$L^X+! zE~;LH-~X?^h{}3_hKO|?Irt2#y&)n=XONrJ7|~PkWqEG3K@%NR^0{RrrY07>K=>cr z2#MPSmR+nyI(g3Ld{k^sV_p4AKNMS`yuqk`3rts z!m#m&kOWws634u{7Cj|8U4)tc2Vn3YVd$9uNAF9v+qib5d$p-~0lec>|F~#^FASoi zFH*g4M*o}N+sqJ6jWHA>mQ2~BM=*{K3N3DC*_1cAUts!Ef&zgUu3NR1U9$Q&cXex=VABCEI&tBx; zpqtrg|7LfvjO<4RUu!c&4Z8WOHtsj0N%aQ{5y{k1MV%ng7dUa8$9toZv&oe64BX)+ zcm6DfaC}f=QplX}MGyT)GvA=}qm%e3cRkj%RGNpm5-JszEif7oB}n*>X(5U1Z$NZ; z6&>9~fRN{qi&)j?#)~SCg)`T?^A-*@3s;}((@FdIK3oVSTpu(o(Y7;Ncg$JTcO5q$bkh z;YKhz`fpG~nodGR$5sdeqD$$d8*THz+-G%t9XFqPrJio_oT_xa<#YDj$6M{)EAOWk z9bfltI^Cu(1so>joEiaL$K_Uyu64*=$8Ck}O(Ur$X{SfN@qmw&%mY(4^ZoS38??Ue z=xxKqA8}RVYy1Xt3~PIr(LNr24Bg4i;ZQYF!1=6wjNzFepv5|5WQ737*qox+1$4$phUP(3n~wxVg6p?pZoO*$T6i zYN5pF>q#t%v!M^%ty=jpg9{-!38JU`Sl!6-gtc^pC5TS$YA^cgo;iB!hYR;y&Az3^ zwU^(fMhVB<_x$p+)TJ}QkI?mnDJ<0d!yQW2PPoDkMl1SQK~i5SweJRjWqD^)*0+;; zs)71xN%Om_bSDL^Fw|n7eN0SgN2T^?v`2IpecdlZ@EkBpx=>%(%*wyN<=)ewV9)|a z6`m%pN1^Q^wx+BUpc10K&RPK)N4W!Dk71fFMHLp<@!iC^tYAxX`g2Nnq+sG#8}`j4 zkk`qC&YJg36dU#@+`!?@;p9dX3xq+e|7l+vCU6N-q!NX`mO0_ajZ>lOvt2LAQ$tlR z_)ma2+M}7tzLe$6i>b~Lb^?n9AlF(d@vGYppet;D!PwWstwkM2kP)8NP$r(b0ei+} zi?EOSXyFEX422AUjuFGRP93dhUTyV7XwVa&D=Xilvm#dmOa(~?L5yRjf}^J65smne zPSP-9BUM4zbTtsCK)N0M^h--1&iphWx%N>^P*+%Clrt$dd=EJmnNWkUn$9yFkL;>N zU^kC=An1?7=?7dx{1EgV;gH-z!{er=5suXe#p$57W25GuU7_I{v}o&<>vZAYzmqp; z-inNT)_iNU0=cn}r3;fl;a^T=5l-DlnnZzHN>;H2&xH93xFXQO!L9n*M!>MvvQ@i2 znRQyf0*;NK>xh42E7sSRu@2~0_?^Pdp4yaj)rO3X_F?nn=W_A-Jy@Z1$nFgIK!5Ah z_JTyYOM;*kDm}kHWzBrbxDA^qKfc`C|8y$3V1;Sleh`|YE&4aMllg#n5c*Qv7Gd_s z<<-a=uegJI!VfUsK5kOo1yrs~pT}N}QsnU{Ut+K__bTRT+ zz-r8aH@FpHjj=`ixvBO`nG4`uOyf_Bcc2e_dFX!bnL(V=>F?2d04D#!Dx4gu6x?FN zYCb%x{h%txmbIl%c}-^&&~E&2Rog{s1W)GX-6aD~Z{(+br!R6-h&lahT4$KDyAXFC z5MAktWdC$ZqrwVz?o9niwcKGinWKUzP`MPZ)Ihq;4OFSr}r#nYYXH@@fDtnY%llU1wHq%Q%5 zjYk=B-MKBAsKy;iBlV-l`l9cw%hIoqTNJ!NWA#H=APG}CA2@|0n5+)DjpMTVHdN@V zAfHOTYcCS8;ZZ`bAhpOWqo>Iiq*u$_usA8gP8Ir^tk26*)pin=8MUmN_NrxI{MW*x zH2xHtD%ehPZ05d$Z-XsgyGs(2^mE_7skGY+Ezin5**1s@5oRBc0O_|@X&+b(B@f*M z%RdE(`X1%#R}80Dw6MbPv9O=HH{fJ?bz_RHfRZVvJV5hkxq%{D3x>w?F=Wt5D=KJ7 zp?AW0U6;Ot43dfa^o835S7kitR&6QChCdVT!a|~ybUo6ed$_MTCTwUex6Y{YBF|x6 z9(sf^6np70DQ4K^73cH3Xu~jp;c3Solr2jqgrsRmiqx-x~RoThl_$& zAF0w07n03?nAxxU&{fF0N3^v^V>-CcFz@Eerj!V~*raN1j?u`Cyld-W(5qzaYJgPB zjc+_%TO-FQZj@lC92w{eC#{G3AkT6d;JXzmi$lHE00KsZdcr< zYqL2Jsia$y&Ku*tjs&Eh57banjViOax$})vI%K_R{0}sI>KWmH3ZCV#X2M{6bxE6) z`74xRMz4q8lX%M;HBE7f-72r8B*Q_lOWgp%NLT1&|3Vhg8U@i4Ro{mgSH;n%RHEioV5)#%p(30+uyKkeK37CioXJXzEWY1SwVM%rL>oB8{Dcfc!L5gRCT!zD7{{Up zp_MIJOx5Le>N}=WnJ(=bPvod;>=j>IjnQRze5B55jyV#U*2lZ{a*l~rVM_pqj zDB&y_+j`dLC1(6Ckz+;qd3j2H1+wp{MtK{y{0(llfh2_h%{&9T& zVy3ulr|Z4yXmG8^*uU5o`>(jCvAMLqMI!p{9jnS0e`PVeVrxT|2Zkqc9es{uIpqu0 z!ZV)U!EeNToInyq3slVp(w4CkNS4A{THx!hfj9qdIU*G;SkI6N(j&C)vBT>Cc6z!W zk<2ys6e_9iUVC&^9>29G(814PwKwktoAXb!dtnlZdF2kCFRkX?KIM-ricKWBJ=tIm zuS;L2vKy&^f3q&^iIa@qgnU8u@tsSQ1zS7j0#+K$Q@)iH?BTT`t$jm~BN`500&=Oc06m=ktYAraqoAkM^%(^M*$YcCjaYJ6Utj>Bpv7+496L zV^#+ncYm0BP8qyvNq&me;r)wOB1ngOv7aKZn#{Il%G?SioxnE%gi}w|#Z+x6RP9*4 zvo)ynC+C|do|3*8{eGtPBvMJ_jYu*W5Xj78wAXXeZeJ6RBQr+%chTB)Q%1kFBX@aE zSUesx>d_YYFEM4N!Eg5eDOlsZr?>t>#_Ctcyry91_*eDkxDD(5$LU6>Namf{7=p^% zy`M;HNTHIWpCaHf_^Wdbvpa-*GFZS>HmMCR$M@(V$v0Xk}dpzr6~&!3#I zoA`ZPI26}gpF4u4QR;K+oMH8Pn|a?1#!?;pk;4!1^|t{=tu41KGp8WTc_%oGH)zlY zQ4l_^XedD8adGlFRU%&c+Lx%rJV;6YX46+Na)u1~JY9(tnFlCwK69L^>;nVIl+c-7 z6+r>|;H-VM2Et)~BxrEmxs1cH=@s=*6o;9s6@JI`!K{6-y4FAf&+L#HJ{46^5|>+- z2N?Q-qSYu5T@vlSyn;*7uUkw(%shhAHq82lI*$vZm}Z&;C89b9L?tsT#zf0C3S=iT z@Rl1zh94`sp&y~d^~7<-!<6xj{ISmPA2CTq1?%%{vQtx34DLDk~mSaCUl! zBAv(DVPzhWjqHMlBz%!ZW69?|?(?}f5xj{Ur5YaSk2}_K*-As$`r)TL@L_Ys^Cj`( zS5a_<-}38&Q?X-rX9p11@T^ycaS?Geq2jO5#084vJl*3x}N`s-MIh$FdX#upC z{vfORIfW3UO2&`1vqQG`T3F)G=p)wk)*p!ynIvt~&-^P<(qG|J)p`%p9PZpwirrYj z$6o&0Q+`J0vp>->RdG8%1Dq{))5G`4%P7A1%AHrJDnF+FSlBM1S-$tza%)_O}xbT=meao!vSWFm}*8 z+JkPOiH?9mBLz*xDvu4vm#Iy~9Qdy=CMn{W`u~yjo?%Tq-}~^#1}I1sks1XN0i}o_ z2qX$p6r~6VNQr=m0t!fPS*3SGno5aClOhoT=|pM-q&KONP(lwO2??qHe19*VH_w$T zXXn0Wc6R4%Hk)g5<~}dOZN#Tf(Bwkmf#rgq@BN8s!079ET^9&wiDIp2@bjg>a2Gxm ztzOCs`kmBvVV4u7f4aG_onqMpWtE?n>m{?mQ(uHrhhbH1Mpqc)DI35G`R?ge96`I_ z`Bp*+h-FAcKTa5uB{G}K9{UGLunyW*L-syu*kfb18yA^sgENw3?mR>?Fb7By7VdQq z`&<31mio=f@z*x7NDv{Gyqa^&)leyA|#4HYM@8C?O>qg z&qYc>q)zHSPA%}h&ol3poSqPpkJVC`YY&466##o=JQSl`ZF`08KRZz zYXkHRGm6*f#=r#J%C)K#sMSI~n6Kk?eUN`ulgFHfe$UBgP80tvWbWSKq%k!%lWqy# zh>*R_u^g@@ip}lQMDrYU;#EblCUQ|VjA}N$@k(VVN9t_qum+p_-k}K%6-y?Rhzwg) zLw?QVq9s1BDJM^heoZyfG&^NYAfJUwB`#a~m8N{V3nbzAfFAsUq^m1VQ-3wf-=rv^^AI)*TvUYq{X`_i?a zgCBok4O}9u#s1p1`(1*X&}|~b{j}Wi+s0}T4UHsFyww)GM>pMrQA@dTkAC9|onc(x zHnX~h3*&GNiE2|}vLzogXPuv|(++n(9&Mwkg&jonv3=gfM;@R`b zIRHWp%qs97T5Y(3CmhO{(8Ha4k6$YQumrK2%B6(9@WnUhhGhsL;{wkZ*nC3Bxoaj< z5O3%&nHq2)@r-Lw{@rkG-!~tW&GM2CT`|^}kS{Kyf>N4-1a|DcvK)aaQv=BtpRxV+ z4bs$)JnVw&+a+e;mx(ZBMZI60qlj`3A}-aGR#AjT(A zG6nB#NqM+swybYdPC_i#WK*Z{AG4|BK*;-&cAkR!;WCjmn zLDrca&ezwlWJwp@E02d4id3c0K>b^gqP`Mbg`l77$R#5Xqf0FL9GumxqC)>FuSr-4{qxvj;TIj4!wa+h7yrZU zV@~BGTSk@BwUf3`_EH{EMg{9!GHf!3qX=3*_=H&bQ=E->qec<4FI1@3P|;-Ogi_Qf zoI3l2SQaSGMpA6l58OD%C~xB^f>=LMp<2>-3;_>h$GRC~n%#=`Tr$(Dkd078>vwPEL_ZIN?2{A17!{O-R*N$~^ zxT^|P7sX?U#M(!V;;)CYed5Q{y;Gf~)NSSI_T7AdeVv6Vs8Xj;Wn6{>}kN>sHOtew#K^;)Z0 zYs)Pd*h2KIpv_!d-j{7CTl$Yc9YI#GePHvcV;$-nHHtjSepfs@fMPc}ihx!2Rj~oo zc??+iuwtlhsTo_E)YFBK(Y{c}L;MT>WeK>ti-T=u5hm zFObMeElrm{_>k*W!V<}STM#2#P+r=Go!#9LSx|L+t{?wKmfyeqql5NMi_^=nU_xaVkxIfS0NgcbJ94)AF?A)%; zFF~{0O^g%JzCrebnSY_-pChD{SsSi+)4h*P2G+hqQ8i% zoI~5c65D!)(@1lkl&vZ5ktxp66ld1#m+)8m|x%M<$%|45qkZD9V#sc0pXOh3NywN8`7umZ|&d4g8RcO_K~7svSpQtrFP z*!xAgS(Rdmi{t+*>OLf=9K@A(iSfrU1VWBt3B;|QN1J0Rt#&v8R5`ipzpwmh4!}kP zgYns1#;Fa$aceoao^@;~E4ZG1Yp)>_#IIwAJHaX z<+dCi1z@dT}FyUxxAKr~4=dH+GjfV8X=a9SFf(j>aQcw3W--$JB`x-BF|u^4sIb-mbgb>J^4C7wsxY1_ zAFEQK*Q;u}jk-b;gC4nf{m>TsX@_xr0+$7IBwl8^UxFwny_I3B*Id&W*F9S;#D`D} zkumoenFi)L?5-a9PWP1q|O8fFakefLUihCPVAjtPmJZj{qMi??7z zNLfDN#v63l?aF_5#A2DNR>8@n3_wfx=KZW>rdvUn7*V>Q#P28%P>{Gfip)FtqI(@W z6fN;|0ZH%IR}ua!(wuvs=Jj8*j$>d!O(`$`_ThN>g29 zf3GBRTmykRZ@K_zn-!e1(wqC3nt*QRnrWm2M$!ew*l;>-pD@08*NLa)3WLRUkkQ_2 z1A{EdXnKt1{JJ|9mq;t|MaufjeF1oo8SQrSh(82X%6%JBi8*j{Q`hreg#2+k;#00m zjMkCL;P)45@(S)y&3z#@BGiTBl}w|fo2p+JBGFD^9KdUJ=*nl&&Cnbk?;-Q)mNW4m z3af+U-~Ie=8c{Cua@)Y{l$Y)2YH#`PFWxq{m;4GGYk5>#W1}^RTd-d@@td|R`=Ke=vgYgf=EGj;9Z0&r1}-~bkP z?pC1hQdyFS^i<{SGnKlF8M%PwKD_X zH?trQ9Hl52EGTpTiyxvy)Lk0}KX3gr&*vR_pr7NmNfGYc8koQXMgkXw%y`}%`gM3<;;dy`F0jQT zK8M2#I0FS~{+T3UeXy_IyDG%-1GZejCCYh;^HSvZEBgP=XG4T6Ybh!c7oDI+`vRJ# z;ggrh6j$#V<_(|xU?5Drx4`QrM@{+fH0V2q7OzQs< z1Lx=|`JPRAB5B9E`&*h>{JxcG`8}o)rrU?^GR5Td9PagCK%d_Pe*(9cb(lI>Cfg)o z)Xeo9q^ThD@Uzt=6^A;ULB^2JX;>{v90hT{56fO5tj;_-;h5SCgbl^;Zup%~WrU3Lm z>(ooH@=)@$9}=e7R^@poMBIEtwRaIg-2+UvJ!@9HGn+wvukU$na4WziGpiy9Tb_tu%XGJ=>QIwIq?;wWhaIV%tDFSGpF{e!@v+ z<@C_&SR-xp2=bMP7+8op55=ce^)?`9V-V=WT#=;{mj-EcsYuDR($;vl0uH;|`Qd(Efm=$g^ z{I8-?B3G|1&R=#=S{_Uh`h%TIBu9TSXiaWVxzjsv7_;;?SPQA*pC-q$v}V@oItORs zRY>jSTji19SePaim4ltT1d4V2&|%Y~7zr1563!4sFPblV*ggl==WIK|n-dWt+H;NO zZ&?M0nmzh>K7`6)fnq$Qn9`95{jN7;GlTdH|4kjYVvKjYx<+*zv;PQpaKxJY=1PS2H)_+Qh>e03M;1hGU`>Zp=uwA@kWlfZuXozJ0>Iv|0@n8Wr-$0@~v zITfwj1!;yK($6!zqqR=1u#7w+7KzvO^dgB!)xb-}tlVE2?5arQ#W6~-=|WJ!rE~Dh z49~;{!4lwsYRVx{Npoo~6Qw7NA?MQJmr=-LB7&=wL0{TqEtp@Po#He?OYi*(V^SjU zJ+TZpv3c<>@c7@<#Sma2Vf5}8Jo{YkMaGMm8Fq2%!~cpY)qPKq#%*!fkjF(fKO~T+ zsh0-ubN@uwJlEl7p|jE#>{8LZAkICaLg8CD&d`N>IkKz5X-h2ON^jF!009<+^%7ZO z2GWqGd6sp7ad^g+VehcaQ;Tl(Mk6kpA+g-Rlhl>SjlFO_n zu?^anzU6F<9#i|svY6x((b3(@?|?*tK6;n!>(^if{7oMm^I|H2cVyC)T!drzbeo>Lm>J2lQVaf~lBv0@lJ0$M&2b%J? ziv5qByI02+35_91bz~heZ+RSiE#k;aJM_0*6i-acIR^BXrTq#W`s?%6>#TUO=62W- zPadX0u?pPMWI9e+di-Bp=RmlSHPo&pR{D8mGBU>p*m@)ibd3bFfpeowK4xoHEi@vo z@MSX_ufJ1T_C6P?0=MsRJ8bPzm2n*MZVZ*ReWa3xmjBZMw!!N-vXZZKp)cp*B&}o3 zE{Av1a!xUzs#La^r7ID#8_}l6x}iXXKOv?aw7wuJ&T-2cKs+# z7gWo`IAQy%Rr$LV_q%6%-05~l!t9VQUVcOJ_lRC&o?UX+2Lw8Q`hlxU0km3@&s<=i zvZ3D^$eK1j(r`}l98k74J<)J{frnAT{zx(Dn3zx#ftP!#!F~T+RYw20s>U2XtZxsZ zy3|DD`#3@)vYn#}L2=*aRvG+p$Jn>zfJL3-T4k`qyb{4$$7!gT{d>#Z@lmm|)bcgA z_Cyr=|LpZO$U|}$018+9H=KFsA-k`(8j85%TuKa*O?7{d)b1h#;Tn}}XXZDS~qK|YE0nD1$P7LhXjL}yv$a850?z$n?NQ6=lBNy zBOKI!7|?|Ll5;+}9P<_qk#!YX&KSIoqo%}wKl9 zQi6y7-B>!d=IY@A+*pEgz+?S8lxMSI0de{>i6Nyl+?NNr_`jy2Y4)oAWyvW2D|7P8 zs*--XV%h-7(f5lBL6kd|A29~!(OE9Sr}8|Uj8s0RAI`=+^!&L=oo*z^LGX2QvTHMqh0O+uI(U7|a-?HY{N#i1Y> z9u*8p!z^SXeBF#yl&%_35F9{Diu32 zEWZh0_?d*^v0n908+5vs^g$mJ`nhD3#XUbr6_1(>3s?~WC{cybcq1N$9?_YBux_2# z{=&~V&5#LR9DzipR{<@}tXe~f4o?o2?4nD%=SxNeQhAgt^a5wXL+zdbQBQ8b%RTHI zcUgkoDpEm7OvW7})dXUt*U4~T>0GHAI4p9HmR#o0P}RafeZTV;SGp(fN=NMFt1@ja zui_2M0X!!asb>yef_cz8mKSr%A}zS|0{XpKvU5Y=U$DK@!|z zneyS?;U52J-evFDz6uaC+II^t=(x(t#)oi-fV0@v`oNO@Ej7?CgYItbhfE$;YYh3H zeg21TN`mFDL6U690~DROle7{D7Etj<60tgGw{w_zD9018>4bHw^C(D~(*G6h&ZCfT z`q)M3KbPOptfLQ4yk;cw+uz!17@R^w74=RnFOk%l9J!*yt@_K}zHjgaQ)19Nh0Zv^ zR5jr7>h!EKw9_Dp#Vh+K?gRxlvi_NfIQNb39>b*$@*7{&Edi(k>?dgHW}7e*HyVZC z+SDnd0l&`m7FjX1{~?oaoDQ?u(;zg%w3d*OCysz$n5VjmU`lDV)Af6PhLl(nM z(2U{a%HvR#QZy$ta-4G&mi5ow8Tl7_l=iL;5N?ose}MQhe&Gf3Oq#^|0~0(-e+(vX zD5=l@XHPZ>@c^`v56}K8_q^_6s$Ud8KsZ-Av&8&8{l7DRzI>;ye%|pB_PPn(01NK*;*dyafQV43ty$TpX^R^aMEJANdADXj`ts4LOf)F(H;_Bry(V7@mYDcP3oh0(cq`skBUqm zbJ%+ye;OYUJcV1vhW=)yT2!Ma5Ox_vb=*2UQKt3gRK*#9C1Ud*^wXV#$7e0Wu4V&k zlyhOx2W6k&vqoWmLIeY!z9U(>caBQQ=WB95Yq>C`FIVqxzwv6v`!a&%J#!Ts*S0IT zPu^Fm1P=E1NfdRh^9jYfWz*$V4FA>Fn?Et1;E)0Lr`V#=>U%XsWjmW8pdAxUFYw0b%@g*3mMZF4Q@BBV9{om( z`i5M@3u}dzZ!+41=~3p(d!-CNNl7*hO-N>PThFv%k z(KoJZ{R*`WxXyTTZKT{ZAuax(Il4V;Kx{sMJ-cI_n%}t77qVAlx02?Vv!>pvv@yz9 zn_zS}uwpVNfl3bsxD5ypN(dt62SxiysZU`o&>5kUb?r`O*m>e`X*e8sM;waz7-)=k zYg-te_udjrp$&;&M=(yVh#W4hMewdh@YWtMi{020icZbC^RpulmMf;ZrLR`nEfaB4zI=WDpiVS zT!xlZf8)^x93Jg8^)JU`EZfqQavD5=#L#p=@s$SlF1e&1rTZrwJ3$K3e~~W_)~6H% z5Sn8jk0)Ib09Kg`>kI$>_yvh4qTzGzBFHYYsIi#tf#zES)p2)Wq>oxdqq|St`LUdm zM$NpTbytBwEH!Z8ov8y9nM;uXIVZyZ{Wx$Kf~TUXi(^>)rY%ND>IpITcmbdx=`VxpZ(@X*TMpZ(Kp1y}Y0+!j5DwBz=lhiFF>SftX7KHwi)Y?A#y zJ3)=N%t(*p)wO+6=O0yijnTZ(mZ|=meC`q+%4p@Xg$~n#;?|8HpB%BIJY&ZCd~D_n zf)di@9bvlkTUP675X0pMZNkfg^@-pqkFB3^fXwgnE>Q3gaET8r zpf{foBxX|}5|Q>CLe$-y&lu7%1|ac-4+G80ar**te#hw(Q2I2uw{Q7^YQRQ=2#aQfjwmu_9O`g=5a zNZWR|Xb9weWi=o%=i1k8T}+)ecGnR5H{IX+cvc%7FAiCVm*3e7Po~vcwt+HzWp=22!wBaWiuzjC;LNDmk7^JB)8X83x5v@OV|I4*`Mv${{)0LM>K{veO++jOL91AudT>y zLNiJf31MkR&K4d9V??wq+%{awrgz+&f-l3z(_wX*UR^Keaqzw1LCZph3+Kk@3f!x; zN)4TR-+2~zOploHalLzaq3c<5LTk0~d^+~qE0FaS^4pw*c7N?rxFAgvfg1L{OH^tF zCEkJd0$6D)Xf92ZJnFzJI(-S+dnbQb2d8=%v21PIR5l&*jvj)42-C`$Uod8rhR2=d zhyOhS|0FUy1f%#qcur&Ib$+HjB0P_*WA07KTvS$S9L^^7n&m0M$2+t$LEnPt-@W-s zWia0Ld_RlU9;~3ooL%_dCht9E8qYo4%&{IoNp0OBQ3Qxg+KSn{V8*)dS%ho3AC|tS zyhISLLA{e4M+M#ow6xdmEutIx%82Y-K?5Z?qmD{7`Gx6#yG*`prL;}wF5UXCjE2+G z%e83_VJR&ZI{3qn%Dm05VVJV>hY1cpY~`07JSw9e1z+*7R{+hs|Pqy}L*_ z%T`ypz@fV!@nS*%NPo4m_du{PY2g;%oP!yN_~OtU}5w7~g*WU7gXFe=YCqM1xNwBe7N*InHj`Mwvjb?XJWoDdL-LUavWfGF_P!q3iRMYN{v zuaFflwRb5d;0|0c;>h=#O%uAD@lm6%G^N;LZso`S&VHJ0A}Xx@Bn+ia49PfXhg|y; zI81wZesU10fCV^ORjmLClx1u^^GPRM!6=u~~0_9HilOG5>6~beTcqiS>D=xqJ?Y=N@ zMxkNE+NYHZfYpkZ*moY(w|Na0G3%UPC@Qdqzp9vh0A_6Z3=*O!842={_@ zn?tllZKMi)2>zYoe|IN*gzL)?!hO0{DYM_+Y*`Kfe?>lOHd#N1*s4^;uT10@bUqY4*& zHMs2Upj3}NV+z#zI?17Hs-WR?-ARSXIfLHH36p(s&lO0Om3JI2q&*3=lLE-)^$?y) zBY^Qcpr>AC2j$>*Q)Q)#*)Z|LOL%~((ARV!u6Jw2;W4UhCac#ojYkZ@=_k>2(#Ia0 zGEM7^%~h5jmU)l6J*CWf*fO{O)d^e<9oxES2KRQ!M_8G|?=LZfh_07)t@yO?1Ud7T z0AxKTB5nhBkzqpZc*gjr*6Ugv41AXWMk)Jg-Mw-QNpYxy3aczO2FrRkET@o4Hp;TJ zXjL^z^JJ-)vfp0CBO`VGf|CT47`0aE1t4y<{vvwDe?k9msBf4l= z@)zp${F9Hh*yN{UKyD=UTfS*3Uhh@o$`j+TIRLVbS^1vJM9skDbseWPg2lqtJEn! zD?7CpaoYXqCJ}63coYnpSS2Xgq28mvpGGg}5%iyl^dq1m)ZNFxt>vAAj(!HLG}UUC ztk&Oi_em4lQuz1WJz7@XQXN!O^;Q!tORu4A_|1Y+HHTRvm)O-SmLbW2&rq7ZeHp!AEar=YjkI}hXPIy#0Uc2bXXxM(l+nm?(@Q}f*N7Z)j8_om=k6(hg z7XL9bYV53RfE!b{Rg^w9eV}+%wCWTk)cy-J z5FV~e;H{V@;p@O#khpdNFZ>}Osd;Z>B}`e|Fx&_$US|tUs>3 zIy`UgR2>HHpnXYWJ=l5e$XPL6@U{*n_OWnF#IH?{3Uo)>Q0AY`zS-Y8qYPD^uemU( zKcy~>axl9~*9}^ysra!bb#$-mPHml?nwv+Pq>crt6gvkq6$ACOVAHVH3~CO2Qpllc zw{_lpI^##`*$Abr;993=wqwH~xocVT78B?nP;>`bZ_}$}KW#ar8&dR|9*J#zaF~$a zC66Egj`x~+QZI+P4NYD*eGVoz5ej8kKB9ffc4nbUBUwa=jq*EWhrv-ran1~<7ek@1 z_MeRTU58r5s7_aW*w5AeKvd{U!xB%bmIUpjY+dl8;<@{C$WQzIzU(W^6=XuMok2{a zMgcr7N!mc4P3{C6Y)&2W0e>hLXX0P4ydlOWa7Afp-L&r7>lQUU}dtoW@t!rwk zkgd5hNz_gGaBE|gmT`#jJIDZy+wtWxKGQ}s8@9O6DqXLx{jufz$kZ^{hCco;RA&^} zIq$fFY!t1dcjJ2O(zJIJu}w>zyxD{YpUPTc>&OJk2JFXa_q5M}ty^DFtAF@j10OLj zQ^`XgkLSYvdzh*lc6X>zws19pF)#BQdgfDFoZOm4YyD-1b7WLfd0RuHGla*%L9|`- z_ey~IDrLD)3g>4=4A+XnJp0=53^C?7i@= z--NN2BJ|!hR`?=8(+ltORVQtDTdq&p&x7(kM2X5ln~|VKb}sk(!_>U`Ti)-8ceJXEhO0k7sYdO~P#~#u9PS1= zE(c&~i+>I>jh92M9EG!?n?jWm_%s1lbldi@_{PHVr6Ssu#$gv=S}07eBSWMimC|SS zn5n>m9X&i@kSc;aRmeJbAf-LT>4o}2J9Rc^d@bztqOQ(wRSY zv=*#Y!go~9-EFediM3{YUpV6YiC)Pvx{@>Sq)%BrZoh~oH@4`6d~~3DGM)C{9LXg@ zS#PY5@jG@K>eEa;_P(u`oA$R|G1PD|H$5}~P4ycm!O{+fqA7slM;H+xw%_*Qb28gT zm@Pk_*}0y&Ryx+$);%et`Dy{DBUSA~#-98>KoU283TeH#j{eYlbz$82Sp@uO$!^4I z#a^N|1irKw)hYEh&LIp4Sf__S4{2rcM_gjQtekqNwXs+*NS+CI;DtDRG+NCJ3vUL# zM9$AdllK`Z4}fhr6Zq5Ux9<5SGaH=F=JaARioke-{N65yyb5Zy ziJHYTt;Vp|_!1%Kdgdf>+`Tz_G>)F_AfKW0n7Khx2JuXGSS+}4SKTA+;6)wlZ=)Sn z4$`tmFWgZ^GnVNK5Nb8})p2AC+^3GVjtN?uU#U4! zaH}mqw1z!Q!Z~tjY&_GPCEp?(AG#s1CKO_%*O^8LlMp{#d~E~v_L`4cf7xsq<_)>G z!}xc{1E(C~m_Pbvwp?l8YQ)>ItRM8itCyYj!`_huN<^BRLRP~1o-*Xfu|3L}Ya$3Z z>iHI6j*v_x&`uy&6@Z;Hp`KZ5it%Z^`z!+c>w`?|C@SzGh20x+n`JAE&lhoc|IGl>q~}hv9$Z zR>}PqzsMxoo)*F7;0AD6@h7Q2p$aLn{nzp85E?^gn^S%0D#%V{F|#1TaP#(RLlYRh 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 z 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

@ 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

}9Lw6ad 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ⅇf3hjJISk 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 Nq3ybgpo}2U{{at?AIJaz From efb9926dec93a8086e7cab3ee4e902bedcdb6cf5 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 11:25:07 +1000 Subject: [PATCH 49/62] [v240402] - Launch Arguments Fix There was a possibility of an incomplete launch argument not triggering any start event, resulting in a infinite splash screen that also wouldn't clear existing launch arguments. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Startup/Splash.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Startup/Splash.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Startup/Splash.cs index 86205340..aabdbfec 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Startup/Splash.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Startup/Splash.cs @@ -59,19 +59,19 @@ public Splash() if (Properties.Settings.Default.LaunchArguments.EndsWith(".sdvmp")) { //Launch Modpack Installer + //MessageBox.Show(Properties.Settings.Default.LaunchArguments); Status.Text = "Doing Fun Things..."; ModpackStarter.Start(); } - //File is an error log - else if (Properties.Settings.Default.LaunchArguments.EndsWith(".sdvmmerrorlog")) + else + if (Properties.Settings.Default.LaunchArguments.EndsWith(".sdvmmerrorlog")) { //Launch error log viewer Status.Text = "Decompiling logs..."; LogTimer.Start(); } - - //File is a modpack + else //Arguments are for repair if (Properties.Settings.Default.LaunchArguments.EndsWith("repair")) { //Launch Modpack Installer @@ -80,7 +80,13 @@ public Splash() Properties.Settings.Default.RepairActive = "Yes"; Properties.Settings.Default.Save(); } - + else //Argument is invalid + { + //No Startup Arguments + Properties.Settings.Default.RepairActive = "No"; + Properties.Settings.Default.Save(); + StartupTimer.Start(); + } } } From 73bfc42aaf338e6942fc2daed857dab47423c093 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 11:26:32 +1000 Subject: [PATCH 50/62] [v240402] - Launch Arguments Fix (Program.cs) Fixed the program.cs so that the application doesn't overwrite the launch arguments with incomplete arguments when the application self-reboots in administrator mode. If there are already launch arguments present, the application will now assume that they are from pre-admin mode. If they are invalid/incorrect, the splash.cs now handles that event. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Program.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs index eb17a7b3..953a111d 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs @@ -37,13 +37,24 @@ static void Main(string[] args) if (args.Length > 0) { - //There are launch arguments, save them to settings. - Properties.Settings.Default.LaunchArguments = args[i]; + //If the launch arguments are already defined (from before the admin check was completed) + if(string.IsNullOrEmpty(Properties.Settings.Default.LaunchArguments)) + { + //There are launch arguments, save them to settings. + Properties.Settings.Default.LaunchArguments = args[i]; + Properties.Settings.Default.Save(); + } + else + { + //We can assume that the application already has launch arguments from being switched to admin mode + //Because the default state is for the string to be empty. + } } else { //There are no launch arguments, save them absolutely nowhere. Properties.Settings.Default.LaunchArguments = null; + Properties.Settings.Default.Save(); } } @@ -86,8 +97,6 @@ static void Main(string[] args) //Set "LaunchAsAdmin" to TRUE Properties.Settings.Default.LaunchAsAdmin = "TRUE"; } - - } } From dcac5fd1f3bb2968a38d411dfb91b0b7bf58a571 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 11:26:58 +1000 Subject: [PATCH 51/62] [v240402] - Clear Launch Arguments on Quit Implement code to clear launch arguments when the application is quit, just to be on the safe side. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index 8491402b..16d4a81a 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -1940,6 +1940,7 @@ private void MainPage_FormClosed(object sender, FormClosedEventArgs e) //Reset the IsUpdateModInactive setting Properties.Settings.Default.IsUpdateModInactive = false; + Properties.Settings.Default.LaunchArguments = null; //Hide the window if the "repairactive" setting is set to yes if (Properties.Settings.Default.RepairActive == "Yes") @@ -1959,6 +1960,9 @@ private void DoApplicationSettingSave() { this.Hide(); + Properties.Settings.Default.LaunchArguments = null; + Properties.Settings.Default.Save(); + int disabledmodsnumber = AvailableModsList.Items.Count; int enabledmodsnumber = InstalledModsList.Items.Count; Properties.Telemetry.Default.ModsEnabled = enabledmodsnumber; From 1d77233bbf5e7d08ae006ef537e37e87dd756525 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 11:27:34 +1000 Subject: [PATCH 52/62] [v240402] - Clear Launch Args on Modpack Cancel If the user cancels installing the modpack on step one, the application will now clear launch arguments to ensure that the application isn't left in a boot loop. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MPOpen.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPOpen.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPOpen.cs index 8d612b53..d4025bdb 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPOpen.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPOpen.cs @@ -115,6 +115,8 @@ private void ShowWarning(string WarningMessage) private void MPOpen_FormClosed(object sender, FormClosedEventArgs e) { + Properties.Settings.Default.LaunchArguments = null; + Properties.Settings.Default.Save(); Application.Exit(); } From 1386f367f6a08972cc77f8d43f3d814ae174dd2f Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 11:28:10 +1000 Subject: [PATCH 53/62] [v240402] - Migrate Versions Update the "latest" build and migrate the current stable build to a named build. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- version/Latest/StardewModManagerSetup.exe | 4 ++-- version/SDVMM_v240401.exe | 3 +++ version/StardewModManagerSetup.exe | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 version/SDVMM_v240401.exe diff --git a/version/Latest/StardewModManagerSetup.exe b/version/Latest/StardewModManagerSetup.exe index 563ab1f6..8c5356b5 100644 --- a/version/Latest/StardewModManagerSetup.exe +++ b/version/Latest/StardewModManagerSetup.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:32038571bccefffd776ebcd58c74c861b401094cca31ca64eee7f73732a95f10 -size 27242608 +oid sha256:c90bc4f2517cce2e4cf2ae14eb5abcebbab5707cd735a41007e78b8ab3ad7c76 +size 27703612 diff --git a/version/SDVMM_v240401.exe b/version/SDVMM_v240401.exe new file mode 100644 index 00000000..563ab1f6 --- /dev/null +++ b/version/SDVMM_v240401.exe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32038571bccefffd776ebcd58c74c861b401094cca31ca64eee7f73732a95f10 +size 27242608 diff --git a/version/StardewModManagerSetup.exe b/version/StardewModManagerSetup.exe index 563ab1f6..8c5356b5 100644 --- a/version/StardewModManagerSetup.exe +++ b/version/StardewModManagerSetup.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:32038571bccefffd776ebcd58c74c861b401094cca31ca64eee7f73732a95f10 -size 27242608 +oid sha256:c90bc4f2517cce2e4cf2ae14eb5abcebbab5707cd735a41007e78b8ab3ad7c76 +size 27703612 From 32ea97304e0c4e07208a6161ab2ce0d9dcd91e8f Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 11:28:59 +1000 Subject: [PATCH 54/62] [v240402] - Build v240402_19041128A This build has launch argument fixes and splash screen tweaks. Build number v240402_19041128A for version 240402. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 231424 -> 244736 bytes .../bin/Release/Stardew Mod Manager.exe | 4 ++-- .../Release/Stardew Mod Manager.exe.config | 3 +++ .../bin/Release/Stardew Mod Manager.pdb | Bin 339456 -> 341504 bytes ... Mod Manager.csproj.GenerateResource.cache | Bin 3661 -> 3661 bytes .../obj/Release/Stardew Mod Manager.exe | 4 ++-- .../obj/Release/Stardew Mod Manager.pdb | Bin 339456 -> 341504 bytes .../Properties.Resources.Designer.cs.dll | Bin 17920 -> 17920 bytes 8 files changed, 7 insertions(+), 4 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index e2276c169324b68a5306c2a5ca2ddefc6ea68da7..790b21d97105912e031a2302c71096fb5bb8f97b 100644 GIT binary patch delta 6219 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 KDtEtE*Z%_+@k?C* delta 5538 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 FALSE + + + \ No newline at end of file diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index 0f0eb8beed2e4089c8eac0eb315286f2c07e9fa8..f0bad8e6e550fdc1a907fa15fc7bf78e1b323c43 100644 GIT binary patch delta 33873 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 S(RumdHGRMNKIGqkR{sMAFW3(N delta 33133 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 S(RumdHGRMNKIGqkR{sMAFW3(N delta 33133 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 XPSgyTt3lsXAg6pdrS7cOS04E{8=sSF From fd27d7eadd8b9471e88e15d31a54f0a9752490dc Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 19 Apr 2024 15:05:32 +1000 Subject: [PATCH 55/62] [v240402] - Move Build to Testing Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 244736 -> 242688 bytes .../SDV_InstallerScript_295CWR.iss | 2 +- version/Latest/StardewModManagerSetup.exe | 4 ++-- version/StardewModManagerSetup.exe | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 790b21d97105912e031a2302c71096fb5bb8f97b..10b60df5a6cb8159306c5eadd25005061d6842e2 100644 GIT binary patch delta 2571 zcmb`IdrVYE6o>E3-GyBcMBeg{MO3JwEC^UCAo9{yM8Ikhi!MGVq`0 zLl|v*Y*ve;F%1mGRO1@Hr|!pNy$b-+Sk36KsX1LJ{pKpgNl#PJ9FBaFwG!Qf8@;(;{a z0+0>N2ax1&npNtyqBdgZ>&BzcdR~mC$0KmdnVLT9~_7Jpv}Q#qCi+d zfzVn7LLUX%0OXDKVH=i>P)DIrur1(Y0K8q8S}gynXEQnz)w8L9%5p&(R8xh~IYCWu zD6C+8H?CaQL={1A(;d`up*$5$4y zPH!zM?yCMjLflblARgWbeA`l=qlQ=}br9C!9V!h>97oNa)Z&v!RP$j3enm#U0RASU zHc>^PUiPF-bd`#un}{@Ja<7BAk@9mp#4IT*te(IU=13dknGPih#L>4B-I<@WJ2#z# zTs%5+QBCj#gpXN>4g8^%ro{G+hjlF7xEnFlel`riTL^_um@9rFRb`YaEvs}?(q)-M zV_T;x0J{8v;XU@X)w1Hd)y6EHq|=#{JR_g_$UgaW9dURFHvsRaTCfvZSz1$(`8+jm zR#@%_5faGW=wC#`1Xj|&&#YIxXjw~1or2v;@?uTlX}n2K=kjBj#Ga)@gxls7tuIT? zX<+R^2IIg&1%A(lQ>z;=5o6})rNG0Cq!QCshH0zlRr2_GVjVX*h_0F=+5Pr@iCfG` zN4q|cY_Q#XLzTK}X<%_;=Dku4-CzBUbfGko@C<_p$J=94GCwJm?UKuRpPp*CMo;^U zt>G>Cw1PN1e&)1BYCb@DXgl#@P9J>AyS+s(-nLEjly25dBgz~&z_*ZR(&yO3C=WyR^$<`Z;GLKh4t^trn< zms7s;D%I32CJLVRJ#}E|awxe3fp)R`l6PIfm@aXS;LO7d=q2WyST2`0i@TnB9S_I8 zj#oH{xeBi7bsAfv-^?1!xixtzjE*R|f0;!@iP@9Cj#tiTd7E+R5GB4Q+s7ch-d zTXP&SMr$NZZ66^w@WR+PB>Z~u(&fenhffOle~^#6AM;%?0|q%mldrqOe_3w!=`5f?Oa*O&tIo+{YQ#TuOkJY zKTkZw`jR}Kd6hvfvm>>^Q6tI6du)B7cz8>1N`U8gmy_iQfe+}Bl7#p!@t5g_tSSM0 zmU7LL>4!WkYlr08AyRgXYcoj{_d8DI786xcUUQJ%#kdFWopiS2le?b%dv1qhE6EXEYkus^m_`XcX^}#Sp&w6rIj*uOMz*Q$Q!k vPObDNsXs^+EzR^Sc@q7se7c32ZQby1F;X;bxo{)#Q=0hnrnc9&(Sd&ehO%k- delta 3095 zcma)-4Nz3q70379w+p+@c0mk5(N~L_=T<_>KcMgQkAGHf~cVi5seDESW`bL zG45W%lSJco?aF^>j3FkC*0v*IDmJOLP12;6L~Wzn|ADuLG?{7N%#ZVN z&pG$*J?A~@Z-&+13EMj{X{k=9Gl2VkzaK&;fn1OW3P6$Ay2f#=DwVl-Wl;VO+pIfI z@eD6EF&T@LD7tNfM0Ze`k-?byz+p)jJEaZGB$z%Wt{U!j0DJgVO|FIv6O;7AV0CkAAeH{82KyiU*1MGTm71hxw zQ|sI2u*<Q&$J}^ND-W#j|BP!fk~JGn*yn0v%pjkn1m}>qe=LkmP3>9G<0elO+qN3+`uG|P7h5& z7vf^Ib@FBEDs(z+6nZCN90JM^Fj5Pe0DF$6KdDLTw-L})Plj9$R)SR^4e^zbYXEIP zPZjh{n4pxw!=crJI&dBIt^55SGWEWR>s|ZfMZ9@Fs}$?ZMMhervuf||AhpLF!aNb& z6=oIZc$Q*sWqPq8%w{wpD7{}Gds=)MR%A?si<;G&Z;x3f&LvE8ncw>Uy8okS*hjtD zmcH!NK-F#w{5(tTi3{Q0gz3!4u|oIXw`Zc;YdOa#!bInzDbuOQHY`oq8h4Qb~EK{t+Y^GnBBsZtTSw|i1=xfXx;Rfa{V~BiGtd(>{W3l-Qmd% za-EcgET{f=g}0cRI=L&{b$o>R(3C}0Lmsn74>8%Kuv;t5BR?#0-F`#OKiK0^-_BLL-EHu?3#ISm zvOPHFRYl$`1*zSuWJx@?rp{RvB6hCMaF$uvTuev_tDwJ*KVjRCz{lXv;0E{$xC#CW z{suk)pMuZ8-@)hL3-Awc3;YxGfG@#U;5N7e?t*`Te}k{VJ#ZiRfezE##;vMUbx(?9 zFgTEa9vDPqX>8m;XdxgJgn@7n0V2iJ(%AA?XciC$27@6W9t;HuAQ8wQ2_%CQkP3zY zdYy(trh{BC63{!40r@Z(t=XC4RB3D;MgI^d9#5-ueC?SCJFcHSp`UKWS|R>bM(54e zYR!SPfnv?3B7raIJop~h{7-7~DP+ekSOjZ{=2@o6!2V^h%fWI`0agGy>olBWGU(OPu# ztFjwLwPSlO`(_SXG3JN6n5RBS@szVdWk8Z-Ru{kSVahy*gaO^@Hsl0ONpgp_YrwY? z_Aann^FOai7u{HnfYk_I1WiBz`#>{z3A_yUg9G3da1gk~W_PTi1=_DsV}hv-nh%_$ zijk+Fy$Mc(cF+Ou@T_;CT?BMz58Au&K`?stXi*;Z#*a94&9$)Q4oO{oESwfs%r#pqY=#19sg3!<1D3ZCB>3#xP zR3kokJ5$ulX=>Vv1HIov1HG-1xEubkns&I8d0(pMEXMA13(#o~v?**2U#OHg)1Z8KB%g7xgb~Qgs;ZaKaWj;W} zpGXfGlbta(uP^1zKuVMd-!ny&9(l#pkuMH3FY8TF+fU>(Z+kuy@{wt*D-av%{iBtc zSP_nx48HkBUTg4tO7|@;zA!d~PILy#!=6}MuI6{NGw;VW%rFgCRVy|w*?}&2ZgA}$ z@S|^DkVIj0h9Mp)7WM9D!Q2&PRjs$KGBy6|OvzH}*ygV|a$0RzZ=IIDukq-j^CzBd zgf47;i>UKI*TR|6+ht1$`JP3K=|T23r{CxFGsi(iKE=CzUmWByT)Fg1KH4X{_(j(8 zbFNp8z0Xf7ne*9XrL~!F>(hRr@EJ;E8+ZHMhq;}JpS`n0x%MtE@HzMK5~f^Vz+x1+ znnx=3VrEsk&hQZ5x}$tIQ>u6IdZqgimlfH=&-)^F@PW)%?d5Z%-V-SDE*|4M*2X=- n{j=n`%-qt>dzu<0y)aMTq;5I-V7OVzexXV08`2+nwMxGu_ diff --git a/version/Install Scripts/SDV_InstallerScript_295CWR.iss b/version/Install Scripts/SDV_InstallerScript_295CWR.iss index 455dc7e3..f4d30069 100644 --- a/version/Install Scripts/SDV_InstallerScript_295CWR.iss +++ b/version/Install Scripts/SDV_InstallerScript_295CWR.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "Stardew Valley Mod Manager" -#define MyAppVersion "240401" +#define MyAppVersion "240402" #define MyAppPublisher "RWE Labs" #define MyAppURL "https://rwe.app/labs/sdvmm" #define RWELabsURL "https://rwelabs.github.io/" diff --git a/version/Latest/StardewModManagerSetup.exe b/version/Latest/StardewModManagerSetup.exe index 8c5356b5..1daf1d4f 100644 --- a/version/Latest/StardewModManagerSetup.exe +++ b/version/Latest/StardewModManagerSetup.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c90bc4f2517cce2e4cf2ae14eb5abcebbab5707cd735a41007e78b8ab3ad7c76 -size 27703612 +oid sha256:5fd0251a942155a711b2d2db00f874d6b5f982be2592d913df7ad4310c2f53a7 +size 27695482 diff --git a/version/StardewModManagerSetup.exe b/version/StardewModManagerSetup.exe index 8c5356b5..1daf1d4f 100644 --- a/version/StardewModManagerSetup.exe +++ b/version/StardewModManagerSetup.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c90bc4f2517cce2e4cf2ae14eb5abcebbab5707cd735a41007e78b8ab3ad7c76 -size 27703612 +oid sha256:5fd0251a942155a711b2d2db00f874d6b5f982be2592d913df7ad4310c2f53a7 +size 27695482 From 345f3d3267b743c85116506f3fd83dcf6a2bc578 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 12:50:01 +1000 Subject: [PATCH 56/62] [Unrelated] Update Modpack and SMAPI for TPFMP Update modpack and SMAPI for TPF Modpack Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- modpacks/2024/SMAPI-4.0.4-installer.zip | 3 --- modpacks/2024/SMAPI-4.0.7-installer.zip | 3 +++ modpacks/2024/The Potato Farm Modpack v220401.sdvmp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 modpacks/2024/SMAPI-4.0.4-installer.zip create mode 100644 modpacks/2024/SMAPI-4.0.7-installer.zip diff --git a/modpacks/2024/SMAPI-4.0.4-installer.zip b/modpacks/2024/SMAPI-4.0.4-installer.zip deleted file mode 100644 index 765eefa9..00000000 --- a/modpacks/2024/SMAPI-4.0.4-installer.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05468cbd84571259cecfb11b13ccd08822c1bdf9e6d695b5f0a22d279cb27c41 -size 41239051 diff --git a/modpacks/2024/SMAPI-4.0.7-installer.zip b/modpacks/2024/SMAPI-4.0.7-installer.zip new file mode 100644 index 00000000..4824f1fd --- /dev/null +++ b/modpacks/2024/SMAPI-4.0.7-installer.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d8d9c23b4affb5d788eca3111f56aba6535bfd26e135cdb0da6409889c09ec7 +size 41245246 diff --git a/modpacks/2024/The Potato Farm Modpack v220401.sdvmp b/modpacks/2024/The Potato Farm Modpack v220401.sdvmp index ede42a29..473b111c 100644 --- a/modpacks/2024/The Potato Farm Modpack v220401.sdvmp +++ b/modpacks/2024/The Potato Farm Modpack v220401.sdvmp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:54afde382a1a46c4863753eac62201e431fa2c5b7d614becabdd8b1d1c109418 -size 385677622 +oid sha256:70863709b76cb1b02b0ab0df29037b0b59eab254c332fc29c33bae894f22e073 +size 385762224 From fb71c15fe38981aad7e359fc0a51d82ec5005c10 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 12:56:45 +1000 Subject: [PATCH 57/62] [v240402] - Update License/Readme Update the readme and license files with new file paths, new information, dates and link paths. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- LICENSE.md | 2 +- README.md | 8 +-- web/license.rtf | 133 ++++++++++++++++++++++++------------------------ 3 files changed, 72 insertions(+), 71 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 95932331..54a8d17b 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,5 +1,5 @@ ## Stardew Valley Mod Manager -### Copyright (C) 2021 - RWE Labs, Ryan Walpole Enterprises +### Copyright (C) 2024 - RWE Labs, Ryan Walpole Enterprises #### LICENSE AGREEMENT Please find the following license agreement for the Stardew Valley Mod Manager and Stardew Valley Modded Framework by RWE Labs. This documentation will explain the rights you have to this software and it's source code. diff --git a/README.md b/README.md index d2217cbe..33805c8d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +

# Stardew Valley Mod Manager @@ -70,16 +70,16 @@ Or for more articles and information, [Visit our Wiki](https://rwe-labs.gitbook. ## License It's your responsibility to read the license agreement when installing the software if you intend on using it as much as it's our responsibility to do our best to show it to you. -If you're modifying and/or downloading the source code, however, your responsibility to understand what you are and are not permitted to do become even more of a big deal - and it's your responsibility. Please familiarise yourself with our [license agreement](https://github.com/RyanWalpoleEnterprises/Stardew-Valley-Mod-Manager/release-stable/LICENSE.md) before even downloading a copy of the source code. +If you're modifying and/or downloading the source code, however, your responsibility to understand what you are and are not permitted to do become even more of a big deal - and it's your responsibility. Please familiarise yourself with our [license agreement](https://github.com/RWELabs/Stardew-Valley-Mod-Manager/release-stable/LICENSE.md) before even downloading a copy of the source code. ## Download ### System Requirements
#### Why does this application need administrative privileges? -Stardew Valley Mod Manager (as of version 230301) requires administraive privileges in order to run. This may be alarming to some users, however, this is in response to some longstanding issues with the Mod Manager on machines where Stardew Valley is installed in the default directory. +Stardew Valley Mod Manager may require administraive privileges in order to run. This may be alarming to some users, however, this is in response to some longstanding issues with the Mod Manager on machines where Stardew Valley is installed in the default directory. -When Stardew Valley is installed in a folder that is child to the ``C:\Program Files\`` directory, the Stardew Valley Mod Manager is unable to move folders and files in and out of this directory, as it is protected by the system. For this reason, the application requires administrative privileges so that mods can be installed, enabled, disabled, uninstalled and deleted. It is easier for us to implement a program-wide enforcement of higher privileges than it is to redesign the program to only require priviliges when file transfers are taking place. This is something we are considering for the future however. +When Stardew Valley is installed in a folder that is child to the ``C:\`` directory (with the exception of ``C:\users\``), the Stardew Valley Mod Manager may be unable to enable and disable mods, as file writing may be protected by the system. For this reason, the application may require administrative privileges so that mods can be installed, enabled, disabled, uninstalled and deleted. As of version 240402, if your Stardew Valley directory is in an affected directory, the application will always prompt the user to launch with administrative priviliges. Users who do not have the game installed in a protected folder will no longer be prompted to launch as an administrator, as opposed to versions 23x and 240401. As always, the code for the Stardew Valley Mod Manager is completely open source. There is no cause to be alarmed. diff --git a/web/license.rtf b/web/license.rtf index 1adc5d7a..29c89705 100644 --- a/web/license.rtf +++ b/web/license.rtf @@ -1,19 +1,19 @@ {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang3081\deflangfe3081\themelang3081\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} {\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} -{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f43\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Segoe UI;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f45\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f64\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f65\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} -{\f67\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f68\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f69\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f70\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} -{\f71\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f72\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f384\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f385\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} -{\f387\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f388\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f391\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f392\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);} -{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} -{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} -{\f474\fbidi \fswiss\fcharset238\fprq2 Segoe UI CE;}{\f475\fbidi \fswiss\fcharset204\fprq2 Segoe UI Cyr;}{\f477\fbidi \fswiss\fcharset161\fprq2 Segoe UI Greek;}{\f478\fbidi \fswiss\fcharset162\fprq2 Segoe UI Tur;} -{\f479\fbidi \fswiss\fcharset177\fprq2 Segoe UI (Hebrew);}{\f480\fbidi \fswiss\fcharset178\fprq2 Segoe UI (Arabic);}{\f481\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f482\fbidi \fswiss\fcharset163\fprq2 Segoe UI (Vietnamese);} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f46\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f47\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f49\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f50\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f51\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f52\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f53\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f54\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f66\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f67\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f69\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f70\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f71\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f72\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f73\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f74\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f386\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f387\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} +{\f389\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f390\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f393\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f394\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);} +{\f416\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f417\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f419\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f420\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\f421\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f422\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f423\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f424\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\f496\fbidi \fswiss\fcharset238\fprq2 Segoe UI CE;}{\f497\fbidi \fswiss\fcharset204\fprq2 Segoe UI Cyr;}{\f499\fbidi \fswiss\fcharset161\fprq2 Segoe UI Greek;}{\f500\fbidi \fswiss\fcharset162\fprq2 Segoe UI Tur;} +{\f501\fbidi \fswiss\fcharset177\fprq2 Segoe UI (Hebrew);}{\f502\fbidi \fswiss\fcharset178\fprq2 Segoe UI (Arabic);}{\f503\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f504\fbidi \fswiss\fcharset163\fprq2 Segoe UI (Vietnamese);} {\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} {\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} {\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} @@ -100,71 +100,72 @@ Hyperlink;}{\*\cs17 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \cf20\chshdng0\chcfpa \levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative \levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1241259519}}{\*\listoverridetable{\listoverride\listid817651231\listoverridecount0\ls1} {\listoverride\listid1143736998\listoverridecount0\ls2}{\listoverride\listid1071387846\listoverridecount0\ls3}{\listoverride\listid472990955\listoverridecount0\ls4}{\listoverride\listid1241259519\listoverridecount0\ls5}{\listoverride\listid178354942 -\listoverridecount0\ls6}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid133291\rsid741812\rsid6570460\rsid10431049\rsid11933148\rsid13585735\rsid14046173\rsid14580248\rsid15163671}{\mmathPr\mmathFont34 -\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Ryan Walpole}{\creatim\yr2022\mo3\dy8\hr15\min58}{\revtim\yr2023\mo2\dy2\hr14\min5}{\version8}{\edmins26}{\nofpages2}{\nofwords570} -{\nofchars3249}{\nofcharsws3812}{\vern65}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\listoverridecount0\ls6}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid133291\rsid741812\rsid6570460\rsid10431049\rsid11933148\rsid13585735\rsid14046173\rsid14118948\rsid14580248\rsid15163671}{\mmathPr +\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Ryan Walpole}{\creatim\yr2022\mo3\dy8\hr15\min58}{\revtim\yr2024\mo4\dy23\hr12\min50}{\version9}{\edmins26}{\nofpages2} +{\nofwords570}{\nofchars3249}{\nofcharsws3812}{\vern93}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 -\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot741812 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale130\rsidroot741812 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 \pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 \pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\qc \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid741812 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 -\fs22\lang3081\langfe3081\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \ab\af43\afs21 \ltrch\fcs0 \b\f43\fs21\cf22\insrsid741812\charrsid6570460 \hich\af43\dbch\af31505\loch\f43 Stardew Valley Mod Manager\line -\hich\f43 Copyright \'a9\loch\f43 202}{\rtlch\fcs1 \ab\af43\afs21 \ltrch\fcs0 \b\f43\fs21\cf22\insrsid10431049 \hich\af43\dbch\af31505\loch\f43 3}{\rtlch\fcs1 \ab\af43\afs21 \ltrch\fcs0 \b\f43\fs21\cf22\insrsid741812\charrsid6570460 -\hich\af43\dbch\af31505\loch\f43 \hich\f43 \endash \loch\f43 RWE Labs, Ryan Walpole Enterprises -\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid741812 {\rtlch\fcs1 \ab\af43\afs21 \ltrch\fcs0 \b\f43\fs21\cf22\insrsid13585735 \line }{\rtlch\fcs1 \ab\af43\afs21 \ltrch\fcs0 -\b\f43\fs21\cf22\insrsid741812\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 LICENSE AGREEMENT -\par }{\rtlch\fcs1 \af43 \ltrch\fcs0 \f43\insrsid741812\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 -Please find the following license agreement for the Stardew Valley Mod Manager and Stardew Valley Modded Framework by RWE Labs. This documentation will explain the rights you have to this software and it\hich\f43 \rquote \loch\f43 s source code. +\fs22\lang3081\langfe3081\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \ab\af45\afs21 \ltrch\fcs0 \b\f45\fs21\cf22\insrsid741812\charrsid6570460 \hich\af45\dbch\af31505\loch\f45 Stardew Valley Mod Manager\line +\hich\f45 Copyright \'a9\loch\f45 202}{\rtlch\fcs1 \ab\af45\afs21 \ltrch\fcs0 \b\f45\fs21\cf22\insrsid14118948 \hich\af45\dbch\af31505\loch\f45 4}{\rtlch\fcs1 \ab\af45\afs21 \ltrch\fcs0 \b\f45\fs21\cf22\insrsid741812\charrsid6570460 +\hich\af45\dbch\af31505\loch\f45 \hich\f45 \endash \loch\f45 RWE Labs, Ryan Walpole Enterprises +\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid741812 {\rtlch\fcs1 \ab\af45\afs21 \ltrch\fcs0 \b\f45\fs21\cf22\insrsid13585735 \line }{\rtlch\fcs1 \ab\af45\afs21 \ltrch\fcs0 +\b\f45\fs21\cf22\insrsid741812\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 LICENSE AGREEMENT +\par }{\rtlch\fcs1 \af45 \ltrch\fcs0 \f45\insrsid741812\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 +Please find the following license agreement for the Stardew Valley Mod Manager and Stardew Valley Modded Framework by RWE Labs. This documentation will explain the rights you have to this software and it\hich\f45 \rquote \loch\f45 s source code. \par }\pard\plain \ltrpar\s5\ql \li0\ri0\sb360\sa240\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid13585735 \cbpat8 \rtlch\fcs1 \ab\af0\afs20\alang1025 \ltrch\fcs0 -\b\fs20\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af43\afs21 \ltrch\fcs0 \f43\fs21\cf22\insrsid13585735 \hich\af43\dbch\af31505\loch\f43 Use of Software +\b\fs20\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af45\afs21 \ltrch\fcs0 \f45\fs21\cf22\insrsid13585735 \hich\af45\dbch\af31505\loch\f45 Use of Software \par }\pard\plain \ltrpar\s18\ql \li0\ri0\sa240\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13585735 \cbpat8 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 -\fs24\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 This software is deve -\hich\af43\dbch\af31505\loch\f43 loped by RWE Labs (a division of Ryan Walpole Enterprises) and is offered to you (the user) as free software. This software does not require payment, nor a subscription \hich\f43 \endash \loch\f43 - to use. The source code similarly is offered free of charge via GitHub. The source c\hich\af43\dbch\af31505\loch\f43 o\hich\af43\dbch\af31505\loch\f43 de and software additionally contains a bundled copy of SMAPI \hich\f43 \endash \loch\f43 - which has its own licenses and information associated with it. For information and licenses regarding SMAPI and its source code, please see\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 -\hich\af43\dbch\af31505\loch\f43 HYPERLINK "https://github.com/Pathoschild/SMAPI" }{\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid10431049\charrsid13585735 {\*\datafield +\fs24\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 +This software is developed by RWE Labs (a division of Ryan Walpole Enterprises) and is offered to you (the user) as free software. This software does not require payment, nor a subscription \hich\f45 \endash \loch\f45 + to use. The source code similarly is offered free of charge via\hich\af45\dbch\af31505\loch\f45 GitHub. The source co\hich\af45\dbch\af31505\loch\f45 de and software additionally contains a bundled copy of SMAPI \hich\f45 \endash \loch\f45 + which has its own licenses and information associated with it. For information and licenses regarding SMAPI and its source code, please see\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 +\hich\af45\dbch\af31505\loch\f45 HYPERLINK "https://github.com/Pathoschild/SMAPI" }{\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid10431049\charrsid13585735 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0050006100740068006f0073006300680069006c0064002f0053004d004100500049000000795881f43b1d7f48 -af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \cs16\f43\fs22\ul\cf19\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 ht\hich\af43\dbch\af31505\loch\f43 tps://github.com/Pathoschild/SMAPI}}} -\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 -\par \hich\af43\dbch\af31505\loch\f43 You are permitted to use this software and all available software features. You are not permitted to use any software features for anything illegal that may violate local or international laws, nor use this software in -\hich\af43\dbch\af31505\loch\f43 piracy. -\par \hich\af43\dbch\af31505\loch\f43 \hich\f43 The modpack installer allows you to install third party modifications to your game installation. These modifications can be bundled together into a \'93\loch\f43 \hich\f43 Stardew Valley Modpack\'94\loch\f43 - file (.SDVMP) and opened directly within the application. These modpacks c\hich\af43\dbch\af31505\loch\f43 -an be created by anyone and are not vetted or virus checked by RWE or anyone involved in the development. You should only install modpacks that are supplied by people you trust. RWE Labs and the developers of Stardew Valley Mod Manager are not liable for -\hich\af43\dbch\af31505\loch\f43 d\hich\af43\dbch\af31505\loch\f43 amages caused by mods and modpacks installed by the user. +af2c825dc485276300000000a5ab000300}}}{\fldrslt {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \cs16\f45\fs22\ul\cf19\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 https://github.com/Pathoschild/SMAPI}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 +\par \hich\af45\dbch\af31505\loch\f45 +You are permitted to use this software and all available software features. You are not permitted to use any software features for anything illegal that may violate local or international laws, nor use this software in piracy. +\par \hich\af45\dbch\af31505\loch\f45 \hich\f45 The modpack installer allows you to install third party modifications to your game installation. These modifications can be bundled together into a \'93\loch\f45 \hich\f45 Stardew Valley Modpack\'94\loch\f45 + file (.SDVMP) and opened directly within the application. These modpacks can be cr\hich\af45\dbch\af31505\loch\f45 eated by anyone and are not ve\hich\af45\dbch\af31505\loch\f45 +tted or virus checked by RWE or anyone involved in the development. You should only install modpacks that are supplied by people you trust. RWE Labs and the developers of Stardew Valley Mod Manager are not liable for damages caused by mods and modpacks in +\hich\af45\dbch\af31505\loch\f45 stalled by the user. \par }\pard\plain \ltrpar\s5\ql \li0\ri0\sb360\sa240\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid13585735 \cbpat8 \rtlch\fcs1 \ab\af0\afs20\alang1025 \ltrch\fcs0 -\b\fs20\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af43\afs21 \ltrch\fcs0 \f43\fs21\cf22\insrsid13585735 \hich\af43\dbch\af31505\loch\f43 Modifying the Software +\b\fs20\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af45\afs21 \ltrch\fcs0 \f45\fs21\cf22\insrsid13585735 \hich\af45\dbch\af31505\loch\f45 Modifying the Software \par }\pard\plain \ltrpar\s18\ql \li0\ri0\sa240\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13585735 \cbpat8 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 -\fs24\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 -As this software is open source, you can download and compile the source code with any edits you wish to make. There are however some explicit restrictions that we have on thi\hich\af43\dbch\af31505\loch\f43 -s process: If you are publishing the source code or a compiled version of the source code you must: -\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\s18\ql \fi-360\li720\ri0\sb240\sa240\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid13585735 \cbpat8 {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 -Ensure to the best of your ability that the modified version of the source code and compi\hich\af43\dbch\af31505\loch\f43 led application maintain the functionality of the original application and that the application still operates and performs it -\hich\f43 \rquote \loch\f43 s meaningful purpose. -\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\s18\ql \fi-360\li720\ri0\sb240\sa240\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls6\adjustright\rin0\lin720\itap0\pararsid11933148 \cbpat8 {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 That the software and it -\hich\f43 \rquote \loch\f43 s source code explicitly credit the original creators, RWE Labs and Ryan Walpole\hich\af43\dbch\af31505\loch\f43 Enterprises with a link to the original GitHub repository which can be referenced as:\~} -{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af43 \ltrch\fcs0 \f43\cf22\insrsid11933148 \hich\af43\dbch\af31505\loch\f43 HYPERLINK "https://github.com/RWELabs/Stardew-Valley-Mod-Manager" }{\rtlch\fcs1 \af43 \ltrch\fcs0 \f43\cf22\insrsid10431049 -{\*\datafield +\fs24\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 +As this software is open source, you can download and compile the source code with any edits you wish to make. There are however some explicit restrictions that we have on this process: If you are publishing the s\hich\af45\dbch\af31505\loch\f45 +ource code or a compiled version of the source code you must: +\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\s18\ql \fi-360\li720\ri0\sb240\sa240\widctlpar +\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid13585735 \cbpat8 {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 +Ensure to the best of your ability that the modified version of the source code and compiled application maintain the functionality of the original application and that the application still operates and performs it\hich\f45 \rquote \loch\f45 +s meaningful purpose. +\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\s18\ql \fi-360\li720\ri0\sb240\sa240\widctlpar +\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls6\adjustright\rin0\lin720\itap0\pararsid11933148 \cbpat8 {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 That the software and it +\hich\f45 \rquote \loch\f45 s source code explicitly credit the original creators, RWE Labs and Ryan Walpole Enterprises with a link to the original GitHub repository which can be referenced as:\~}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af45 \ltrch\fcs0 +\f45\cf22\insrsid11933148 \hich\af45\dbch\af31505\loch\f45 HYPERLINK "https://github.com/RWELabs/Stardew-Valley-Mod-Manager" }{\rtlch\fcs1 \af45 \ltrch\fcs0 \f45\cf22\insrsid10431049 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b84000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f005200570045004c006100620073002f0053007400610072006400650077002d00560061006c006c0065007900 -2d004d006f0064002d004d0061006e0061006700650072000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af43 \ltrch\fcs0 \cs16\f43\ul\cf19\insrsid11933148 \hich\af43\dbch\af31505\loch\f43 -https://github.com/RWELabs/Stardew-Valley-Mod-Manager}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af43 \ltrch\fcs0 \f43\cf22\insrsid13585735\charrsid11933148 -\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\s18\ql \fi-360\li720\ri0\sb240\sa240\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid13585735 \cbpat8 {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 -Any changes to the software and it\hich\f43 \rquote \loch\f43 s source\hich\af43\dbch\af31505\loch\f43 code come with the explicit instruction that the entity that makes the changes \hich\f43 \endash \loch\f43 whether published or not \hich\f43 \endash -\loch\f43 are responsible for any outcomes of the changes. RWE Labs and Ryan Walpole Enterprises does not remain responsible for versions of the application\hich\af43\dbch\af31505\loch\f43 \hich\af43\dbch\af31505\loch\f43 -that are modified from the original source code available on the RWE GitHub repository. -\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}\hich\af43\dbch\af31505\loch\f43 -Please note that to modify the software you are obligated to remove the Telemetry features. The necessary files containing the telemetry handshakes are not included i\hich\af43\dbch\af31505\loch\f43 -n the GitHub Repository as the information is sensitive. The feature can be rewritten to collect telemetry data but the changes must be made to the telemetry onboarding UI and the user must be informed that their information is being collected and not by -\hich\af43\dbch\af31505\loch\f43 t\hich\af43\dbch\af31505\loch\f43 he original developer along with a telemetry policy pertaining to the modified version. +2d004d006f0064002d004d0061006e0061006700650072000000795881f43b1d7f48af2c825dc485276300000000a5ab000300}}}{\fldrslt {\rtlch\fcs1 \af45 \ltrch\fcs0 \cs16\f45\ul\cf19\insrsid11933148 \hich\af45\dbch\af31505\loch\f45 +https://github.com/RWELabs/Stardew-Valley-Mod-Manager}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af45 \ltrch\fcs0 \f45\cf22\insrsid13585735\charrsid11933148 +\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\s18\ql \fi-360\li720\ri0\sb240\sa240\widctlpar +\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid13585735 \cbpat8 {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 +Any changes to the software and it\hich\f45 \rquote \loch\f45 s source code come with the explicit instruction that the entity that makes the changes \hich\f45 \endash \loch\f45 whether published or not \hich\f45 \endash \loch\f45 + are responsible for any outcomes of the changes. RWE Labs and Ryan Walpole Enterprises does not remain \hich\af45\dbch\af31505\loch\f45 +responsible for versions of the application that are modified from the original source code available on the RWE GitHub repository. +\par {\listtext\pard\plain\ltrpar \s18 \rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f3\fs20\cf22\insrsid13585735\charrsid13585735 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}\hich\af45\dbch\af31505\loch\f45 +Please note that to modify the software you are obligated to remove the Telemetry features. The necessary files containing the telemetry handshakes are not included in the GitHub Repository as the information is sensitive. The feature can be rewritten to +\hich\af45\dbch\af31505\loch\f45 +collect telemetry data but the changes must be made to the telemetry onboarding UI and the user must be informed that their information is being collected and not by the original developer along with a telemetry policy pertaining to the modified version. + \par }\pard\plain \ltrpar\s5\ql \li0\ri0\sb360\sa240\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid13585735 \cbpat8 \rtlch\fcs1 \ab\af0\afs20\alang1025 \ltrch\fcs0 -\b\fs20\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af43\afs21 \ltrch\fcs0 \f43\fs21\cf22\insrsid13585735 \hich\af43\dbch\af31505\loch\f43 Software Updates and Changes +\b\fs20\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af45\afs21 \ltrch\fcs0 \f45\fs21\cf22\insrsid13585735 \hich\af45\dbch\af31505\loch\f45 So\hich\af45\dbch\af31505\loch\f45 ftware Updates and Changes + \par }\pard\plain \ltrpar\s18\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13585735 \cbpat8 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 -\fs24\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af43\afs22 \ltrch\fcs0 \f43\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af43\dbch\af31505\loch\f43 -You have the responsibility to ensure that license changes that are made between versions are taken into account when using or modifying th\hich\af43\dbch\af31505\loch\f43 e software and/or it\hich\f43 \rquote \loch\f43 -s source code. You also must be aware that the EULA/License may change between versions and the license applies to the use of the software as well as the modification of the software. +\fs24\lang3081\langfe3081\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af45\afs22 \ltrch\fcs0 \f45\fs22\cf22\insrsid13585735\charrsid13585735 \hich\af45\dbch\af31505\loch\f45 +You have the responsibility to ensure that license changes that are made between versions are taken into account when using or modifying the software and/or it\hich\f45 \rquote \loch\f45 +s source code. You also must be aware that the EULA/License may change between versions and the\hich\af45\dbch\af31505\loch\f45 license applies to the use of the software as well as the modification of the software. \par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13585735 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang3081\langfe3081\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp3081\langfenp3081 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid741812\charrsid133291 \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a @@ -311,8 +312,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000a0e4 -c239b336d901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000a047 +7f122995da01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file From b399db7cae33184e85aec7317f50a1c357aa647f Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 12:57:07 +1000 Subject: [PATCH 58/62] [v240402] - Enabled SMAPI.io Button Enable the button that allows users to visit SMAPI.IO. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/MainPage.Designer.cs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs index d86a6c8a..1c8cea76 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs @@ -715,7 +715,6 @@ private void InitializeComponent() // SMAPIWebButton // this.SMAPIWebButton.AccessibleName = "Button"; - this.SMAPIWebButton.Enabled = false; this.SMAPIWebButton.Font = new System.Drawing.Font("Segoe UI", 9F); this.SMAPIWebButton.Location = new System.Drawing.Point(190, 56); this.SMAPIWebButton.Name = "SMAPIWebButton"; @@ -820,9 +819,9 @@ private void InitializeComponent() // this.ClearErrorLogs.AccessibleName = "Button"; this.ClearErrorLogs.Font = new System.Drawing.Font("Segoe UI", 9F); - this.ClearErrorLogs.Location = new System.Drawing.Point(142, 59); + this.ClearErrorLogs.Location = new System.Drawing.Point(190, 59); this.ClearErrorLogs.Name = "ClearErrorLogs"; - this.ClearErrorLogs.Size = new System.Drawing.Size(129, 28); + this.ClearErrorLogs.Size = new System.Drawing.Size(171, 28); this.ClearErrorLogs.TabIndex = 40; this.ClearErrorLogs.Text = "Clear Error Logs"; this.ClearErrorLogs.Click += new System.EventHandler(this.ClearErrorLogs_Click); @@ -833,7 +832,7 @@ private void InitializeComponent() this.ViewErrorLogs.Font = new System.Drawing.Font("Segoe UI", 9F); this.ViewErrorLogs.Location = new System.Drawing.Point(19, 59); this.ViewErrorLogs.Name = "ViewErrorLogs"; - this.ViewErrorLogs.Size = new System.Drawing.Size(116, 28); + this.ViewErrorLogs.Size = new System.Drawing.Size(165, 28); this.ViewErrorLogs.TabIndex = 39; this.ViewErrorLogs.Text = "View Error Logs"; this.ViewErrorLogs.Click += new System.EventHandler(this.ViewErrorLogs_Click); @@ -955,7 +954,7 @@ private void InitializeComponent() this.BackupSelectedFarm.ImageTransparentColor = System.Drawing.Color.Magenta; this.BackupSelectedFarm.Name = "BackupSelectedFarm"; this.BackupSelectedFarm.Padding = new System.Windows.Forms.Padding(0, 0, 7, 0); - this.BackupSelectedFarm.Size = new System.Drawing.Size(101, 45); + this.BackupSelectedFarm.Size = new System.Drawing.Size(101, 58); this.BackupSelectedFarm.Text = "Backup Selected"; this.BackupSelectedFarm.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.BackupSelectedFarm.Click += new System.EventHandler(this.MakeBackupButton_Click); @@ -966,7 +965,7 @@ private void InitializeComponent() this.ViewBackups.ImageTransparentColor = System.Drawing.Color.Magenta; this.ViewBackups.Name = "ViewBackups"; this.ViewBackups.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0); - this.ViewBackups.Size = new System.Drawing.Size(88, 45); + this.ViewBackups.Size = new System.Drawing.Size(88, 58); this.ViewBackups.Text = "View Backups"; this.ViewBackups.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.ViewBackups.Click += new System.EventHandler(this.ViewBackupsButton_Click); @@ -977,7 +976,7 @@ private void InitializeComponent() this.OpenSMAPIBackups.ImageTransparentColor = System.Drawing.Color.Magenta; this.OpenSMAPIBackups.Name = "OpenSMAPIBackups"; this.OpenSMAPIBackups.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0); - this.OpenSMAPIBackups.Size = new System.Drawing.Size(95, 45); + this.OpenSMAPIBackups.Size = new System.Drawing.Size(95, 58); this.OpenSMAPIBackups.Text = "SMAPI Backups"; this.OpenSMAPIBackups.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.OpenSMAPIBackups.Click += new System.EventHandler(this.ViewSMAPIBackups_Click); @@ -989,7 +988,7 @@ private void InitializeComponent() this.DeleteFarm.ImageTransparentColor = System.Drawing.Color.Magenta; this.DeleteFarm.Name = "DeleteFarm"; this.DeleteFarm.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0); - this.DeleteFarm.Size = new System.Drawing.Size(97, 45); + this.DeleteFarm.Size = new System.Drawing.Size(97, 58); this.DeleteFarm.Text = "Delete Selected"; this.DeleteFarm.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.DeleteFarm.Click += new System.EventHandler(this.DeleteFarmButton_Click); @@ -1000,7 +999,7 @@ private void InitializeComponent() this.OpenSaves.ImageTransparentColor = System.Drawing.Color.Magenta; this.OpenSaves.Name = "OpenSaves"; this.OpenSaves.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0); - this.OpenSaves.Size = new System.Drawing.Size(114, 45); + this.OpenSaves.Size = new System.Drawing.Size(114, 58); this.OpenSaves.Text = "Open Saves Folder"; this.OpenSaves.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.OpenSaves.Click += new System.EventHandler(this.OpenSavesButton_Click); From c6efe18c28169ec3a71935ed30e991cf06d83649 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 13:19:24 +1000 Subject: [PATCH 59/62] [v240402] - Push Build v240402 Build v240402_2304119P for testing. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../bin/Release/Stardew Mod Manager.exe | 2 +- .../Release/Stardew Mod Manager.exe.config | 3 --- .../bin/Release/Stardew Mod Manager.pdb | Bin 341504 -> 339456 bytes 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe index 13eacf9f..da1686a0 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb4c93248a4118be9ea35187e56b4e4229c3dbc011cbb5fbe8e8d3a9878bd1ae +oid sha256:1edd782494191e1d0de38f8809f9d7d6fb00a867f444608d67e4988abdcaa137 size 8266240 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config index 694f80b2..60594378 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe.config @@ -112,9 +112,6 @@ FALSE - - - \ No newline at end of file diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index f0bad8e6e550fdc1a907fa15fc7bf78e1b323c43..9f76a956eb200055637f0a48466b9b7603f051d9 100644 GIT binary patch delta 35490 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 CsQ?H7 delta 36099 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%0AUcU|pohqf&oiY_ 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 TP^OxVVo#$n=hD~{YLfmB(v5;T From 0979b9bddb5ee61ee901cbaa8d7550a09d9e85d8 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 13:19:40 +1000 Subject: [PATCH 60/62] [v240402] - Update Project Files Update project files and release objects Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 242688 -> 242688 bytes ... Mod Manager.csproj.GenerateResource.cache | Bin 3661 -> 3661 bytes .../obj/Release/Stardew Mod Manager.exe | 2 +- .../obj/Release/Stardew Mod Manager.pdb | Bin 341504 -> 339456 bytes .../Properties.Resources.Designer.cs.dll | Bin 17920 -> 17920 bytes 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 10b60df5a6cb8159306c5eadd25005061d6842e2..205eb1b27ef239b266f73bf019ac18de6e6acdac 100644 GIT binary patch delta 7245 zcmdUz3wV^(naA^;L`^I@X%y~Mj)}9j3_Cy2(^hVwYuD74bt~O8HfZiARAPmtqamj&W{j&vXx38sT_;Bhb?%m5C6A!}OWkvW7HMj=fG2_O&j0ZOUKNQZ(E zK$-9%`bHuDA4m;IRi6)#e-!zC{<5kYf_yiBc{bV+18?81?fSH~PHJr(gbF2ilD}aN zItTjmQ<0W{QZNfl10&F$h_oY61C2!aG31MYif-FeEtaKr4vqEqQnlicF~+hAZqx6J|-A2kbl)Px~t z0e^4w)hKPzS9ukEm9~%mMASKenicT?!LRXlx;gs!Xlx&SC8&M$)ml)~S4Cg7spu>7 zi;=cPUj?Nt`VSzlqW>Tm4^$w1!SCmbzKUd9^b65J2`%xb<^ELFwMGB>+LCVM4Rgo# zVGa_9jnR>}#93Sme%YYHBI-kuwL>9xT3cywg>JaDZi7Wwq9)K>Q5{u77I6W;OjJi> z`KvjnV&z-@CbRJ?6b#yx@IdAY+aK)JIH_GbeJn176$YtAsur&IwW(cV$RHMmj}G>3 zK5CNqcN6R1FQX<`vlTUynEt{_v2srG+UYSgR+PLji9*zG%}EUQ2k;5_6r2M84NikI z;4|4O|DUKy9~$0o7u8*ZZ`@ zuE)q_%?(m(Tm?xPuT8bqQbHOtZoMEyi{%{I+8xH-HjHkS-cje0yc zO2nC?L{;1>SAHndm&qg%akN3LD_^_GEUMgvst+Y;7u+3))`-1Hzn9h}+@!V4 zvhq7A;I1^t;&*Z2RhActRa+gxQ|=Uwtq!^(md&VfKWT84HXFu3U#+EdAZeDxpU`dl z3+IeYn$6j4j3jhsfCB?CipbLFdpaN&3Oa%?5Dp?hq!?Nn-8UM!7;q2h3c3LcxEI8N zIA8_wAOYM5Y+`k3bWLyMl*^Klrhv9H!H#@7=nq%*L7EBrf-KMvWP<@fy{n#q$PZ~( z9@Z}3CR6oGfjpI}XC}mX3(7zFU|hSG+Kz@|)IH#@AMZ~m>iq>uIxWXn_ z>y7Su=IV4=yWAK=qBuE8)L*h{BVBKidkvH6d#S64czlgK)QxwQo&`KcJ64xS|70N@ z412$?kUsKHAJV4HHm2D&G;=v@2wyK+M#PB5MZXGpqO7FiiL%9cC7ZROZ*?cx*b(u5 zeZ_ckZ({EC%)O4u!-rWHt;^3pC%1<+9deL#&SM@|M531X`Z4O;HuF^aBmYclt6Pck zv*2I-^{f4<3v;Ycx`!Xk!C%J0N2~@J{4( zuuDmdd>6UhU=Q$s_fXrT|NF=t1it}l4HRG=^aMvyZqrnyIjHLd`ht(p_5&P-FS~!n z-0v}QB&C#YyTy^D326RLy?y4(q;_YEI$JqV&$a_oHq}2^ zmF}G0eZixXPOX%O-)DBs@#}M>WgPi{Zc$9u*YZZK@uMP&_-n6v$iH}hT<7grXCM!a zkb4a@TpHdcbKv~Bv&yDb<%syFJIf3sec(D?MG2z%c#Wt!VG$80`UF!UR7(Iitg(vf z6E&ggI^#Qg0sOFemnTwk6ys@q_Qh%~1OtJxxQzuM*MG+Ycn zw?ka+l&|Ifc^7NC>fpf>&Q@5J6cD7b&bE zkD?kXD70ZF>K0IJLn;evs3Rsb9OTd)4HOn3tqo+==WHeyHM~V6?93oN@OQf($J^vk z#g!tFMSNSYJAY22NuD&3MV@+x^5h%ukXa-!vo!CbWa->RxiWVb4QzN9VkgePCAHkv zu$xRfCo?k0J!Py#rc7rEI-kZW1KAMLt7ow&qC_#Zf1=z`!3q#72dpSI1=y7XbklhD zHSKJo0z=&lc1Cu1j3vn_53!BHffN6hlmGwDnrlpKUt`s*Z&-ahlxW;)#_c3jwk%{; z-7%l-#nmmAY;x`lwo>0(&VImmE?^#V9dwA$mQXG9;CU>DAnGjB%3xyn9tx7fXEFQj ze3TZ939qJ_Ei+?UmOVQwBc-&oyeuU%qpU0?J3Xs^O259-)B9(aXJurTW}5=!;n!H2 zZgsJbNm?bd$?XT(TzT~+Hn#2oGRns1*m7x~K!fF{udr@Luj6&&3ib`%-pO|`6pNZ9 z8}1!Mzq*1gA>VkR@3QmK`Yh`rU){V{S~ys%gQ&Cl3R zNT+(%O4KU17tw?I_ML1C$&xXYcH@P1X53!TIC;*^QuO-Q*;JA#Z?i->bsP;3RyTg{ zBlnJ`dA`9|K$3iPH=F4beoIV>+bO{xp%-Pmhy74m=dnmVWos zXzMjkk2t_ex%`uxrQWPohZ}0$K^2jHAW8Nvpf38hgKR(Ds?JQ3lRsk%yd$f~$C19^ z5aTT5+e1XoJHwo^=vS;nrop)eh-BIQYn($j_hzG&U);&j=T zAVxU$cqm^_zr-R*HymSj(uW;q*+lzfWFh|-;p%CY1StLmqz%ru3Bi za`>j(bs?^={+NZ+4g*gl{p58hC#~glPF`g^mVTj3-B|Y%Zj)z;8z|K`mY!Sra$u&JKJS>Glv_M0!&Xo*;{m0uARPnl)oN%n8z`FAof ztcrPrps^=J%Pc!O2kCK(IZmmiZ<MdD3nNgUsQd$?XR2UYi7v}In!qM-GzBPwu z=$=75hh*k|;@nP{O)KQt3cR%D>m>9arElv2C*IlpnOya`_z!WjJXFh{G2Y%se!ahS z#nXnnx9}1>CF@sV+C<9}r`SEd8H>LeqKxW)-!FYJKAZO>3{S=6AyQLV<w@h(7Sn z>9*;G7^=U=2J47nFv)_YJd1MlJ@@lTr2jCF55|HW!Ozn`HL<&psGJ-jzPPL=?|t5p zb^9nDO88J6I`UJwriEougigm80)4)KTWBBxnJ!&p_>un~>Pk$e6JqMb$uQ8acbv^f z8EB$!;}Z5uxu~_Nb^1HsnoX84^&VNz_FJc#>%K z%2K0x_Xq@0{hOQR50d4I+K<%N1GaDP-iUpAa9}SQ9*`3-S)}LA7O9u={sG3E7KcV8 z-BDu;>7B|clw{Eu-bsB6njFaY^Z#3Gw&rgZ^eG( zJi{Ir;cG%+EIwT>b(Tk7iF*7p~&}embqJ&ALedGVhT_yHkeL6fQq9# ztEl=^mnWK1V^f#vUumgyZ5zDZJ_zx4U4syJ>Z%VbQ5yLJRr5jhRdw7^_kYq?J@2fq zN-KTm03$%Mq+MW#Gqmfg3f_;ts@z00)LCDZ*I8e+nA-JK`BRZr`l@m>l#nWtj|`=+ ziYt9p*siaND}85!dCq4lPhHO-tsF(^{V#~C4wQ2$4b=6$`mWBJN_`hI5>vz-kJt1D zhBdm=Ggj=3*IUnd8pzUR$2~IrPI-`OFB%owmb9xstr55Va>Qw7a8V0ulvvh%j0dUS zQ#wion5wo+3;vPVVlZ z>Z{G7w0wJ2m03A1l+YwyS= z@7ho!=|5MGO<~7n{j+?Ubz0(0y5D~1xmiQPrxVQ-%OVa~qlPti{Xv7ZU!5XxDrl%& z@-x23x@bbFOGPe|OZw6hY0KkdtjDLBxaGss?vG;t5glU;2)7gzxn{#|v!cZEg7vcg zQ&ula|H6Vr?xx-q`D9t%tXH{q9*;eaULXuYec8TCfhR2OGdf@JsL__!Za$HiIo- zD<}nJzybu=2DXE8Ai+!E*WhLFuV4pw1-uGg13T63_c|hnfY=xu+qVjlYET0XgIaI| zj010gI-r50;%aD6$?p+60c_wTs0XLOY48Vd2D}O00&jyqf}fNFVfI11XjXuJOw>0{t`;G}5X5EN05*eP%t`~jQ+ZvrJvUntRtQenLY zBjyJNfX?k*M#<552ft?V2@xS?tehQ9ykZNp%o(K*K-uvBX$qg;FJ2v$bx6fuP*A_*8+*DDo_ZpmEI6r=A0?Ozt z7Y103=WmjD<&clnSZBi)vXU9C#^W}sJ!s@V5T>GmegD)lT`$ixvB8f<&gTWc=m(tkH6Y}fgaVQDU+$3<~-2}O$A%{VdT!0=%m3N;%<>D8HD;mA;DA6%OK zO(K2mhegzJCiv*$eI8Ig&gGWRZb`#7(u;3CYtTocy*5wq2~a-|f>j6DeeKtlISw(c z8!VAgBI=6<7xkvZ&%rMRxn}V{&@eh-28^_SiimL#>HuS zv}}muiQ2StROwRtm63bQME9tqa}%S#9jjm5bE%tn>DxK%?q>Xr}3?cfs_B$J+ z3~{n4Q$J!{)+90NN~$nku~nWXV`UZvR;E&y$~nYD#-IuE*fJie75TDF{VK}|$IuNp zDrT=Ce=RkQz4ch#Zpzkc*_BjFmHUaL@c?{Af5l&3-cQjgWrQc_rTGB)|M0d^-ioGF z&3KT;kUV>cQl#w=#md+!@+X~4ucG17h|OG{uA;O(wko2^8gi|4#Q^=7$=U1fpT5_+ z8X~4q9WkcyTDt3|(NS9B$ugK$Tu*_-_A+h!aq^>p`MP}Fv-oAa2;nojS@`}@pevMz zPf?DWEw+%%li(t+^!JML+7bGAxifw;`vKv?mD-PEY;!CwwHD5 zYIlRUeRLCN6%{XvFDUH1wXV>NOW8@%=or~~-3n%-@}@nODLdZv zC1x6Iz~A#JBa#Q15`HqH*{H)@GJP!NXc$K=$&)MD@J?1!@5-_Y)>=M^Tx88F7^z_@ z4U>)gxIu)SkC0n0uwTov9i66Or-Rb4hP7m`Sn+&D;y^>HVPIyQDK#@CE_u+1jJVVh z86$8@H4R8fNl6-*p0IMofLVj`Q}YWF_ZG}$ma?maU1J;;RWm7sOYCHJB76B-R-kNr{6|yxWE})3UBk>zJ<@?fZ&I48 z>sh1Le?4n#6Pvs0OdWz>mf>qzrnY%K2HN2Y{bj^jmLVHnYS-es-E&)c$;$g_6jx?Cq7iWZ^SQ^5=I#NhI|x?3^4wiUv8yTE|Qz8(LU~mhmA=B`xDqmQ7SI$A80iNn052;f38D{VKD$ ziu6&Rhy~H%9KY{nqn=-tHD9vcc=b_Sfhen*B*Lq@X&y(}4wC89sao#-f+cRR=XZr~ zVJJQ{N$(wOt?ZXg0ou?8HiZ2zHj?RUS%l`*$mTm#^?sPSYM84JX7sT0(n@czENUOW zjQW~|$lRs;x@@@(tLA>g&dLvOu|UoEHS;B`-Lf03J8ALX!T6NXmXd$H!;-byDDFv= zq+Pqk`jVrfS2$(r2IIT>WcBL2#o{PTTWDt!Ni*DK8ALZ_dJ?}{{w)iX4SKGZmt1(0 z>Nbi3Wh?P-F{o^r_%{7jjM^8BjbIGa`C9{!iN(A|9gU*2OL`tlvi25>ZSR-Tpkaw* zx7acD)g)NE=*r_s&Pb_Roh9)7U=Jcu9VG4Af1yY(|)6# zN0N3ah9`5)w+jz^)IHu&;|h@^vtOqKRh_4bw13 z4-)Zqf3edZ4l}5)GUwIGJERsFGSnxR&t+pcRg0Q&!;qm~GpX&aHJZn0r6c)N<)VQy zJcDj33!{_?rP7?G;-7$yJsb-+-fnO%W?xl6!e6h6ylK-hOoQ4Tf=KxPA`qzr>7CF2 zQ!YuT=l)?3he0$LWVBxTwPHbH3%DiYT}TO}c4fz^xZrS8msq5yVI{5BmOM?6T)BxB zQ@~@{eb#ML4L*@2Yi4uTPEHamSo!52XBxENxoSyZ*N!ITMe>6p?y6y&?j%b$@I^BB zD|SYP2l5`2sI?aHCkbx?$3~@o?+l|947N~2&I{2(=JL?Lry*ynSPIdOxoWUe4^l(% zC&!lJ654L8D{9%x+zptY!C5VBJ*J@(5vJ#r>wCBTyD6q^la!6EY_i%(W2N~;Zj`oP z;%3;##>wj6@NP2nS3FXhU*YDuP25Z};tX3Lt2T2#S(`~a)zbVs#?yFxpS;-0COvTP z0kV2K#&!)K<-8Woj2oA~Aper`|4fO7QBjYX~XNbaU(rI`TqiG6cM=q diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache index 9006b95573848882852df20bdc4074ade536044c..f8c364398bf0d81feafb7d335314d245ef6b4be4 100644 GIT binary patch delta 19 bcmX>rb5>@rb5>@6mh$t8 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 CsQ?H7 delta 36099 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%0AUcU|pohqf&oiY_ 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 TP^OxVVo#$n=hD~{YLfmB(v5;T diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/TempPE/Properties.Resources.Designer.cs.dll index d6d391d6881235f7b5a3423902899d7fc589d056..b96da705cbbe564277b31a551f528109f5cfaf7b 100644 GIT binary patch delta 3733 zcmb`KYj9Q7703VQoclPhyc0}r0tqMKl7~Qo*0j7V2^~mHOGeKYR>}`wOG%ArtnM6z+%5jEAS_4&03MaQ%mHHlcxR_ z(V-)Zq8oty*8`gWd`wlbC?4L-@&_6Q$`KdYTG@P2RI~Eh2 z6qN-;r{UD>!YGgdeM_x{yEbP6_7gEGZC4;tzC_9XE!jo6cVF9iH#;A^w(~)DK6P#9 zQ_5NK+iN?OY;>zOHfK>oC||y{)1Q|!>k9+aUvV3dOY&})#*M98S~hLis&;3f5E!#a zTh@rqG9aC_;)ToV7SOrRe%nUow>LhBKoP-03J=8_JB@NDDn_MG&XR2oA8`YaOTYUraw?rs8As za@fW;qbp)#b4b~Gqs_GOL`d0AvJn&-s@!y4*%o&{=}i<9!5ci;l&I3@B9kr~P^%0z zPVH*xc+*(ufLy?-UBllKXk%pC@l4_uZ=|1tbGWq5s)_(F0DN4XMON>K=qvEVI z4ik+DdHQdtJ$EvNQsi|^bA)=CHVPdxRb;==At)LVnh;hrE;KEw=z4Y4k?_qSF0+c! zHyb0$*)8-iml+b;!@l=~zGbV(g5sdHmkmYrLT&8(o=`nk84w!c$gzNyo3l97EeXoJ z#i4VA;*Ki1QRrr#zF+7HuXjY~n;bbV^dtXhZdu~~p!q35<#%}x-V@rzO%%if-#BO2 z3pE7I3(eqJ2ZZ`~@5Y3dx~e~SYEVTBu8z>!1W&P1u$2@0h0gJWBSP`u@(9ffE>CGt zbPZ3xO6UMj(Jk~x-hv^aoZ#vRz3!y&<)MdO-8t3%`+4~bTZ6TTwoFqIV?v99wUh_( zk8(?MgiQB2id-x7cYkp#Kk*$)WnU7lge#X+1lcce<)uQ|yb<>cMLF_Wp>|&E+f2P? z%zd6}jx%+b1$L5X61~*v@iHrHkEl}Uc*083Q@cd)gyj*f6?&C?A#@0xBVP!8LVZS( zp6O#k2Mv#CMCc0TMQ~myg(i#u(}L+&A&DqFp}Uaq2yYa;7){cPbGeXhdPH{!xm47` zE}?R2#zMc)5aro8F7#T|BRVCtUQ5EkMWOF&9#Lp|(9FJQG65HH!KW$F#pi_<(S#}Z zy3lPjVG1@1J%YM(vTFoH++(4Oz3GRNw3Q*Lceo7B+`*SBj{#C zPtvP!rqEg4BU&KTMv0kNFZ2i{W@5WgE9GV3F`*w&UKR#~wzx@Tk*w5+Dki= zlYm|sOn;cRCI{I<|FTCh0XGSyI2uvC(A;nm*I|>;SHm9B4xxkO%f-)yULapCo)v1K z%an&#g>I+a&O_qe0QuD(!v&_E+%@)Vh{3E zYs$wxLVu+t<)c$*g_%SF4hnsn?ydq1B?OmH(TO-Cw1zfuB0doE%u!52=FDK9=9(H& zsZf6 z!`1s#j41s~1A={0UjPl&;m>3fpDpeGmPPCT-`*|UYHM`ws~-Y+WNno3cs|*5)RCQl zud%X|YyoI!kte@ebLzevWKD+sD`*Ha=0hJ9K6T>Pg+C!A;dOGAw_ zlmo3$Hq}&iI(tt?)p)0-Y>f4Ftp6F~q`RXFzO5_U%i}H{ceqM9!nqj^-RW2o zR!Z%Qd|JBai}#E)6}|O1jtn;3oNlCi(EOjewtr_$zCPYOxU1$~%|BJsXRQW( RO@V^S!HfkLw4Tc7zX6t`kfHzp delta 3754 zcmcJRdvF!?70183_qBKLCgyEkw5GQKO}`RA49y($==A?fIQO?bJW?zuuWW zdp_UuJCEN!?!DW(v~6A5o_61rxAMDpjnj^HA6^<*u>yF|E!VQ$eC=`Vgu7jHGI~f; zpZn?15kTGDfHeis-2A!Iql@(y65KQKiEe3ffo1E(DS(NI^)2h&TS>F^tA<+@pQ=tn z@mabSW}=g#43FrfXu3yq8j4RbLO>$)=9(X+q-izogDH8Mqg;pGy~^Fo?s4TFXZI|* zDQCm@p06vDhI=|$2I+Lo)S2J>Gzlo!3M?o2kVSrNYjb1MnijP&e;#lpOxluKTrU9< zNGn*dqZ$H^* z{mQQN^%y4J@GHBIY!Kh@sdDplWgY8H(x0L=LHwDU%?c@fHj3TtY01v#zDFY&G&qf` zCEy|rrAVjI6Y#!y+nho^ZINPkM{b+*;m2I2eU_pCHedqEjOXb#m4kcB{;n}Opm0or_l6Wrw!Na~xy*8*#-NII3H^l2 z3<@3R*ma?8rdpY;o)+qG*{5isP!Gp8D{?5flFRf<@H{Ua6tS zMSaGY+KdV_MwByI)oe4WOq-}o=zL;H9ulv`XkY#r$X!0wwy9?2 zHc-PjtP>i+8N_3^&>wM*=%CR0z!}_un9y^9b3~&;u}F-*IKL2jFJi+Mh z#t3q8pHQu#5iJ*5pp768TZI}lji^Vc(i%ZNeqNz|;pnwkWNC!M5)4qHjT=I#lt`~0 z{hv}R$5X5T6NIKwtl&%6sSvX`=3OWCovvX~;47{3_2K_})cM-!zM_2?Ev80qhx*r$ zLDobG`&DEUP)#-sHLPqWn~iSvUnFazoc#v22T)(8m*N1Pv8K_#v=(y~*}=#nvbO@u zFo3ksDzdquMs#q(0FFcla&z^DtLC>bQ@ctD%GRPuFNr9nB%+j(NG%5SYF4UQsV3#O zdLt{1tTd8xQ}1Ao&h}?) zFBnSsHIyw2D7zq}>_v_~6;%Eajt;QD(^Se;pR&E|ujc4QR_a*!Co6Lz*VI$mz-j4W zm9R0Q>|t(`$cqAO_pt@9JjjL8EVc4UE?3R^Q68&_^(-E4E3e$mx}WtqTzMHQTPTbA zpXQ|>^Daxd&@CRKhV3M7yqoo>HPvz@7m9Kr+xmnQACI2RD|^_#hu43=>+j+r@>%KQ z##61&C~Lm?x%wYwsT2Hc-|{KHi2Y6|ztB*2URc?iA!UE8DO<++Gpt|37%ANWWj~Cl z=-+i^``O>mexIe3Va_dz(9@5#0i{%bz^Bbz`Vnq9)$&s~he!DbCp^o|ws4`PhDv^v z|G3v!%FkebW^|-*zaDA9>!h`k)!i*cPegRI<1{H9IPLzfD7o?`{b2j4?|(i!aFX3G zYsDcY{;$@B_@G-+T%TCgyr!joE?S;wecW@SJBshOqGzYRXIODnXvP|}pdNFhug=!A zga=N&@kmkmM+=|7`P>&n8%`~Xp13E$m(;$3d$M^&`FY*>X?o9!=&h;^T9^cjv}0w_ M#Ce}+-DRPF1DVjJ+W-In From dcf87e582683ce576d09f65766e6cc07517bf2b7 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 13:20:01 +1000 Subject: [PATCH 61/62] [v240402] - Revise Update Check Update check will now report v240402 as the most up to date version (on merge to stable) Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- web/uc.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/uc.xml b/web/uc.xml index 3923c073..2d1e6ec8 100644 --- a/web/uc.xml +++ b/web/uc.xml @@ -1,4 +1,4 @@ CVER: - - 240401 + - 240402 From f054f032ec45ac379f03650e9afd37a51f96aaa7 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Tue, 23 Apr 2024 13:23:26 +1000 Subject: [PATCH 62/62] [v240402] - Push Installer Push installer for v240402 Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- version/Latest/StardewModManagerSetup.exe | 4 ++-- version/StardewModManagerSetup.exe | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/version/Latest/StardewModManagerSetup.exe b/version/Latest/StardewModManagerSetup.exe index 1daf1d4f..ae735ae2 100644 --- a/version/Latest/StardewModManagerSetup.exe +++ b/version/Latest/StardewModManagerSetup.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5fd0251a942155a711b2d2db00f874d6b5f982be2592d913df7ad4310c2f53a7 -size 27695482 +oid sha256:aabe72ba532c3a2b7435457d9312d758ecceb8ba4708a5c834ab315b92017819 +size 27714959 diff --git a/version/StardewModManagerSetup.exe b/version/StardewModManagerSetup.exe index 1daf1d4f..ae735ae2 100644 --- a/version/StardewModManagerSetup.exe +++ b/version/StardewModManagerSetup.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5fd0251a942155a711b2d2db00f874d6b5f982be2592d913df7ad4310c2f53a7 -size 27695482 +oid sha256:aabe72ba532c3a2b7435457d9312d758ecceb8ba4708a5c834ab315b92017819 +size 27714959

+_{6W-UVAask0|_b%8x4*{hwnto5;sz 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 K8T7vyf&T&(v*|_v literal 123392 zcmb@v2b@$z);3;syZd&S!1PQ{_skGx2s2!|r-vw#VE`2YQ4|p{M?}%a9x*WXIEY|Q zyG9hn9M`<2brrL#>xyaB6;WK5HLYpgRd;p#p666`Kz-lO|L_0JPpayvbL!NoQ>VhM zTesb1(fP`!l=9=>4?igN0Al`4k??;HxkF1b&sZ_GKU=6R#6cdWJT|`gHp4#PrdNnJMZLc zdshu;D$~Q1dP6G}GPwtRjdT;!4udL5BT2pamygvHWD1KyyAD`QR{mFvEo2t{dO_~4 zl5*6s1tF4Qf+k0mBNe+^t7RqG|JP(wL3Lpb0naEY)OPHlCmaiW`0KV^Y^&8f&xRrg zv}HT82P4Di1_l@4FW@cto1)Z|w(OxxGhn2y3Ob9dcYne+wWOFNr_rwXqi&80sM+Tz z^=yq++m;lTUljCnI!7rLNh02k@qEV{jo9(!nC zPMAiPRqN(s669l$=VRLNd6TFpEHc@~Q)~rS?zEaZx0W2d3kPL$$yG88+(e&~DHm1129Gt-b1`$0bYV-{lmHC?f_^Q>*G z$x434np2o9*0kKkDl*eSgOO?DGa(a03pR$FW%UIcQ|d3VF{}B%*|@pRG_AbaX+EZb zeZe5#7ff&47ar!FNOC_%VkdFVk<#zJD{>fL{^U5D@B1+fZcD}FNK=9 zfVMgvJEDT-MD{W?IkOYf_1W(W>E79im`@}>7eQgCV-bdSj&iI!co>n9%+3sEGC=1< zItG9#;#BL#hJ-g88Pz&_736rkNZR$_!>MZRVM2@K!qlm);~Nz5zC}R&9EHKfDI{90 zyxqw4Ik>8ollwyA+T3RnpJcKYHn^Y%cV2iHtBr`?v0r>UKr zc?wb2r;yW}PPBCW1Bo8@Lap46J;B}FO^OG1NO`bRsx0XAxac0Y15zU$&mxta<9L`5 z+>Qqk`25~O%-emNyny#RW5^uxR;GF7f628#?_2%o#e3^X_=cGnoW=rlszp+>pvaF1#UXboHgJ#KBHpq7N=mt*f1CU$wtF;K60xR@a}d54Xm%$Ain4 zJrALG0Hk*uh+u`|n%aY=;*hB`Y?>SOn}$XMxsoRS#n(CxY_snM0B9ji6l;$*I29GRNl)0*d!&%vO^euMxmI3{1>vD^P9UI0`egLdQpa zX*UEJoU!m^_RYFWZN0;NTj$v-K52pE2@bW>3kCV!bK@Bc5t{_m>X>i(Q6 zN$w}UM_<8LY+w00+5c^E({nX}>VV1djzl}*pd35CPWlFUhzt*N@;vNeUnl*BJVb_v zIe8wLn>y)ImHq%E=910YstB56W>MC# z>_i&d)-@*@)9bvYVCL%TVTDVT8wtONw<2`zlJL1pyrUtY#viY7$D9dYLT1z*hFU>l zB9RP5-L+x-Ga5&tZq%PxICAfJl9}05P%Z17$v_76CGR#_wUSjG^p=q$!6MZm10vPI zXvi2QUqx^47_cRyZel@=%Zer+^}`Q8II=S{on|`9bcIihZCV`b=nvBhqZQK7g*}2l zd63UP5?1!5(IkHwD*F7HEGy|}Ry*u~u;p>Pg&FOy8Rl105MwEhcEun88&IzU1=2&j zUxTr%T5ZJq;&|wWNHF0oM|8bp9EX(K%_1mqJV0_zFVzz#P4x0EL~&Mo5o50Bm!KZ3 zfKexN0@$6*i3rm==`6<-qa$u>qnlZQtg?7{sxlZ_TM_mqplB$upga^jcgcuPoThF_ z$aG5KlMu#h{HcDW(pn=;UtutKIS|op3u^pPe`93CrfqoQ*>-fIlj#DJO!gfoBelZJ z(=$*5Y=g0cx*`#8CBiankxoHe9`aTpk`+NFp3JF$nbim?HphakZZLyk5ZQ#yf@@OY zq{aYqF!MK$;1bMqP;EECr2pikU2)@NFYT>C$#jL&6^B6+nbUxh27q=tP$F{%^Efx7 z0~PF!wFK+A>zJhhT?BuIS31d)>mb8B3kY+3Pi+%6`!1ikT<>g(kUqZ;GHU-98QA-n zl3^(sIXRJ+X{4Z&oa~9PW9A&zS|#bAn6oTVo@$YHIPuK6pn72p)z+G#hyq`zHRO7* zOR6YzlQwWG?a7GKI@w6 zx-N#Wb%{ zo#e}0fwZq$W!8~i?Q~M6>s<-daTNkQBrwNU%qa`XNF{GkfG@Ki%t7%-q|9Ey(60u8 z!@7h!a}DxZb<#AWN|)B*T}%GmuzDX*XLf!n`!6VM*Ijvt!K9QO5-Q}G;(WRxVR?~Y zwj4ictx*=b`c)db!uA;7Q((|4)zyT?!c8*QQ;V2^PNHK6P@5x}8;~n|RPN#SMcI0k z^=?FN$4v-uen4Yoe+LzO-p$C#q!5&)1_m?e5X=~c!Fct8%q_^PaKm9^ybR14Nx!x^ zQZjX*l;R%HQ3KS_xn`c2YAU=H+}%`{kK>~OaELU3a6hM$u`zD3-;(Az%CA}>v!S%j z{lU#P-^TiDx&%5M*d?*azdRlFG4!JrV3NAkjajPFwkP|NtVI$rXZSfm5 z;}vh82k9I^9=5irmDJsT48yY-#Cm)co0rx2vkBDZGY=dGpw5~=)W3Wz#g2{!va>*x zX{aXPW-kKBJP4k2g`2%B4_Yh1x30(sG$W#xMg5tF!0K6npf%)aUR3!}YKiNJZYpM66nTrA_peH1SyFYwFXaRO5imW02I;x0o)G zQWg};rYAR!Pjt)%AC9B4H$X=-xSfr(yKF5yYz$H$epDou4CY{DbD(9j>S>U%NP8*O zrj}i)d}xj)s;*WSu#e{Wq()4i(v-*9$`KYkK`_(t=An@}I;!0gwKzCcd6GmpFpMsT z9L+Xvu`x82e9y*1Yz!Mpe#*ueY<{j!IY~euW*lK?V~jbvOkq&TAF2&h`YQvmSf$IQ zJXGn%I*x{Nu^2a>(pJt{SfLDm$5T);M?rQ1aC~v@DBT<@aoD|r*apW5SQ=Y^Qx?C4 zY#2^pa%>RJUUF;@$U#eHyPV2Uj_q zW}f{^9$PUyBjeV97>mTqQcHb7S>ek=jTPG=h_uxp)mE9>HPpCwTc1$lzHLKO)7*5> z$3rx@cCfK2^9)j{Hh*hsn|#mY$NjA}+vE?C{9s~1S^5X;isxu{^-#2k z@i4|m7fkA9Xi*YzekHUK*iPe#TQ*uOFx(a#VdIfT0KDih=-A3r7Jpox?gMmgH+g1J zI5yC3jshT@<#9MB#kZ*=5>M{v+sNT*2FJ4yn{27{`!X?fMY1j1RF+@WvB7?hR8s_< zR9b}N+poG|_9pa6$Max}_`E+N%3$-C!f5pV1W=aRIhc77iHdOca7gyB8%fpp!`T%D z5C~^4CBWVyRTHenlfXvs*SL6Si3Xx>M+cgfc?nrTv#Q;(&8n7p85B9&aIg~XnKA3y z&ou)}8(hV865c5^9E?4R#^r#L1TwZ`24XCM{^X7uv6^eKk}vZLYcYO!588}z7WHLb zMJ5i{UPDwCOth5;8^dj}U}M?HAvh5Ad4EPeH`p%v_jRTrFI66r<5Fx+&mg7R*Vx~l zO8K(4(+pTEBh|j_vrJ!S(jOJ`O>G|b3MnvsQ%ayV`4X}6f+U&iVjX*<7g>e?G6+9CPAso8#i0 zSAws({D|0RMTfn`w-E}KIBXhcW^basKg!0&n{x}g>gW5kfqm++PpA5&e9Zd`q_mDI z^st+G3mNj>>Sy~ov#CJ-pE|p!Q|4_j=R5KLS+|#t2IIqv(B59?Cv1%e7q-Sl_ftQs zk;)!kk?$`&(nx=)Y_V_5F_`U}|6lc7@yqMUPg1PUQIpXwEWc52Gwhgo2SLPbXp6Xg zMz&-(LTJ*v7+%=wX5SESi2*{%e!#5kR}5wE@@vQ%1X)>sC1%8T*)dxfV6U3$`T^c1 zk9$2x^te~@sp+qvHg}W4v#%5nxA4-1%bZ9p-@GF>8b-5;)XWhr#Cp}{$|ZG`xIuW+aUmVgd{Rg!GXFptuY5j5)Z%77LzMX(L0M1+JL)Xo+^Z#C zz8U8&`BMt0Dtl0+W~#;|Dgd=L-@Xhw+RW3v(PtR{ss%cBeL?w6Tu;0&nRNLe?xt&9 z@1Igl_Bv=P7AoJ|7xmP$vY0F7ysyB5YQ29U-o$Ecy{>8QY z@>M&H!|ZTE=YrjCMlHXL7$;j-RUl;Bn6~*-iup2Wqb{RN=0AA_Tf@HWZeRnczT>~h zt#C5m6^Lcw?Ast_zDJIefoI~J(8L*dWhDD|R)Fmv9^S**e-=5h&o%95K38dx5H`mr z{d`$p6kGpY5rjPrRx{)efE>|KN>5`?LAgD_CAkh5c@`Q-&EPt|mZy+p7*;I|Q8(i& z)Qar0x6RIr!+{yaMFTi+3t%_k$6?)_J~<(qiz5@+7j8sm5klk z+{$2V?vGEhWE;i9;*1~lW5D`n{mN7&*z(ISQpGo;FNbJ z#RMJS%wPN4*h1gT1PL-`WV=k+tQ0%p)V7_GBZsVyoh6_mkbjGyBA*h>wcEelx_KI_CR~UkGQ^1Yw zFNHY)Im8Ue-a1FIcv6u!h3G$QR3bT6;rLt20{Ow8((# zigQLf;>2UI4xu=W2oR20;DqzpQ?Zr8OySP;?Iy3?lUF+4)xhbXXnU1}>k&!| z&|fl64noX7TdK*|+S_LY)EEIi9^AR+6$H*IeXZLWi9UI&KXR~EX$GKDED9lq^3x_xYG4Q)(B(HFGF{56GLaKdSYLS_hcl&26{JV-QV}yHJ3ZDBWpz&6 z%~Z2;<~gn(tCu-LlMKTHr`!=9Lg(CxF=WyYG1udS0J1xGKyGuow#9M0-=JL`xXcx4 zj^vmv&leaiQhH|_&t%N!4M{-ktbB$f#+j$~c+9(xR$^U8qb~kgpZAMw$Diqf);TJL zXFS%z3lOY@_aE*?VcvYWSK@-l?*nLdCccMCk=i%Kg0xLIQ@c} zl8?(R1Gft+gxMKkUBJ%h>f%8-DIR;HI=6s)*+yjK7D{qYCKpNR(Hwcc+&lpIf}igRWnB4W z9AQwpex5P%LXyey3n5@KdH&$4OSDo$ITkTXKMLN6I}Sw@ZjU?$#498z?i+CN>2ctW z1~`O={cy@qTqhdf>73hI<@3j5b=jk!U55<5sOw=*no0{Hk^Qhha6oy&7HNp}$<`){ zMY^!1F}{!84}AYR`abJy?k0toVp686-q|w> zexIA^gT_Yv!BE&((eA-tR*he%I;;m6?MR1p8Xcp5)!5T!iQ32hiwPjLmy5JTsk$ zbgSbg{jJT0B`&Xl%7Vh0!K};6bmZdckc-Q5X016GO&wm4YiH~wA}o>gXZoSNdEahC zn)jYk9v0nH#Gh#@A#UsVWv++CG1VFgij(tcF`it6?zq=<2e{cCm_GCG{`P|&BcMme z&ESZ*z8p4Nez%k1@=@r^vS90Ar<1cvFw-CPW(FWgR|hi#5zG4y^D-CvNvD&OHQqGd zLURuS-NR~{q7od_K85C~k*EuM%zWDl>Sr)0ai+LkFoRJXDR(+K5rv9X;`K} zcS^F;{&>aaxII67Vw>~BB;Jys0eCRw`C?bh z33;4lS`&FX=Q*z#Eo?2V|Dpe}{;-<4hp8WX161$FD}|00l+O{EMLBu9<6*{2b)kEW z^P=N1*E~vVqS=^hNb#P9CVbs&W?8uan!`Bf<`_;T+Y&bBUCy1v4+8R3-@yZoLk%+8%1-!)%NRPg-#}&5<2#Bsca(Wai$8%zQH; z%+QrOvw!(#A0*84@?1H#c3XQn*lpu9+x1>SkjB~Zi-=pXb?SkQ4a%gTV!F}cd9~YG znq^WNJ>{?-sK`qYh1r_#Pm8k8=$y)g;K2RiR5n&d+1JW_ZgleY!pY(KVu z($0*Hm)ZCj#@tLw0*qNp=*SZ!@sZQfh8lCEIvqoqWPZV36c2k*I_yQ^u$T7++K`-t z8R2v0;Jz&dK7fbS@}LS2J$h=@ZNt5h7h zoX%lz@%fgQ0r)QH1IU9dq8(dMlxxHolyf@126LII!|fa^mBd?IOe60VYN*IDKkT7& zDuXRbq zm05zlUB+ylS-LDB;Hl(3oFlAUxTT@jy(!o7yArc;4{0Glk&S2xi8boGao~^CQp#- zJNXSt+)|(YSt`V0`a>fk=0qA#wm1v17wr8F<(v1w`*uXLgL1V#F|sx&_v-6MmIvih zePi=Try-fA;8I2%r!HBaY~YEwS;G~+GHN=-ocGcopBjVg zLW2-*HF#%Y+GGaGje|`*3@Th^;2?{ndNskrx|@{7xgy35P7iz;i~%%*i&U^Y=+D5l zBgb-(R+Rb#?&MX`J=3a}y@&U6b->qI2c-YMsw1M__bD}=eVY!&YW#2i8PL}_v~i!z zV=!L!lYCEM&|ZrS!*myzT(6t`(=iS@;VNWiJmQKlM;aIK*^P4N>Stz*3M}ZC2;!xSAAHZi-FOHsj#S%K{ArTa|qrvk2xA0juYttM8Ph!MjAc+ zmo}OOq?D zt}5Q&Yazy)fMh$ixbRms2*EOR<%JkhwZQyiKBg?S5{dhNl#jJutwr8T_!l8_$=_SZ z<3AU9n8GyHpG&x?AimVbm)Ur&jW1`+{na!pr?91DNo*-u5L-%?!(#zz#A%A(#GwEe zu2f1VaumlMx`>l~`7Mw)fpeMJU<5lbTSrnWe2uN~%uG7pBJ_;BdtHb`kLx(tsmubQ zxtkOZ^LeUk?`?T}KQ;(b$@X&qJ zuWT-l`r*|$iU8bX*S|;9@XyTW(cBlh@W)AF7eA^=yYiwYX)B!%X{OB?CKs57X0U^a zERYwRpcb?%OV!!SuWpuKNQLCxmuP06?cXhZwzhI{CK9PgHH1y8{N}T(sJ~d&jMnt# z&5>}c8#XPmdMtn*c!fC_?S`}QQc^WOXGALd2nIaT@FsKZQnUb@m}Mi(5`b9(M%cE# zqOq&xs2Q}_3_}NB4YpjHPd}taeQIpSXRF`Cc9UT{f4YCye%p4cTkKR)s!EQ(BgK>O zGLyUsHYhiD&&R>GO2$-$lOIy@qIL{+`>4sjs}-ND2}Xm`T{0t&gKMg2u<2L*@u>uc zNMtNVIx-UWvbqq~)n(vgSokn`;=Ju}R4krd6Gld&G$RrX7iG8h31^>%NuzG|15Tv} zupC`(%sH$hQo>nZ;9S+alrwc$C>q9kvL2;Ui=sjKn8F-8HDNtY$Q9`lg@S0D@#a)3 zxam-ayY^?f-8^^c%jn5}#1!ufXV3$Yx%dE5zPXr-TTvbRBgfwX-*=OT*_qMbaR4%X z-hl{nS76@bJ4N%I@D#KWSEP1>>ba%pO@4ECl*F~UBPBk`WP6xl@G?x0w>#Kz1+|m1 z#M6?;VUJr6$G}6t@hFBvyycAixei2f#5cfDy9_nQY#5m5Aq|MJMnrx7Smq$8So(zL z9gGYxlCKVY?cn3pR=ix}VGkby`Mx~D=F)HXu(FCgW-_-QrMP*QX>46*zDVghj0*89 zW>^Q4dbH@>q?jpdAlgow`4rX`KK_;J5UF;0YGJ_Mp(Ng_YJOXiN-ry312*@Cy+hED z)`hrRi+EvtP+_HAxrC5s%cdG+YaPAKNddAj)$BG_>#Ekzv@&=G56 ziH^`}DArhciZJaM44&!R@U%u@N%L7(FxY{%N0MwG_-oVG=zLr=rvxH)>man7JA->YaSJ`;Ijjv{0JWC@x7IJc9Aty6e zYBKXIO_(9{1@z<0;yZ18myPeX@jW)a*T%oKG4`BN?tU9TVB-gE z{E&@*XXA$%V=cquql+s;tn&Ak^oWfgwebcUKgO8j9-~(N3i~E14Rcdxn42oo+*Fz7 zrpmljO_gz{I!Bdxo0=-)Hg%3F;}Ug_Dm#^BIjZbbmglIlQ(2Lt%1&ivjw(Bqy>isk zsjSLTPp2}Pqn=J>b&h&El{Goh6YY5%nC*JP#!oWN7L+C#N|Oqug$U-SEc4Thc@QEA z5T40rNCFwp<})OLsWJq&%@Gu;$P4=eSyALU#`6ngW zkk60=GX9j$kOVSb%x6df85{E%l0e2w`3y-Qp3jg3GTz8%NCFve<})OLjKAbFB!P^#@)?pq#-@CRB#`lTK0^}7*qqOh z1Tx;qXGj7W@8&Zkfs8Hr3`yh%CA+}%lU+OB(@O2g`Ob86k?sUMERMLh;Pp#rm=Zux|L~cmzl=# zyX#@A$utheT@PD4rg1VZJ3FR_F^vrl(>UpNJuL4`k3__432w&`oM17_7IN#5_K;i1 zz&6?Sux2xZvqN*byoH}k?v9DvO+~z-n4?RX_+@gy6KTtSnlD1LCV#95C4aOqeWI-S zK=#<5^5mz}0uL-oq0-t z3HL!z4VxHz4zgWAD>AUYtrW+ZKoZFKdp<)F$oL?iAqixBn9q;|GCs;@Na7T$o7c|D zPNgC-?{pKL$y%SzE6<+*vK)TH5%9=C2R~clfVYMv%sZ5QRsJ^-Mq?j>Mt_WYaqWQ{ z#%k3k|LXzSQwp07?1?ZUuoaZehuKqp!a|)4Gw{4f20O@ze3F!bk8%5k{ezH-IHXGsi$LvLhYDLO|IwK+5Z87CP5-ZW81karC0 z!_HK6>BntqTgR`_-0pwSp18BkW+r#X2gvZ|2qNrHBfO+6?-G0pea^F4+_Cx$1@JB8 z7l`m7f7}UnhLOyk4?}d6L1OMpK)imN;B+#TDMwxg?vI0*YQKlwZzMg*iQ`rl1v&V^ zlz%cdzq*6DX*!hNe3H}2+#2LF?x~%RLF&}nLJ)(!G>%2fH;=)yc8#eBzm;MtWa~E7 z1f0emQ$hSYrYmJsys$sFQ{10?2*l>wvKfa(6g<8?7vYq(}}V& z=)tv~TnfEg5Qa}14nsrvGNG;GT9TboGW`l&s!$8wFJKzM(?izn3ze3jRJy^qbpHr3vlX&NV9gmwp1@nEGJCMY^{bC-kiW;Xm%;|JdwbL0y=yN(lh|HCs zJjYDrhLJ0JWKN<@@{eG?T!dvgWkhmt6+Zm%jJ`K?Pm8~i9&sDLZ}Yo#BO_`vE?3@; z=58`~?j5{%a%%XKOe_~v8!-lF7RtdTDp0&UD6gr=v=09;b1L+kibvjt;gnM=I&|C! zsTE;UBF7dXU5O~ib|GEGG#lr1RwI;GDq(4~dAmZx^4(Z^v1OpuORidscMP|oCSvv3 zb76J4`;x=J;U_a}Ya;SCbk1u99e;qz__mmJ%5{cx5Sbq_vs9k90X;PKQe@}VL+#-n z_a?Ne<7A}yYhS#3eug0%=iQA4l(>5>@~yjL z$05)9+xj~he&p}>(*{51?>@B$>@Zu}z;bAM10wjl4{f7;y73RYS^9d?c$FyNbk>1S zeu5*{8!5E4527(!!0I@ilGVwawYk0|cQTaU?r4p|7m36d$6mt%hB^wJW)>{{AEE$^{}n50Az?JOFGN?5ortJa#_x?fVeH#iZI0KL~U)3!qjm4NiIq31gO!sgqf9c3gp*{)@nbeTh$w zjcag&(v8&wV>NKf#*^&JjTZ3BIT$U`<30;L?a@6c#dENlFhAn8mmI?0PMA~eB?o5L z;BYmH-yKRUyQcUEIEo)Q>cFG6o5Qriu}%x)=go%Yt!)i0QclB}EUt0Eau{c{zZqwL zWS3)q*^ZgRfg$jqu5QFXY{JZeJJR_%AB7eFm5x8@ZRt;rKk3)}_@h!K<4>TBzwIG& z*McvZ@kb9Wjz5tqr%%g@;;Xv0UD;{k%&@boKAtAL~F~PkZdn=cs!=rDFwfQ zW5i+RCKIMPMh2MDxY+anY)?UQhmEC6>?5#XpScCSjeXdzqJ5;nVxL#7eb}@d1F_Fv zXrH!@w-I%ZVm0~Mr(|x)&m-6?bB@Bd{~4V0@H><|GpDLCD9x|QDeirW8&@i>pZN`x zlCIbhWZM-p$jN6puB|xU;qPi-&Lsz2WoJZ~Kf;(lxHd_5kQC~?2p(787R-h)=J0`G zH6lJ0;#tF9uEI})Ws}Uk62n7o;mCEU6S?8RJsrHR$(+VH1+Oyrl!A47BKw)ZQd4>Wc3Bxh)7?8kJ#;s}S?s_C8x}KhtbE2GY-;u%C-F{!Fq< z>D+82Vfr7<`DCzjes4SHe*qCcJLd<~?il#K3Qk$+#E1sL@~-<$j(}fPR`9@ZbGDBYx5hHF*5V4FXvhL41_D!Rzh2&m5{2kIR!=| zvo0@lVTsJ_#VBUz^?CZ(61o-j@4Rrs+K^|hEMbjFgT{OgqsXn(=IrH7xF^xlAFIoH zXxg0J5y|W|d5ni|IJ2yxyRyw#MQOSeo??m3>(@XCznRKK6w%)F-5v~AI<#@(etc9A zi}lW{)QS4@vaBT8x83Y`bO%gQQd=l{8@2f}0`CXNG`%66(R#Qwb@4vcM`YuOG?n$q zS60c&Y?m8Td3cC+WpwiCIo;QZ22Gj1`7)Tl@@1Sld+#%w9H5rrH?Om^8RvGRJ>t2! zh{oU`m^)_4>SWH^-0mbhos6<8P@u$d`sHgmwxkxzx?x+^#&Dh&>=Z)pHW)rZ0Fmj|lrft|K$IU)jTG}`*w+A><^PR>~=GT5| zLe+RMU?xvCQq`gCsjL@!-3Wda5lgP^o5pfm{pMrybxWz5uoDd@7Q7^KjiAOE!`H(f zH~>=<8e_$JvY!@3o1yH@GXxvvms z&+jYf%O&%vz`}gGXJNiF^C{=S;(RJnW!?M~if~`SDJ{o9=F@*6w`4w@hkQGq&PVd6 z^C=mAw1>t7`1A9rPi;nD;}8vNAj_dydm*xW=u1Gu{D|p_?m&9T!x5Dm@^D<`n#<1P zkt@64aY*#Ie?v`n7fg!T1>cBH_V7TRs&K-x!OdazkcopbQ{(X!2x5EdBWgY#s|kc~ z0D&3YZS9S-huoelkq{-Yn@n@2U}0NSW{L+Kj}3)qP@L)8Z`gA7E$@4xJJoBinJ(qo zKv4kuQ*_ApC#x&zPl1L0+^b+O)1T~zVtCdlGIs20)m8-tepFPOM#s$Bw;C3%$ zHN~xsd5Y>d8xv-7k}rd`D
6$9tS4wnoH^4~IRI5qXEXKLr%891Fzqj?-xQBxNW{ zPaJmvrR^3C#V6UqWxS<*!H2r5%=^ zNNw|47u)J|E`}DFbEQpIy*%|yr}GF9I}boy`oiXYogImGz!91s3BT~pMa=}Rz-W^;o@CLGt2nq zDjdm|ZF95I>h=%lVsxvHRztV;mZEOe_!P2|O5iy^RfC_>MN`8alaYg86{)G=X}$E6 z^iZ_M9OB2e&9s$k=`>*$=^O_Ob{EGY%B)8}pk6@l6i^k=7X=gr`nrIsfd+c{8ft(h7f=jnS0ZdWQZ)_L`2R&*15+S( zae*fRw2CN34eNmJDbVVH-Xe;FmjA+rb8$2gt&7%oV2kC})W&M!;QJ@}q@Lc@y}fHu zP3ue~t~2%34gpncK$+u-3iT~7(5TCeM654bk2(^jjyUfA;U;H~8%G~@To0MNkCy5> z2z^*`GpmBs8$fODCdI?!dn(7t6MI`Zs=*z+Xj!y8S`n?}FpgG7Yol?DhC0H zG}?h>+|4axsf2h^{wzma(Kr+b__(WZKN>$Jjykab)6dKT+<*)@%PBdhe;K~Wf2Dh? zqByR_;-~qwn3b2T#R6q5hJDqd!niSOF$ZIDEf%S=7W1wh*J2JWxp9Z|a;7<6knUib z<4D%%CUBSRxp455AMBk-{&deph98ahW;Xoi&gMgEqM3iN=VCcDw+oRS?|7}r@ou;4 zQZYVC0^N-1lab<>CSlBr;Kk=hB+8hUPf*=vxJ_ZG^21}v`2!rO>tL{!I0&AC@|!hM zyeN42F|ri+j0Fzawm`390a8qX0k!}>CtB8Z=(Yu_iUmk91qPu&ZUrDbitWgIlr+{f zM?9)OpDR4t5gx@>8jl)?4B66cvtJ(toAO_&PZb5yr^HTqpJMeTJ|$3mY8q_1kN6Zz z8=qpI7kx^kicj%|CVh(Cmt%l*j%oIn_|Xt>l=x9M^6jE=3X=IVLF}gayTb4XGGHIG z3Q?I`_=FAvS6z*N>~A@fB3sbg6?WvWH?G0(Yn_ZA>(1Xk@MXuMFYHB0!^az__#Hy? zyoEPjv^}NBnUN7Uw^ZB|h-)mjw;6odol51A@u%|Yek^Yx*jihh?13m7^oY#!uGC(? zEw`LKl2Fno0tM{cPM&b3mRn=oPXf1=>sjD)=rL3Q{L1XgTD zPeWK8a6CL#rZ#suoy^5+u#*_~)E=7OiLwyH+)8;^=PSZptC1tapC;&Ww}Ul0Zj<$a z6c3MqDekI*+&)Q_QWXv?ZwJ$6*;N&@L*5<8mG206590G4Rd4r8)X(SLNh-;QQ0i33 z8Mx;js?Vopzcz5EJ$IfCS}X7s&7e(P%KwLs{9#$qdo^Cu7{*A)!QV*!s5<&Z-Hv~U z;2(^nwg=PS5Vr$EP5FO(eTfq>^gVwwOWlHhf5AUI97tK52uTc9`Tyv&AZA-&Fv&+r z_C5Yw)zK6h=c*I>GxQH&IKR;yTcf6oBQ+rT6-`ZpT=jAP)6%Z`LleUfBwQomwGv(` z)JqykEo-El52xNa#8sJo?pRly1evay(!{WC0Q1kE!f;aKokJqZ34R!RFdLn_Tj|(TC~PeOT(u0K@0nm@`+>@B5jq z3@{v=X1Jg!0tx#`ctn5_-V~n0q^^^PEDcwySA!St;;I(mnU-X!H$}qxY3j4DaNdow zadpwuFi zrayUJ@6THH9e%;AxayCbxZ2#0;mVN=hYe?#L^`5gmU>lyHQtwG+1l`(LmJfSQ{1ur z)H_qJnC_|!>I2^w5i@=$^C+N4rx<&^b3s}p>ChPH+~^!gIModv|_Z%Oy6tzICV_J zg)QS$dN()-7Y&pbDR`NxT#x6Gj?`%R*qZyHEDza;sO3+L!I zmTf{9SC`B_9(w+}fn}EuWh?$No#`8g+&QG5nlR#u>HX9n((IQ>eNRg_sH=x^6jThS zgz*wSKjzLMGnIevhsaN(mKOE(oPlnO3Jzqr@9cr@9MwHEIAV_adOX9n5kd4z3r5Nu zd=DHP0XZnOyZVp&-@&8RdFTsQ9kgrZwE60`bZ*dmwPhs3w-NSJH;IQt(27N9UEk&r zYEi@9!$zy!C+#(Tw3<9?FHThIiV#DY2XPQ}x68RFk7i)Y(vJU^AtKPe?U$T57c&K( zMS+fhhY|G>^ay5;x!{Wmnky)T|C@@&Q|#(#M^0fIc`gl_T~tp8vO3Z zO2}NkYv1wh_;Jm#g4)Lu)v5`CcC~1d(wNZtCi{+m3QxkgAOtBxhs~JWj^BviL9GWG z2*h9F#jzgH&O+;t8w{*r+N62ucKo{Q?o#``BMib42hO=|^U`17$$D?0rDyFwu^nh1 zL1&C28j3Z6THiC9XgK~4qeSP8{Nv<$JxU!XQXaObQ_#LZOYy5H-GUCcw3WbB>e2wq zZLiK!-O%ibDUYf$&q{TqnBh0@SXi zSaiYgM+dgUDz^z|!*-7jdU8-^0CQwb8){q0W6Q|cPk zS7^`AA?;R+9uahh8Z5LKvq*bfO%T-JjRAT}O%e3UV4^>$8G_Cf^gM3kv35^5-%}?E zdQxax)ha=!OlP@|)p^?2ze>Fl;W+w-`jz(42QlJStIyO$g8E~{U#-5vuaFfv|3d`M z!_ba)^_^NFFFSg^G$r}an+z8`O-z?}6>?Yb(MBggtK^ft- z`rZ;Ljr#XOyHCmu(2teS2I?nDP_uqoIA0N&L-g~4ddVEpre7`L9Hlo2ZGgxeqqmgM z#_7N6RcI|p&}@RQ99>TC|?0zb=u2UA*H%uUw19x2yd%etZ<@ zE>eGhR&H0}AFVD$=(;C_M@8p%e^)*q;RUl9 zz8hh9j^X0WwC_I3i*e{Pel5oo!f*0T`oEQH!9TLsTJXGpbbr-dwHCTP-+MtY zule|)>yT64%1G=NbP4yP6G0^y4Je}`4353 z`iai3_qqW&&nIpLwYv5Wg#S$x>wUb>9gzIlaE5P7xJtsmmNVz5K@88WzXKBP9np?( z&G>r}woQ5jVM4<1Co+8>+R|U$Skj`8%Wpv0JtRD`h3V5Jd@@3Psw$sG`0&`55Ps{u zj&MTVI|%QQe!nw8E7ink`IlhNyp?v@WeeHq>|k)@0sM%Pk@>GAi`MmJ6g zLn=Q+`moxskTy2SbF%MBIS;G-9yxpV^5KAX8SJT5c_M^#CG^qi)HuV>N;G-APpEo+ z_qu)zHzXM*dWWj>dOqIgedrc1XIMRoVYWBJ>slD@GL_*$l5_tMrjPO7FSPOP@(M^> zUe9pv5ey$3#BkKmit7H@H_XQFz!avrs)z4MYo)=9Yh#Z_V zAiP#QWczBCI#>Mj3HU}{+wns^$Y0&UaL2(68zo#>&-A7w!{Ox&*Y)E8_T1WYVAU7n zX{2wK@Z3b2I#kfA*Y#rfpBTfhD@Gvy_Y$s_aIR>wNz!M^D7!|y^gTPis9|~iIFw3B zn2b}-_d;DOzHwLWWKiFevj376-6!GYwbMlh_SDW*Gojmz%3TqDB@)b7J_mBN=&5DA zYtc}PhFVcWv`%`T8frxiwW5YvQA4dxtES|IQHB#Gyrq)qL5X`YL4Q|Yxje+gJj;=75$}EOv1j^oXrNOIWE}0qtykW zL#pHIW@kyYtJd@z6?N5-!#j~y6IVmR8SWVfpZA|DIhP{*bQF2Q+cA7=5W{tS8Lk}2 zdG&(O6(a3w;lCN-7wO+fEq5dT59)qNKZdk&u9o!ENQc$)2#-*&A?)$JCS~72_{hv_ zAo>0YYY}dl^FB18hFbl4=7&gU%2=biqYv2;m{3_`1yuJ?MmHxXB?(aT=@I;4g=|R|E zji`FQroZ}I;w!PnMo_2vUqg7lwD$x*ImfyTZw9}szT;}5o-2EYRvI^%-Wd1@>23Yo zc=%@}t@{>fYN&15ryxPA1IG2B?A{15-u;xLCbI0-KoBp8@}4;vIi_rp|K~YNZM$nV z`!^b6-^F7^4V#cw6Ne$Zf9!tHe@-jbGWBtaVGCw*SIvsh&!6{i7u&4~+c~u+v{(IN z>?9Xh^!bhYgY%)QY~{Ko?qc-Q?3^W$LB^`gN>AZLsKDZ+#3qb)0M}wKZIkJ_Y}uzOY68 z1Vt_SIz?K&pf#a0`V#fGv^@uo*41i=MF&TSMj1}D_WD@0I=z7Ih}Efg3+TRBy;{;D zwd-j^ACC1_>n&O^@u5&3b(ckt_g#elC*5Nfos)bh)K_gRpg;NgsV^uUbg>%HZ)2=k%`2cc zVuRKBf>x^O1J~n+d2h35+R!brl=2Uul$GlBa;=7`J9*Fxw7v6DY?ykmmFVJ7d&8GN z8w73Dt$n`+dQ*_`o)Kz`pbP5Oj`<-rLVa$^Df~iT?Fcm?EmG9`y+c5|S+rr7i=B~b zfkhYetE?TRzO(3)L0{_a)Y3Ln?u99}wWHN~iz@qksmG}IEjpw5OFd5AFw}4^ZNAHy zpzgG2Ve`e#B;_AwXm<~~*qN-F1Q|W2sAYoKhW@ov)Wd?d>P5YW)K0}|D9dftmF0M9 zR+|J}tPUSFtaiGp!=(^f>5+!fwL7Q_1sRz;l7PRb1C&xkl(Lh$UN~7_6}}F=SCFZ1 zXZ1&m$T?GO6vX`pU&ZwQOCJI^;+IPb4wY#bvEbWR33xG~C zG}X|)AJF-@=YbhT&F;OpcCPx|qG1CwwR@-y+ZkHRz~gG?saGx9epEL;CEa2WwAMJ= z|Ehp?3d~nMg0_acdXLr%lslSIwuWDABdWCMZhHX!+SE;J0YigIM34&ItgDUQ?JwkmbXls}VMd}zeP7tL$S$m9{UqH{-9;;3i zWMm$%)(Cn!^gzEw>O^&hLF&DkKLk!xms_NUzEZnFU2jo%=)1KitGfiT2CYs}4;q?C zIYm8eIVt57wb3Fc_Pgs&_5gVbDKo zFH-ZylhbH+sX9WCvC^gLD1)SiOVyNbns@BO8|LG6Rr3z$C@=eir! zGC>!pf0iE-zDdP!PK+_FUXKu+E$Cu(##mqcCN;0!lpD~mJbsHBHq~%GF|%L%Zgqo2 zhYj}Pzf~J7T0U@i`~el4M$R>%hS{U_?^GX)Zs<2Y{yR0uqU+(wzf-Liow^IrD2twj zNB&MtFbJ(}N4eVyXjc4DwL#Fus=431_~UBI^t_&X$DdGh1)0_9DRq*dt$M-4L*h@V zPb`i5o~Kp$4lHMOCC{iPK^LoqgN}?pqYf8zfzs{A#-CSr30f0M^%<>SR1aG8Of%7w z7F|3i6nas8mZ$Yu8GliIZBfOn(|~@k$lLC0prB04YeJK^`xQ`?MK8=6tv9MVi$0iD zr8cVm2Eh`S#a~jx3h0LTYwDH)xazmtp@F4IM1$cNqnPjv*@kiEs1Yc>m1V7gl-EDPy9!X zGDy7qKWe9KP)7kx1n0R1sj1$a#CPgaiz3q&0KH++9i!IAzE`90-kLQ$J$wH|kD6f7 z_yMDJkD6}L>(dsg9yQyd&oD>!sCgD$D`+2spxL32a<)P0l|k8rPk$?DrP^V@i3z_R zwVSDrUhe7%7QH`)Xu3sh6ILZ$J=>x+;}+qxdY(n=#!Uy>*P_3N&qxIIp%#rCdlAr4 z7EKy^70_`8L9<&DA$^xY>hiJoCd&0=7JWJ95ujHEtyB+|KMgc~uF;czU7@F0M6E0I zEQ{VBvmsQW_ppdsSLnShqSh7qV2h}AgbUzM)g zU20c9K(nYm+oEZh3!-|HMaPZZ1lqfM7(F-F{|&!M_JKu%!C9?8w`jXvs#LZ9)}o>9 zA17+G#-$DR`?&TmfFc&X*mty!>1vC%_N`Je-P@vbCyv&&dZ0x&OsrD1y49k4;RSI$ z%A)66ze&XPM1#=2o&|g`!5vZ?TFyEBxnzKIEq;Fe9v?dfOuc_;=@3km4 zkmzBH+=f0tPg-;s`mewKqeW*8XaVh2gV3U(K!f%cnd)!5tdBM8O%`q3Wp>?Q{nb9C znVHtp!}cTMoIJnI)8Fn-#JT4rC#7Qt2vRXTbEWlOg0|`^Tz^aJLj=4?IRAn2ljmRQ>Lp$(zg`WTD4dJ~;! z(aWQVR$4SQ{O`Ki`V5P{2oYUi(Sw36v*<&t@3ZyQ7Bxw^n=ShDP}1(om-C1ov}h!3 zHd{Yt(Q@p|XX`&$)UfLhsP83St^JA;y9mq`q>4V5Kt9?zOaAQ=|3%`eBR433}3^>&H&1-(UZ+P;Mun5A!t4m}TZ`uP+Y87!)YSfMc)$9Cb;Ke!atKh3MPsIH2pyt(TQqITn%YD3AcLT1 zl{!>UvNS%u9Hw`)=q_0IFg>Thd1U=z`VdQFzaOrbT69}zP3_@&xkY?hTB7;?_@HN< z*1HOC`_@=QFE~PqUS={`lb3oi|8*$ z>BlVk@9Zjdlzz@4de71NWsBM%^Jx8+Mf9bN{;NfQ8;aWi`V)&DMBA6?uPl1O!}~}5 zy+!o1V|3s!)4uj0Rq7aBY0)Rix%F8cx9DHVy?`1m+HUaN`VKwVqN#)T0vcvfIcUe~ zF&6a(?O5Gz(W=PY`sI3Oi!O`o1+=?GySATHf1F-q(c<>gfDX3kd(1Y+>mx0S&%s-L zeXK>Cdrr_NSu`(MrB2YREjk%8Pt@mFbU9?6s4uo?=$z4dg}&0F*^s$H-)PYRklCs4 zuxJ@%cIpQ#x_r`TeUjc_(LIx@@NWMP7A*lSr(d$@6wq?|FBT1)I$C$>_beJSwMupA zj}4NU=wz)HOFsbpy8dMS>EVK~Q+*_{TK5i@K$-SL8#&8`Zan_gOr2k=`;1wmh<|t_tc-IkF)6Zu@3>AY*9^Q zkvdzSX3@~dbfEJs3SrhiM_+1D0&D*{`f7`whc4&pn=N`P^-bbjeYZuQ4tc!(JpGVG z{~huS&=UrUUC!6<7tjm!=j*y7q(z|pzV;%0szJEtx~cvW{e>X2ZeF2#1ew#AD|F<@ zd^wHV5!HfLsk@!8>#xwBpe_3JSz4{rqn46$i@vnaV4$gjjFc<&96{z8_DVfp&?@x@ z=TE*X_2DJ7tMoEU8}4%(uF|Un87Wuk^S0r<#B#o@dV%xi63+GdwXVWLk8c-pSII`UW*z zrw=Tl-Jq9P+L^v#4L9hM3bcT_QC})(i~b&;T-~HMT6FrXML^GHSo=zatv%5Dg0_S! zcHX|>CjE&)x@j6||FpEjXD$W$&eGiNCpO%y4_-zoTlC^Fr>I->k%Fjo0O)i}W9_%< z4HmKXTlIu&vG!Z_0zq5CD`w1SxK$rukko#wUTkTs{Z_rq(lVpxG~A{iwTQL-HVcaHsx3kdb+pF6*Gy zM&@0*M$js?3jKbU?kC7_-mQ}*oOkOHmUA!EezzWHQA96pxJOU3DCu9^@LN5%P%fbE z(@O=J{<~jaXAv!UzkYam(SrBuHw0}7Kflwl4fpGJ4H669um5gowBY^vb4z=8yA=%& z=#j@!is`=x^>{(1{~pwPS{nQBA-%vN*8Y(G#-Q++8Kd<>S{-ks&|e&NwHmd3U}uD`J~w*3h`{=}lKpVZR?8CyT853n@a`YC;>MXc{B z9qVE_Gg6<@!vt-S+Mm*643gTP(vvNXwLhh2SQ=}8TAyVRE&q)EwIEabGx|;vz1pIi{MR%*uP?G_iF;eaAN4wm);jBBFX-zn3c*AE zq;C?mCREq&zJ?d|od#iEdKlEP*Z7Apr~mK_Or(Hko7w7|9zm36NH|GoY<@?N+yTw=dczKk19D zw%T{M+imhwe_LB?>$cm z{JHXJ9R0|-$v&yRap$;~#`?ycJG?ZGqY3BR-Vo}c zIxnAh%6Zw#$7tqxXWhH4)Qo2M)`(-SpM$F<#;GMvX#ZirEhYVf=iyH}nZMXDHTBX3 zr2HMAi~A!Pycv{$D1JG6wlVdURpgwtnyEjjD=!b4&(13^&oldL%gb>yzL-4AP$OYE zUbOobq;gE#C9e$wi&=7ND><|AWlLSquP?P_lIL4^Z8G3d-lO*ZTv8QDsvp+zn+o^N z<9j?QrM?eky5{aymT=+4g#V&ePhhVUdj-P(WdWuAtEPg~;(sCSIcoJ!3&|ftD+1;@NFLOwZJzoi-wcD|n7c~O#KZT3)-BhuB%!5NJFN~yOB4OO1hQj?j_~r0kfraI?81JS?EEZvS|h7Bqd<_ z=d&$aB>(D_q_e#!Qxx(z=JoS4FYbu_L3OdGd=VVQjkS!ToqSwa^=zZ-Rxm=GLtoK|k2S5_}4E z_=0T7r;x{vuM3sy@hb8-Wz_$BwlOa$&_5{P6oq+NW@gOVv7fCgKNl^5xhCtddL`+V z=vnK>eE4^e)-|8Um<^bP=&vB|f01W;dY;)0{p6c~=I8Xcm`m}?$?)I?+*$aiOMQ=e z_Eq`qZ#Swg*=iCqPSEtBU-HZX_2U_JsD8=z*k45}^2`ST^UW=Q1*Q!BUT8i6yvV$a zS)kZVpw%U&6(yI-OPA^NE@U=fzMElop?}LwH&QFi_c2;4aUT%haW~&oAANN(<=g@Y zyM;YWv6Hm5*g4%bZ#%pEIrebImi~!2S8A>tE2jMaDLuC?q{c1=#Cw3Cr&}c5eo!qv zuz_*QKY`!z=CZTPNzK6C(1QWoKxA*y8|UE$B1@pvxn9gO9VeqB%h@iSe*&WbejC>1 z;BGJBo0d-peJlO8YOy@;Ko4gBxkV<7(T2O< z7;VLP2XcmKz-Vf~`-#8Co7b=4FE#zn%*V)DX|8eB ze^Vt4S{SrWl-UVdC(7&utrN5e@)sGNt5pEz;oVE(HGsu<6Ot!1YXutxTLiBWe3M{U zFeZ3Na0n35C*W-J0pSk=o^M_NtT7eZv8~WfZHsgF8tU}!HO+V*l64iil0>iu5bvr8 zPYHfNlo6L_toOTIsVy<@+_E3|mDpRl-+d=mWUFwO>!^9yeFs)x>y+9o$|EXat0=of z*(*FE{0XIYi!va}O~P*xeuwb8g|7`z&U^Hx*FAdEE2TD`F!wZ-Iwx@Z_zlhj!XFTR z0{4S21cflA+odgm;~TDU9@G0_j~Tun_L$-OVNWX8lgjm^_(xRovmSi!qIaT%3+BDY znJ}N*cDEA_d2q%?^~B zrezm8ubMxb|7J5`E<1lk;C5$0)!M+Tkhu}?^7;F5))!ph0M2N{4u)BMWm_QT+;jO} zz`ugcJRJxw?*jeKOPF4E*S_6IR~oV7MKY9rY;ruWnf3$?WnQ%y!QasHRHax z!x|~!J%OOZT8MuPskgQMl{*4{wy0q7-+=NT3!VZzdgXTmsldxuJOlXsZ7+cG(t=~I z6XYFQCwNckU%92w7&X7~qTdFb;7iN#CPDB8z*N9#Di6+5>RiC}_>2baZLaFAbJ#CV z@aDM>yCc$hokOdb>vZCFS)J3pZBOt};G)LAa%ltQ___%BmxyOhFf#9L!8+th1s4Tx zxcrV_OQ5Un1HmPttP*|LTU7c_*DuG_B90MQzU8s#@k?Y?hlj?y)N)c@y|#b}x9A*B;JW zp)nf~PdJ!Y`o+9QoKqKnEw9_52N-bZ8E$gE*!1st5y=^GKD_l6lv7L* zt^4xa8Tk)8d8M=S9|5e&Z*+Ig$BA+9$8%TZPnc5Fb&GB--s14K;-MfrcWw_BH{F<@3cRwVKmQKM!=C+m(|hw{fz5M20(jZHkLAZCZOnb|vd`y_ z1V4y#>5<^c2Ev}Jn*ry~C%kcMvx&LSZh14{o3H+x{D*@F=e*H*B>4Mf|0jPe_~M06 z03N#Vsr*NRrLEru{+kO==D*!Mkr&k}vE z=yjshiLyi#j{SAT>{Gl+2QRdzcok}y?XDAS7G&xOc!swebMJQEwdn7Px4P8K-A-ad zp4sKnC)|yZ{@r3~`=5|X&b@*W%$r9|H)hiPX2AVFTL~}6yEYur-GFyC9V)q7xOt_2 zR`#a6FEzgtIPY50V}HBsNtE_Z=Si3ECCv$RH#`;ip7b2ct1Y=Q^ej@Z2_4G&mxk*B zC)RX^PD}omB>zj2{AKrDi#}IaBVSq*csuTV)CAso-UmW+aMJh@z^~yB?W-s!6`T`j zz3elgS6zDkV1WHq8eo6j?b6rX?Q*ud8?x;;vryV>cdlS8Z%fI&GwK4=+mZnFc8^QF zEeTL>tHhHE9NPZl8TYu<;XN*Oc#lgRhVb^v!txNlDsgRjAtKa0<(2q)B;gH!h2{Vt zR^NETwh&*^*bCTi!hi#2A96iw4ubPJah?|Zsd!!z&o97Ji0>ra3HTfHK0tgI0Wi;D zIjbC&zee~vhh;W62-!C|zTt|_s(hP}mlkz5&_Y*Wq0pr~r7mSCcPYcUqR$n*TJ$=XQeEVJ1aOIa0&ux| zKj13&(|~K-&jB_lSF>_mrCeK8+79Fmnd{sygXa$M+$o;B#q)mg+@tb`UAFp!%T|BF zeH^V@6rlds2EGCO{@@;z^KkGfP!{BW1F#3M#=On^aQ*^(r=tPyEd8bVO>I5)750|b zW4B=GTznzOyb-Y0v;i(QZxI|6e3#&d09Tq%0$y%@3fN?R3y8O8=GEix`5pnh-rNG% zWxfn}5Il{lvB@M*%SOB#v1wKZPQdn-hehuaJt}%q^pxnwML%xh;JgLWR#e>zo@-_e zi)TbU_lf5|@!W?u9hTL8RP7oS&!b9xRH=_5b$9LKO8qY2;;K_hJ*CuBNWHoCd8PhJ zsR8F*s4?JBOL>B|pe(Mc6q zJSpH6Rma71T&cGT4l8v;CETaf`$Ye!;F#!-3!e~vN<61Td0x+>=(VCO5Ns5^$)!DP6s1Fyuwa+?yF`x)#sC*r-75Tc;rEH>K2bg@c)#fPyWcfV z-KhIs^XR-s#q+3A9~XQAsc)(~CHg5*o)-)R)C&Rif?%yEwZaz&E(-jR(hBbgNZaD+ z5+y1a1BAAfdR(c;MZZ;WSoDtyzh9iAqC6_jM@4^Ja9s4~h2!IS)NN1_1|^~30>K8+ zn*bMAHHorOutW5)@^%UD5 zSL%c)ruc$;fwM2iBcmqHh!oi{2%Amnc!e7+^(J zQmHAy*`75y>5#Z`|Bp8%|=I;GT8qC77cC}8=4 z0=6hv@D+2SHcxmFAo>NVXqPAp1e-)@65b5{&(&@e-lcN7ghvHq1so~I#eZCsTLteE z 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 z zQq-otp8jw=x~p&f{`U6t!?ocfH`#P{wqGjLvm?Ae+7|ELWEF4ArL>n)+N;6|*~;#4 z_n@@~k<|!l&~mZFHDtF6Zw?QHJHrX_i`Q-%fWP+`$rMEX4ziObTn~5N$&BrG1j>Z$QzTRjgW9~>$=b_zM z{bt!gvqMW7wluHcmIQ>49uD^oc!c%+s&M^*_V!)zaBqSN?;U7~0L1piqVb#(Bhb|f zI{@t11K|=7*cc2;o0J)*UdoC~m@@5{^z*JH$F$?a<5)$8X&Np1R1301$h110Yg#+^ z%7&c+%Qa~xuR)9P3yR{eLH^n_*xS{y!fYSx?hbc$M}f9j`}ChS_73($&==V-7^5T2 zNMUi-(;XW?Rt+PjGf(4@Fe>EJ&R9=>H>}yOp%;$8rnGnx!-=ufozVgO!Vo%Ov6ii| z1Swm?ZyjR#K(vRdxwO6gNIcxX!ZhuyliIrby29NFCiS$pZ;JJzu|s&G^Mu2U#%U%r zpG(ZPSXaC+(YJ4)eow4-CAOG*2LNSMtJ{I7+o$b7j|&|LEVlzeJkSTnyc*S*bzR-? z*#q9grszP|0gRP|^{EsDHKLpOYhQbNV{c#YP*2}rV%JcAba}@mw%73zFkQ&5L8uNi zOb>eA5st<2*wP$R*M;LleDZZWnF@8W3Qt`?r@D8DveK-RbGIm^0wqVP6&)+BR7~{B z13KBuqKLJt%sMnYKE$R2pE`=b0xE0aFRvh=*G9Vr;d%~7yNB3mv2IKc;9apA-+)+s zhF(EBl2{gg^~d}6$HP4~C+dEqg!3lYmfpkwOoDDy#Uhc}@GBBWom-;=utrLJsdDX! z9gNAA2V$Ku8aAyk-FKF!X)rO+*E6+Xq_JS{*BU&nwG{k<0StCW*PH#(fp+{w@r3== zgW0xOv?eGZ3Ul2b^-?Dhn5(Tfc4&~PgFZrP(}BURgWb`6vBUvC<0Oh7Hh9%QjOKV> zzsH(+!l3gwwnvW+5~qYdzH=ZPk3^4vJ%T@$-iQzE?;J|Nyy{z85qBS^p|-c19IpCZ zeSO^rV*~Y@&^OT|eer|!tPx&GP4@BElh4lP>8u-%4n%u7SEVU%QQ-(nrrhZVX}h

  • Zq(`_-yQPV7aCkRNIp&-m_`?eEIA)KH>nO z3KBl*4*4)yt8=$seCOJW{(6*F$)B>>_?4wW=5J%u+$hwBEkQrqJf{rz?8{P-zEzZP zR$u8>W-u1182q3!;+3i1TPnd0i8>R-JE_ICn27U^1)V#N+G_$c5)+L-l*c&-t5;}O zUEmbh)cHQRcM|*4Yq2StvT~l|usP6>s_1S&lpFRdWXLyVsU1bq7qOI~f1&id{#~#X z;|Eu*>&I8Sx?sug%JriciTMrR4Ju%)l}0YSKVT#EZ@I92w0Gr+ye3%pQ=X zX>ML)nU9bXU_$$KbvU@aXg52AH%}N47bjuGtYMc}1oQ7_OGY}HS3-{#fV+OO1=4M! z@i}!RUrP}_C-U?olLaYgnaO|9)}@+K((EP|vtzeDOE>Fln$TIDj5Z;7(20-Xol1YP zqh%Cq;ZOb7hzTvawB6EV%kdHO_Z%(?V( zzi)qCzW;T3nOAvb(;B%;u@+1axiFgsM1<$8V#IcY3toVeH($yjhP+f2km~cWVzcvK zVeTQ~TB;2%rNc-{p2vNygWH?qoSDHzxp#(uW3$A!d2gy^KR^9uRbbSLC!2`|Z@FW& zd1TJFn<$zzw`-2Mbw?DiJ#Oge9SVFx<%{j_ap>t3LN7b7O1t4zD7+}h?+=vT}N3>q8)_p7L=C@6m#s7(1e`ZvBn z{*Mh)9-6&(O`m1yQ?T!D9Kr-IN!IeBA{0=JSCXdix5T>~6L!ey!3jX_*PD!jN$z}D zZEd4s(S{7UrtEFc{b9uV{iRJr23MZ9e@Mo`q~D^t;5RSryh^?-9V+}np+kP$B1U8v zbEk3+Box)Q7f^BX#VFj8FIsA`3il@I1ckJD8>u?Fae+t4&=mvjqM13jkm-}GtS`A6 z1#b^A$4?Y? z-6Py~!9&On^0^}|##9&oiMZ>E$f>_QH1TAfbj$T_Kgmgmt^{=8xm-LQ7L^Ket9++7}kV zL6(5?D#DLKc;|Dh_fIuWO|Dq)5AP$5J-6l@*TN4jpt|<4o1Zr16)xsP#2H9m31~HM zhA{2x{apJs>?a@1rVL71Ul+-|2sMTr`e(w`XN^8D7Mzg6i6WAt#3$S$x^?`AI z@~^0r7}|8B(2PXP__t;$wW@~yB99xZx>pWGoUVpm)*QVzE-R_@XD62UBBDKKY z2h3^65c%|JB%7_==r9p(?+Z!?6y+3CA?q_HH^Qn!x{&jhY0-*H_uJ zTv*Ieq48uB2D5z=B^Y7F`C`2N*Ug_>Gt}}9_I5W|br$Oh<~wLaEjoZ7u>=RP^wXbc z`8xI$@#7NI@0@0w8)XsDrb5D-}!CQe^%Zp}my!GI11v3m?7l&u;o*ksl?h`%Lo69ejD z6bCxwPxgKtuFop#APrO6u$M_U~$@9p?WKF(Xv(tZw~X+0jcb9B=K-y^8{ zA=rp?6L5EkW7y|9JkeCN`ySJy+s78!2ae#JO0^xv0KV#vZ~96Qj?`7$Gc_=gJf4WD z>o2bWnq@7OOC(J^xY5=Tajp!UhN=RR;t>DLm1O3zYo}E|^qj#1ll*}zDx7QFu}2}n z96Ge*!a0?oZw40p*~>7V)S~v2#x5*ZnrDSL;@e?QI`dcMTsp_n(SDmhCWwh=1O|10 za)Xzh%jA9UmTl5JJ`wVLf_Oa6#(XJQecfBpZv14=CAwtXw^J)mvpn7L^0XsUwM}kW zjoBFu88#c!7~2D3X}yZ9dle#ILZu9>Gum7@%3ZHjh{kJD5M^wFHNO7qsczH5B6Xav zoCx+`YEUf4H8u&Z7aEtbrbh?A6<%E-MYW>;w~O9LP-K5WoJ zE3Y<6W$eQaCW`cWsIyGo7?KX(##cO5p_3smxy2uMD&(t=QTwsxKDuMx@~rK^-0pE( z_CR{lq>PwwggDHGOS*~{|I+z>sb5h`4;*K3wHBfIjH!-t$hBj$PLwH3)fEM^(dIFb z(bEGv2zXf$WI55qSdMUOJ9IQPOw|HpV;Hw&jl_gc;4h^MRh5%dYeKJD4+h+_BjwS5 z_dfQEl;F3PHHMEDj+w^Z;6?N=E;KBZzRe3rPDj1X)mG{K(e@miI_s&#P?gns_w)*S zChYT%pEfh8E>mUCjmwsUyAI_fdq=$Md%gc#qnRgqP6(+;j54vQ^eAu4%*ZrkBm&*k zfpsEJgXN3J{=9qc8rjYrj(3TsIJ7n^hPwK2!0N&6wNY?OLlm+4da?_kCj)(CrVqFJ&Mp4Cu`T1>6 z`{6ET`=upY2@+BgZDB3$>nQzS3MqN%pd|Eo4-SRK%}nbZlT%HVVXQ}EurC^Je(er} zm~%CQd4jvs8dJE_*g|jSVp|aLS5VVZCQ46^Nb9KA*z9ko zLy$L;5mv9PA-N)>&CjDRmG-h`!kk1#enW-b(0(F13+=q+Ms6)|=(;H;A{3=MRy~CW zvi|;M&qcZse>&v=IkVONFE}^*-vh09kX0w_ZH?g}9bXJnR{Cw=nM32P*V&(qVmxR6 zXxBs0sGO3eN5}Lqk*{O3*UwIUr*hxXxNpXSlU59lwke7(V%E24BOK7QXb` z%=Z{?PDTp`F_GL>8jLFCmlIDj&RUqU>!v522(pAb76=Zm6sNLG1kj{+V5ezPRfw6p z$}p$$rFdBZQE%Ps&pTkL`id*JA1dffGoSi1DP28xj|tu;oh@8(w6()%dcXF3t>mCp z6<+N}8sWc|w19sX;*1ez1ut1k7DzjnSj$xS_0k3=_%AY$-td`$ZfKhxAoHWRF%19T zzIC3{vs(j6Lt=r+6xmfkM{{ca1$J&?JX0bXeBsLi>5$%ifxaE;q?GGEb4h3s8%LAIX`UZWK>ggSL!lw?m2o+!F zK2V|YH>6R|1)x`04zpyr(ggPWk4djz`r)XzFB{llGdZ(dy2EV3@H^k&J-v$f=&h-% zboR&`A6rr>3^xO=`f0*BOsiY`c~?hJx!3JGq7b=blQSXwKR-9=;@q7v12=Uf**W~K z93LE%fQ0XprFxB@?O1fkiQi@^h-Lr8JggMmTr+N8>4iw;*96Mqvxq=VTn{FGJ1apLbk>HyEBE$ zub$tiT3<|GS44IDWVZPE1QoLi zb1OFk>QLbH3KeG9W8U0`J*)c!N|qC_zB9uo^L&I8GH3MZYsvhcICMBjw%7Cg5jlK- zI8FM-xlbgRpnR(9{?wOb$1<}VS6L~K2Y}nF$1va7$x+ax}T!_+`` z_wt{T<;$oCtUj9FF`=4T0Hz3r#|i8#oOb?rus$1~Wmj zGvov9s@WxTP zUQs9UafEc=D05g4qxIPDKhx?20<~jT*z=<7o&|1?MQe{Ob1;~8%dpQb!h}BW?z@F` z$%aq$7dk~A7%=gRsFiPkN-PPBTmd^4{5y^bFH;0{<=i5q?WL1yr^zCH8&*o}d6^Hqyc`P)jq7WbD82E*on$(syOClK)~an-kRn^#Fy zR05L&`Y=+ihHfC^Wpd|_%$@%hlxJ{V>|Wb7Nlbc~KfWCG{$=wt)fvc$9qeUe6O%x>nmjs|h?lGn=VxvhUjbE)}`4>}%VR zZu>=jemJFkP@N|NkCtvP^lNS0-?z8&qbdqApSBR$DvpY{$X5xzve=k5<7&aZ@1~d> zzHx_%=tiQYqst)Vmq$_PuR&HHkLJqyQC^h89TaSg-!rnEdJ2Rt^(RQaci}r5D=B;h z!FlxABI-!4)Amtn!D}FBD;yuY(L!=P0@ZE z4&DX_aq&4*vOK;$GrJE&Dyp!*9$<|_Co;wj*EEM8+;cXE9|HO6rN-GRc(VAP2jVKH z1)M#a5885@O>J_oAM;RvHis`4Lt1W{vDC~8PK?%rg`3RXay-c|= ztbv5M%8+ks*6EXqGeb6u*nGh_PxZ2iQNX8ztq>=EUiKSgpaF=;D&| zyd;Rnp9dx;j7uT-tugIyRO#kbc0d&QIXZZ6n(l6!jGsa7rqY`lUx(q_*dcy+L&2wQ znJe1;=I;s?92ZG@qz)Lb4K9P;#CgI3r$wD5C_60ROAYZL9FWJ%NCW z;me{J$|*P6lDd2T0lrU&BaVu4#1YLqepi9<8)%m8Ma{&Qu*{40Ox5pul2}QoN8tK) z15$EYI((_^c$4|If@w#LKwv(1bv$ss8VlZkJ+v=xVF7nK6^TSUJAO|+wd<`DY?mi% z76TZZZp>3OHp+16A1~gRFdQAw=-SJ~u$O%$lUi)Md`3Ur+|@P`fav}<0zBLZfu{2* z*E(w@#OrIr5!|Glojoje1!+8AEcF_cvA2Z#-7|XJj{K^L=(r!m;OA$#ROE?6HgHc| zb;QR9UhDp)L~Y%D%fk^9Y|e9eRE(bV{bdR_4}G0-lv*(z&cIQz(eJ~E+dB@1SZz>* z?_69W=i<56v3A-xT9+g#EPuY)oWSt~7L8a1#qJabXA(?9jthZnyc*nfoJ}o~v_5x( zph}=6dsc#Vy}AIqjuR)=B>k7KV^b0?MvgJ*POB*50RF`PmdI&`vwnFf|H9s&d4qX; zOyX*`eIq(EX(%DoC-MS{_xWvxlets|JpHxogNY4FH+Z_>5 z;hKKoFbGf!eN{_7pyXOP5-r zve=T9A!gQ@J>Sz&^|*=>p)K*Z6<-}GOx+9Rdozc=4+upH5cKV%r%|YmfMb(>r>6Ih zBYH<|8V#QyA%aW$;W%?XI(I=ZNTr41JAuoG%&zU%;shjpS;2LTqtM$ixO9(*=tqyU zroWur)N>OvXI#H%J24g(mFb!sHZKlO^TrU|r;+uJ74CB694ZVgPrlBa``z7@$f?rW z1ES>RFG58|TEpYhC124`&zF|hAlob)wMc9mn@m}i+!>tbyHZvQ6iUnVmg*mQQD6e| z+}wmLxXYybM4r(s)Hrq1IAS`{26&1=vQ}m7Uu9K0aniZgdjjfDPHv83B9lK3oJa%& z1f0Z>_k^cN0FT%Sv=JNr{c|53BCOHmm_UTxH#qE+xM zuqbr~yOy+JX>BkG?T)Pf;PH8@qM+evxN1q~i&_vp&#_aCgZR)ZXRNnQTnjfmD3g0I zziHuzQ+P)bc(m)*b@YY-W>e`y0khGwF(gG#cHU)XK(?t=9dE2YM9zACvjy3T?rwIF z8&oEZ*z;r%rEG410!~8dCHVM*_V)BnuH$9pFyDiEZ?*{lTm~EXg>E`gT*K&|35t>l z@s%Yhx2&MlaDHBa!~pEP_WDNGQR_~sZtA~*5A{`Kmr4b7P7R>#Ek305U2jd!zX?kU zX&$IBaEys4aLX62_3bS#W}C%ghO5^D9m2vgYLj&yl>5=mOMWlQR8Y!?f%ir{E)`e* z%60;`LTq+4FH~Elj5~UoQ!^9#yz~vIN5pzrDc|k6IoO49O|v7H7Pk=wBu_Qzx}LoP zuhiQ99<<&s2>Pe~29r178tKilnP->Wc%l9#j1x09^yK^aXQ>Kf5pYq>>&8f_@hWEm zgGv|m(%H+XRFu=WZ-6D?MnK1je(LBQent!dDCES;Se-ez2dh2|RovLwI*OCp6M00y zrJ+*4V#j$+E*nBI%Lw~p95aAsnn{pI-t(1-)iO`SFN1Tc ze=89(cz7T?g;O>~$qc28huaSs^j5c!!`$bPP_o)knN_U*W5a@;W5U_2h=KNdrW)s> zVLz+iwpq?o`^OjyW~Px*D`^>ogUZ~V|NBx2M$&SJN?fBJ=MsT<-FfS=0f!UazTs9t ze9!)%_T6S<_`*jAJIrv9m9N>y5T~%%ihaoj;NK9?rQf6gRv}p(6%w>eXXPvl3=#>V z{UnK*eNyOA%tiiT<9!KzL(ebApA?=}@gU8|dK@zZZt}h#Nhst79DX=P?8pEWZ>2Ky z6jPokj9d{|BhmRwp0P@Ab!HAY=V`0CiWn(*m*sHz&uRxSZd{)ZmKWV5p4?$;eXb}d zDA*`15lXV|cmwz%URM90=kNDjS;np<#t9}A`YJ~wwzz~G=%50Zu_z;{M)+kz3_X7T;?4W*bdQWQJwL{$ zKjz3Wu?|bVbIAZbf}P81m(ogrQt~Mzb&qk1MKjA?ThDD}0~udbe3||PJGUba=D&C# zp=72exV9ndPm-*9bO41?D3d{YX^XQ(wM&Df#zXUkv2bb_L?Pci=oG|ZQ(i_BsG{+0 zFhww4$*h7h|==QtD+HCXBA?%FKA=+&H=t z>11~|W+4?Bp_igC|Eet#?vN>+p)UY~V8NxPb<(zJq9vp+o%bY|!pIz}oTZInyfn9O zjeFmT=M8x=MI8}cVS{sq2CS6T0j)*Y!> zI@$BXmJlW&c)-PguZ*J%+2hoa{okwWn}Vz~y!`p#7okg=wle)*c!j#D>z*nclO2Gp zwt1t8?T%!?+i6>VUO^H=zye*QPAW>=l2hB=sK8z6160lHGpeK-r*`2_JvJDBsMJ(y zQRrt6NI1Q=DSR-|ihuJdtPrj9+8B5RMgsqC5faL!DvQ{L)#`nDq*r$r>2Ob6=Xos4 zTy%e{ckp@)3WxU2Q{Hh zA8g`oMfHL&03ye+zAYq?&*5_+Qn z>z>vTyrV8{$N_cj9aqexj@-0ei#YNYhki!!qS>UuhZnl6##fEG4&n7O+NxDV z?mK<&zjoF^s22v+l;+;(7_ENa$dqJT%_}VPEhSSo7Eq1WV=2C(g zQMGhJB*%&f`1y-rmJHkDfa$pK$mUG|(?$n5;_BDZV^;0=o0%)X%D_EInV8oPXzrV? z1vF2z1~1eYnb8JUW7F|hHLxh1&&7>aKJtW4Nr5%92H%dP#p#ecV$A9$TYKYlQYWt^ z{sPAvt+&gX!h3{uj;G0M)?;Uu)2*#?{H}LH2h#*ukG#EPOMr6Y1V`OtHyp_Ic-GDR zt1}m&+~IVu+&MDp(CMu*R0x-A0<}Zp`(Y}?-7k|4pEDl5WNi+Q-+}QW;jM$76@z1J zCG#iV72dduz%?x&Xk-QT!=TSOu+cQUwsm@mU8lIN`la*M?|5%Rhp)#b@7e(tw7^o1?Or8xQhVAsHp)gM^MheURb4N?@S^Iz`9 zv|ZiRAnfdKo~}4gH->F9HBx@lXdO%4l=so^hcE=54o;_dh~+c1*Iuc8mH z>Op*{>8S%4WQE9?1vTA9co>gHxf0CWmO#9ed#@4}=9yyw;m{20$8 zKM29fef>7*ehAp|13;2tc!UoF%>14Cg55LVYAizM|Ah594w!1_S;!*O?hO7o2{sQKh>lo z{7g8eC>4cASpR~TFgNAm!)9i9+Od|6>H22Ay+XUp)>t7kOSo-vZL)&kV5BZGJ7GZJ zSE$;ys=mVFa=!u2Q%zkz`?Op1_E8WE%?lrvphC1eYq*!2DB-ZPKPya8(6AycTfF7z z-fMz;`KIu#d*dxfEkQ%k9b5^)-IL z;eLY;%HF@OXS8fOEb1ui==I&V;!C;I2T{dhSPHo}q&|^Z$!9@j6&`wtBJqTtaqSf`LLH7EuBgn%7Ze0|lIpq+R1TVkf=4+*6mk<1>qTXq838z56!OOa5Eq2eL3wXTeVX4HQ!}UR9BbQ5ua==jrD(;xakE@Q9A+Osx*{>?*N}^7e zu)r<1{^5T-t^e0tBp*PMZRmoXOJiMvB`~kqFgDvCF%3(tbUkH#h>0JQVqXU7|L<7< znMwW|jizwUBl9O;C9>wYy#5c(W*HPm*LG{%2@u>RI0ToVgIgfD1`WZ2yEC|JaCdi? z0E4>|EXbgN;65-gaCqKRUsYHC>K}XeUh7`hs_IrEVQ|w0M2L0_ySXHP>i$f^pv;7x zchb<*8@HUb0(x98v57tG6um!HJzVr#^y|k_%qkmFk4=f@Qc~0~m&P?hed)GRqxkBB zou*`J<`VryqQdqCL9W!?sczg6wg2?12*-)wMLyDr?hD9dxxLJpvj%`)O6W`{^eHk5 zdZ-V2kQET2?AoLX*mgPj^J}B`**@U4m3r43K0V-)KhOKT`T4s3S-u;xg}U(vo%CHq z;EW*cG{~b7jni2t_P6onw41E#QwwBv za!rnXSD_qpRDTVV%t?s{CSvLe~0NN4Ke?KSe4ChHx&$^E}uAGcpd!CwNYJ04eGyRh<$TMq00r$Rz;F+T5ovGQqD!0 zaV=qcv)(ZE-WK+NJsIRJVKx)tL9krEomV9(xMQ^9%NCZTpXISh>$Bp9#Eiot#%^=Gg-8vQ-JPo%kY zq9`|r*OAXJ?XcXmx?=oDXfokHf$%YK0BcHgig)fWZrv2VZYz!?_t%;V1@klqk;yDn z*VV%N1`9$8rUo#YL2W?qkX3<0}VPgGC@#oKp&`;4(1Bsu$ zs41m=>ETmcGq`Zw*@&E1LIr!y8|-zx>!}-^XppWyNpci(VqebB-TxX@%#7m5Y2n=D zgjukJX_&X1*^M5$Cj_l>K7k|%2mKc*Kc9;Sp+mwxQAl9Eub>pWY3cMYOh3eLeB-qO4a2-%$t$#T*{k!c8Fp*-psa zmq+H#O5f>ayhU7JCdIq%wMKNmc(k@bJJrW##7R zDSZ|6g3^95G87fDvPpkbH~%lL<7EfuldnfevsIhE5QKEd34dks9^EaB=8_WX4_Ig2 zz&qHc(a;F1bQNRGu3rR4 zZ{Uu^&LCNFJJ37aUKt=-7PT`cMKokUxgdO&w}AOPW>G_6jRAQhVokmJ7&~a)IXz*E z&d(2!jpO8b z$nms?xIi!2VWlUwcR3?+!As$mDfbT6uZmj(Q*4Qj9GvVp{y4HXiG?CQF#8LUd?{xZ znn`e_!AGURnxahjSwAu-9;cwSHb0kG6DW(nPqR?>JSx8s$_Yi!#RYeBio(0iz?n=Av~et`y;cp#VG)eGHh&Z_Bs*0S$BUHPV!A)^@vx zc)7iylhO^-6sB`|V$ft?c~Q<0>s;8*B8L8V5EPN=iePv#=M_gIJv ze8V@w3JjUbj0J>yjfcs)Q=RU zm_x2v^iNh`Gh4>b-1}N>sO{e1N$x!fSIkNtk~3M!^8Ye(H+g1A>Up9<+a zdF%3YY&sRp;#t#=bTz<>)Pg8j#MAQC$#SvG+(s1D=Ktj*ki#$w(*5H zov-Gc<-G3-t|j-CIiqoUY+h0$AXCt3w~PEcTgW^9$An3!HyLCY>dvrQ6Qe|^p40S8 z@BnHgTMt1yNf1-PMOrg}L#1|wg*aYrQlG;Guk^koJpNwfygvO5n3X(oxjComJ+vrD zz+d2FP|>6qrHyCMXsanS6%&|=IR``^Od{>j54jo!ese{XB)qjht&e-^BJ!w2!x9SH z44Ss(wNPt$vSKyR{a~OQ-q_gd4f2^CTT*xp&8AD)vly%W+7!BY z&37Z*^`I9r$!&Z$VK=}0ep3lxgVgJD`W)avUb!4SAGVSH@SGlyH=5^_l)Jw2a1MBg z5QPpc-lBehhD_p$x6puVcIu+4_izY&#SuKAPAg-;W@}!_pWGl|e_Wo-2~)PPL^gbV zQ2M*=YUBqVg)~P=NY0tL--sqSuNO%jBQR>JgedNJ2=Gi#>fDZ#bsSZhhh{UqLJ zq58r=+dbU>e(Uh}<4Z3{j8|Mp-g_4=+-#&89{oGSaQokEF)W!Lgj7izIx`Y3UHeyK zf*9Un4pwI=7R!DOA&Y7`sr!6-<_9;gBju+J#>`ZSry^9*Vs_BK;~fXBROP3&=Y6`D zyh|QU)lio;#r-*Z@L$fmI#V!JCC2&QlZFrPY9Jc{D77E{k;x}eeD{$ui;DSll3rP_ zKs2Mje{If31RArOADU~WO0&Nf4Tby8$EA3TX0}ifmIIw39AU)3jr(x5X1Eiv=}?}t z3UcTP_BS9Yu`Tum#Tbr*H+5h$SGQMim6=pE&=S&?nopX$t3k(*gJQw>*h7v`iIM!q zD@DGKWOyVfRCOo2-c<2>MFd^}3dQQOm4RGZ4|$`{c2WPvt+#-*NJ=bN9}2$bTGr$Y z@+D6OSyYNgP4p_<;R#ET)zo$6_&X%+?$cg}F&Y~c+R8au3zQofT7SPoU9F>CwR>eq z=y60Tf!Msev4d#b2_{6;IE{bc)RP4_ROM4e!11Y=l91h%GOaqfSj)Zp#T9Nr%<@Ne z!u;o9FU8~bQb=X-Moa%tlEXh|tkeX_7_#hK+Kp1mzC$1n5> zlqK;P?lbxNR^Dc$>*3cA6m0>7q6s;>PL^>`Kl7S` zen9NqA~dlWU+XFYfTEk(`ukw)CDjBFK$X<_)(D*Kp+s>-OWViA7mbV$d_+IiwblAT zYiwFj5;td8!c|#kygh=?l&FKP-jTGn=B+$9)aHia9TLSIV>lyGX`N=K5?vvkgr`Cv ze3{wu+vEogwjpXBpjD!$O|B6x>|2mjV`yzXJ_^dPOJ*fEuRI@T9~b{?&*&nW_}GWB zu5*S6e;&9fumI-IQO*1Hi)qt^^QvRWaK3V}yF+$WepbTJi^S5!60Ei|fGNtFJ<#G` z%4Z^#QFEW=p+8R6!YWzQ*gxFUh$K6 z`jn1~|1ojcfklq^-}gB8l*IOnD`Rfax&c*$=+VJl@g5a5#A0C&M*R@|JI$Z}CJyT= z1C%I2v_O<4u3wVhPo})BR0C~77Jn4o$uQq%(88itvgfbsB4vG{s6aT?Gjr*k>`bn2 zPFQt&K`g$)TN4xxEsQBc&XD5+1={>52ufQ^WX5+`g|5hghLS=j50be#r61gCc}XgAQ;Aj# zdi?2ItK@6DW}a(gIULoQ|E#u!nH{4c(9owZW@P4O`>f@*i(mSKoA1wN{VfXR0O+Ws zq3l>ZNcyrtEe)JMPG<*bjFfU8D!%vq)DyUj;cw#FJ`pE=gmMOPLS$=|SaMWA8ZC^{6Y#Y%5T| zn{cotlUcX(;S4MlFDo0YV_tBq_*Fs+m4=_potPHk)G+=Vi#&%_>mk0DByy!{L9jdH z;fRp);xrDyHSpD}$S05peK8V5Y9@%8@9v<7vm+Y@t42IxkjckyFj~5x0JX6~d1Akq zu24LqR*1u3K3sShWQK=FxCnqfP;;93HL49{peAuTsVfNY9QSdT_u7o{a zOy|(_G2&|qQI~D(3-1+?Etts*)IXs?$V~8q&$9OslNZ^V;0>-Z-|9+T-x+>XGpy>1 z3@#oe*nMgCQ#ealrnIB+H7xZFZ8b5>;>P;*>9#I10*F3E#sJS!Gqrmz@g z`I-s3p&dz0xM1J=o$e%1$Hm=@wne5|k2x~J=zVPqjJGHDTI;DlI9?#DI~ip|c)a2< zgReVztD<$}+o+qLLo9rxt~P=Y!hXw$#_3u8%;2)#wigXk4&ZciXv_KGHSrTRnCR6{O@f#~n^K~IRUy5oj zRp;H*SW3(*a!kLw1i;K%D>l)L*f=823!-trtXPhiXAl$UhJ7(PIdA~tFUo0v`+E-i zxuJE=+UL)vcS1Bgb5SP}K7`CZEHnUKK%u_?x&GRn?+In<>It2!oOz#kEI*^jfaP_v z(PhU({KW+LI7^f+DE|C6{~_*mWSJEqxfWT3ABjb9^^5u3BQeF38j>0d(1El6&4#*{ zCC8AV=94P0uqp=1zPah2O=qlfD5-NxoP|;cJc=UTM{FHiFLpnOh@PA%*<1_P$7Db8 zgj_bK%Q>( z3<#B56wa(kqkY5FB6i zLZ58vXle+)FgZBz1oto9m=v{L(?1S;dR$;nZWiQn-DV8lw$KX?Pr=F{)N?<=tEVg& zNW=S5d12$ufFl)riBZ@dT$3-=j#IeKbeV0{h@HPt$a65h5OUuchWZM6y<7x5&H(Qk zXKU=eZ1zwV(1c^5Op1AgU`uC+F;Imh#J>{hRM$WJ62oW4p$Zx@a~6Iqe^|E`-K&DF z;YdZ$%**SQ7jfa+C~~pqL)H3&l4V6Loj^mWgaD1U6ShpAncqsv_K!pk5e!gq-(jCl z9evn~$^Uzgk5V?TPt)?6>2@QDN2$RqB|ED;Fz$;kiLP~o`w27j{JjDq%SWj~TC_$N zZ_9V8Jnh}LpI>iqs5>vSfw#|sP-;`%cmw{QHaPZbpAlFNQIo{ZHuyt&^6@H8hLxG? zt@Zs=FEM@|+BiC@+%3+wD!QuN?op?B$Wc@Q!tLI0bA6^PWe9f95GSF=9A9jMz*2-E z1%_PuCCK#zIsA3b=Fgf&k=%YCPV1_PY-xo_aE+3c5?VMghaA=|*J)?A?xO{2|Hq3r zZ#|$ktQm>i;{6j!T{(0XzWo$B06#6kg2_VP>6fI@=r(#<@(4nB6~*gsm<|u=4rI4m z!8OF+>g)Xt@3v*X6rlff(UFcs`r{W{71(uiZl5|Wu#&r^Bs=f$mcGsMa-mog4XKM` z{J`xPGym_eNnvr>(*dO6Yl`7U7G>$f%z9wBAIE4vxyfKqh`dv-a95ostG=@8eg?^` z*|05Q8xh+0ns6G6h>B0PsB5Jn0^u|q1vV?$t?2u8GuwF`WLh*nt)n6v@h&s#E{?5% z$$vITR5CBMUPzo75e=$FLE5u1IiJ$CU_+%(#ZaTD(*1nOuIHypsLkUs81Kpe zZa7%6N5^cVs@cF<&jeFXwAe{3>;$un@lc3Qmk#`laiVJ*I}66cfx@dKua?QtIu7~6 zBXtpZ6J~J~Q^B!JfMIR&&+2Bj7>#4ovwk`@*{l-GY7_FI;!2OTKf)_zG`{{55RFYz z!2G2towxzk{m=lJ4Dn38OFj=!?O6W8`q*9ut!;sh_W-NFDw~pWR_WRx$99pNvLJh# z*mV08jf}LB2QNOJhULo&Eef5LEWg);?&J>4=!}g;VKyxST2HMBS+74w7egC74dtNzva@_FthY7lTZhLuQba<@>)HGt z%IwPzm_7n~yw`Y7HF;@n!SV^jbHk&wS`MmOfOs?cDnMWdBDRL-M%C*!kv4$AzG$Z_ zoVJ*!n~`~cy5pL&K<7r!pfVhQocxX36>D{WMk`)ajhK-bj4Mkb!}|`sP~&E!v)7$(i%5cm?z{5K z^7oP||F+ij(iZ)a6KoN?{Ge$rJG>B?4zW9o``Qm`D<0{EUlL6!XYxf94p6EB?jLuw zfvYXNyQ_R>FfG_Q%o+nR!gC^u-llfdR3v`#pqsQtv7-Q=NDergw-9E5(MCGkA4nBb_V;G7Hr*G^Z5_p zmT)+4T90$BxZ_PT*6N4ws}v2NARPPf89tQljjmP*zp*_sVen56&# zpgh35c+=Ge=*&OA%@(e0&&AOaccDA5=45gA%j8NO0rq|GdoG@v+z_LXAcIi@;#;}7 zKivY_pzN-Y*qQ%upleedrWWSqz(?kEe2Js3FD_l{LRj7@Rr`0Y!dHPIBRhN8-H2~< z1P7tc*e_4Yrl^NK)t)Q;5oX*b(fQ zdii)DRJN2%3|MX^*&C|ioA2-KEeg)}#L5@z#*eU<18jJrxN45A_NzJ1Vn0FaE>wK~ zn<$=o*VX6wYC9d`sn`)#d17%k26|~>Hd%U>c+GAi$$RZPes}GUySiW0xfmP+CRH#0 zJb@=VZ>%1m__I8`VqrF!^NFT_J{&)+!N^_R9}>m}PgP4NOwbBz2|Tfts-Ra3#}@yK zF9y_sW(`ZW3s@sGv!-lg*UTQ%A6B1O`WMiO1E(1CAEe;@Ii=Zldu`u8ebs^G`C)rG zJaL=JLpx)~G*m5u|eo?~*7|pz> z56?g#PK0Ae_TcD+shuY zg@Nw}_PilHW4O0e>$kM$-VCN+8_f}-wNgJP{z@nr^gyEB^QZ?!_rCbKAevRuIDZWon&z=&A1i?DN;2?RScw?sdW0 zJSi?+;JAL&x;6R?duUd5aKQSi%9r(%lQm|RI%D+4&<{X^=0`C)4DmNyvG|}Bx}zZq z28I8o_uLBLb>;OQ8DY26{D4J^rOSQmp7(gXxDjyksf;$M2ypQ7Axh$Gr!Tr6B7|1^ z>CYJJXUC=1RV5UUCe6FWF+k2ls|iF!8}M;v zW_(8r@ZlXlO}r#Z<;CwAZ4-uGWE$j*@DiO(nsiPxeS_cL@?#w?oPEv|p>s|-jPZ*@ zkm8Bne^H`0uHH(>_$o2WD8EbS^La_wvRB)v>ajCkURZ^VL7k&vt%h{xhb$+G%TuZ!#({j!WIWJq-cRikX;qqFM0L?rsB1zy;yW_-A(3m z+XzgLeoAeXv|Y0Fx-t~(tR3Bd3R|EsPrf0DHurmUr8e{N$s)h-!FRnub;?rVGh(tj ziA`lMV{|!N1BR)QbPcuL-IvhVSnHm-^$L?}(khj@A(8!otH`qw*J9ZI!iwJRVxKlo zlGgB*)=%SZap9sX!9R!alXr=1(Yg6q53xJoCH7NW36#ag(Su_t{+3*n7P+iaorCN* zIftup$ixVl${_-II;el?P>fYOBHIDT>$&MKcv23Sbh&e|jNgi3L@qp5hT4$4H;R!% zB&!fB4o(MFy7e9fK^ zB-8QR^=S@|`OiPQk$Ov2UGUaTuEP6u>B@i!_e$rtbg}tE>RjjyW z`OGr5CTwO6uQoycJ6k-Dc+MJH!->&BDuZ_b5W9m%IUaR1p075!!F>7mPOfk=%+W2RatDbr^vpsZe{au4juIioqFJt()$ISx=L$IhFGyngHBWWIS|W1ORhfDg#pxx(UhH zz2r1$Q9N$?$3}wpLL1Si-|b50&k<)RKjwoljMG;GcK&q*zW3Y z(6Q{e67r`UUGk^RJ33F*4lym5!|pq}HIC{4@cCAC00g;eQ!1GrK*vfYbAx=${_&%{ z>;14l%%U5~tH;>Nzvn$CW?AuxaF>JA(IqXUT|nvoz6D?<=XlJKoLP`mos^c^k!>2_ zWDHmpNxHbqlW@Z{`^K4!Yjbd7hX2QgclS%|G?(*j6>vfNA2}!X(*b-5TE2q)%jZ)Z zy4QFuAe^%%wgzz7L;g;4VFv3H(qn{@2wm@mJY^6CQ{UB~H4ISdv=OMZRJeAVAuJkp z=pAZC0z-ihqTUvs&w-bcnG8l};c`PPUn?eJb{>^W71+Z>|Q!t2myFpGJp+>h|rCu7gdAL{f-(?rYou~(OXE)vck-ZSkR zG7esQmpX8VAn=33v-c|GH(R=X50oIa)XKW+aPEMo>o1Rhj$BxDnP$0xesNRd*i?V^ zUS>!!UQn&ciu?LvG^(Tv6`IBkTwr39ZULeAL06&oGGy1z63#~~aI2joZokJ2GJ$J1 zs(I8}ptx)G*V)7ep=!uOKvGa0_G!%2eIx#OaE1-)A$`X?gRKF(|Jwi|`iQmQ=BKlg z?RWS~Rg-ytTy<-52eE#bPnmtv^zNAD<$)I%RjBWG4ti$v>^*IL9(ujz_#)<+b&yIH zCPfuUgZAeHkt`e!f@Mbv6Rv&kaq3bM(}C<`*nAizMjYaL3(#C#r0fMM0YY@yEAa(~%y$^ku3;9bu`WLO?%PIS%!0qGk$+kI5b?v7dRk7l?-G4lbZ0WbS^}phg1@kG{-Da_O|8k zApI4u(Tnk^4TGt#;R8*W${8y~*m~tL#GBfmbV@i~nQrpv*4Xo`Du5?NgSMA=!O4$^ z!!Wk|DH;|2A7gl-xjrMRLwEk3=ju`T%t3WEvyPC9b$GL?e-_*9E8#(ux$+E^)sJ(M zFu%;>5ofoa)@U^YDj%@L{JZzsN|tv>6hvmTz|=K-4#g?8X8Cq4A+6t-?yO6t&z#}ZJh{DYpm^qQ2yh$n0?jh zne&POo&egSgZ>f%<=Av}g%pjmYd=2Wx$?D&J#VV%GHDVNi59ojQ{}vWQ50#F_@T7D z)J2Lx7PV^Z1YFpp?gA4XvopZ;V~h=q6`%aYb9a)V6;BTG5oGFRS+IjqzvZe!5{=?B z(PMj<|Jy^Z-94KyDbHEBW_N8b7Uk9XHOimQ(iH*M6}VRu;%PGnhc9Vr`SQH3dOGob zy$a%1A4*L9|MB5#qH;~q(URpICN;+>r`TJTU#EO#ltS|Z$iS7cun;NRv6=G~ATYdl z*|7Ss>nYNkZ}%ZD$V0sewrj6bJR5jpV{y89s@srCr|>>{Y#OpVt48P_(vWb1P!YR+ z#t?AfUOR234LaP2!PmXj zQtttplHNus|2wQUJg4olWP%Z^A}E5kwfx}NM(g)M@3fRfm?QrVJ)rT zAA<>7$sdyey-IWZ#eH9lUUeu2EsIvrPU&-7+>(bNV`-}&&2VDi#<^j+#jqWPOa|sg zko{7*Dog{PnqahSBKy7m@wkzW|0>ZVZIxd;dz{Po+f2fx9sVi(mTQiNg-u>*a=hCr z0H|Zfzme>Yhb0p$n}6sOhwlb1b$;Bzt*CoBL{>%|b;+#IXEFZCU#^nK^bng+R3&Ox zeTj`|AV(<(+jQ7EiEH-+*vJqhWnYZsQ&tDOe-fmY0AprKU2+hADM>64iT^)>Q%Uty z+u$rYhU8r&$R{IA&M~KBl}u@}lkidITP~IxK=h1lo4OZF{rqAroBJQ)UIRCvyg32q z+-d11Bd2kInbjebUeC05L?-lNTiNev& zVM~6I;lB^-4!Vf&3h0wt8sy^(4K6JuWKG46F6C~yx;VI0STzeKI$BV>FGy9=z&5><|?MQjXuEt)VLa=e^~j#@U$8!Z|4aO>3Se za2og|GUvXgtXdVtib03Sc3PA~L_~=iKPPL4@x#*Qze`vYD=j*6V~OR-xDmNRJ$vQ;%<%#=fbxaKS#}NrrWK+VI5!cDklt>?M@2UM{4yd%J`*= zslEB%-loC9*otMhp$bgyfp(w<<90hVZ`TG1n)DPly(t~sc3gg_!Xk?+hZroXx)T9k zQDM`-A1RNaD4suhBU-h@iWWq3ylqZ`l2uk{BOG2hY>RYEA5O4_m93y*xlT9yW1$;p9|Kn%t!ti6?iL_Mt-p--uBgkJ$cbj| z&(3_UAjl(DbA;|kd#aoKQfStv#S#-;u_`{+u=S$oupxtIXEz*nH9EdyO*0yD&bbG& zedkN6Ncm}5ELpp=<1KDx?N+|2)LZT-e|Waqdkrxz7oK$!WP|^@8pV`Im`>+%l`RqS zMHbv^O3j3P21|}m2cNhO#OLbVTIAbeqhRROf1&_x&N}Nw{5eKwozP#d4uh6&5goR)z7%7iZK{KK3DP(gHyYujgVs2jZtF>>7(W`Ke@mr4oGx&Hvr%yBQ_OA&|*+ix-6D zPI3$RB6`@wqXI9_C`A2&c@H_9_Aj|#wqGAi^8wb(7ysrz+NX`g47DHi$#udPvFt6okuTj7RoxI!qkh(IHYcgZFjxvrQY_& z{&6QvPOhDzF;AbbLB~IC-@Y;StQ^$X6lK%#&`SCp~KdB&$(xM@j zF}Y67%7~#!?x13@(B$7R6BqL%ieQG^9{##e_;D`?0?{VQ9`!K#l2MrEMn3=glj>Q% zii#r-f`3tS|_DK3wPoSlA2>F-16}jT17C9egIh z*faEdxe)TZwZu5kA1N!p3V}0PWFf+0WU?EXWGt&|eR_A4Rgk!{eu8yA=ReyGQmH>T zY)bZkZe8}snX_H7&@DLnPQ4g^0}3OcQ%Vsg86VT92NOxr86Zk)8LC$o{K{-Wy~3=6 z;=C*DCLMjc7j!oN74N`shP8n3OM70BxrP8?JtZZEu@#Dvr(3S!T&at&%=wu@bsJR} zHNH2vyH*|WYE^+)Uo7e?l2t|5J!q+dAY>X_;i(m3JBGQ+i+H&QfS{gGKTSsjJbea2&VW2(yfgd1QTEJ-BTwmK zd*IW#BeG`y$>wG>GnvS12}njJi#-0NIeRAvdr3|H#S{#lPbC8#wJxkW-K!6 zbJ4u69@1IpgShZ48o!GaAl0Sr|H>3GZt9p(6Au{lK_E(^BWcVygP1dXqhrq)ytsfj=ejk3!EFyiLj9HZr z$arjA%mG5VXYzja&HHZk_lKCHLD-F9?7i)=x2$?T$vGbzLnB`XdgH~#49B}KjISNX z5fZt|vX|gXjB>Q?6n+9oE!pw{C5HqRt>p6kPp;C##5fT|Z*Qo5vAnPz0OI%LI5xWV zH5(u&_d9wg4W-ACwNB?U%L!#=0upL4%{5c)y)Av$=SZ<4DUYEWdUjHyk zT{63>&DK55;(N#@o35&?xI(NdIe_or)|V6g4avONjF{TLyeQwY0y%?FSsuQKU|S4l zmM_8|l{&)x^g22O5WxW{fe)*WqTh{sTb{$&(sjSEmTsAnKu;_WM>4ZGxP`O}v|2tm zN(kav7a*iu)84{S4_HfKCSCyu$%B6zD?C*|8xXHAejbGcA_1*qARDPSvq zF!<|h?~WarBAO+%`UY)zAf-}`ey$>$p|@(u$O$?G?yi>u@J%@P8YOK0Svj*#3~~Gf zh1E2@SZ?(fT=r1)(@6ge-xOe9AL%6vH2&`uy9NPb0MA?Xu)&4lm`NPNj)q$~+M#Ur z&mhk?wTxHNE%Gv4d*idXC31BJ|&ZZPAcW4NN^)Gw#mtQA?gHjAcS=FRh_#J*7 zSXQ|w{5MG#pKewJhrX5q%lBab@wS1Q)-l8W!#eCJV+r8 znUZM#&XI0|_mKJFdLAl0VIcB8t1U=#1mGzT+*uHCv9cxLzOykfeq%*^PAv7T#$mN3 zD#kl9WtSN>j?kGCg)1!8T-+7HMT13-+l4Evo`2hR+|nJq{K~sQNAM(OCT}U%RRmU| z>Vgd7W=#jSVn>J=L%1d!cYhOC>T)!-`JphR*(}eR5l<+8F~|{t5s;_4hoWWXh;12@ z)!dy3b0`I#bn<1*!xir6pd8OQ5b7Q%Q95VkHD|8`$Q{A;x2d&x~SbUS+I?IWm$qM zaG;EK%)zxH9qT`2B34@R#y!-+rbjUBQn&ThWU4@tGB1qkVaxnMwhM5#MHaZ*d+Gn% z9{Mv=;9&cPXM@Mz<8fXqqAi3RcA~Qn&93IkvneFhvu0U3`?N>+XwosUK`v^N_)Dxj zEyf!2nVB9C!xzaa@GlU4IuPx{&+U>6)ZgS(s^X7v)^LdyX6pi-hIxkKsvMq(X;&nL zrC0uru!xPPs;5uRlaqP|9b?4QPw(3|UU;Gz$R&RZ)wm3qvi?>j@yByKCNW@n+T-2EYBiGbcMco7(C}Ro`j{B{>ql**@+Wq{Tbh-*1Y^MH+( ztxk3YAhOrCiM$nho9qMAK5tZ3v}Nx!G1~r`N~|ukXsqq zjK|O*{Hu^PZtBfSq|cKPuTenrZ4tPyFY|&yjtCd14?QNnPbWm_td0oh z_-{Gy(Khv4D{8!w!hBCagADCs1lI)G?HCQxT}213K#^cAe^;aG9i;DodcbH#1Ge0Y ziy@t^S2l8;2`D~RDO$IR~XX1CeBb@+0MHP_g!H=eD+|%^pvt5$1tJ3UhQC1$K z{AHgdVI9qe?v_sK3r%SFHF-sY+|ddhjwGHoV-@a_k37nqMrJKCP*vWT)Jx3+Ftz}df-U`)dm6u6(p1G3Z) zG4j;n59tYh+Y2CAkI9q#-_*~xjvX%EZw4jBBxhU_#`g{yOz~%4?ks9EN6+u)iDd=I>Yf0%)m?Wq&CqgYg%!8p73l#bDVjSw{8+mc3f3sBn4+WxLdnXvg zoKPlCV?$p!uVjmV^*Na=-26tSKCG&RrhyH3a-@UN!eyZW*o1btKKyDQLvRU+h51oK z3|}_YVKY0{*YDPUt0CjF6dLk5ZNjZ!RxTT*>1Kc03oaJiQmNDW`v4K0`m-Q3BMK2T z>~+J{_rvy)T)uA2+C>EHOJKJV3qxj=3W_zfbxL#XSO@JnEQR9>qAhNG zX1<)p1)w$BW0$VwhydR$awTef%Mu9Zj`-2FkIT*xrk56GHdXvpp8FcYBSPi!a`KA8 zBIB!(sC-?XJ4OR=Gk}Nw&VLaO{QmDp`dl@X%}w~On^_wWl?1;^YY@Iu4!puor}lr? zW(raje-qd7hu6ad%F2}-)R{c}7s>73Z}Y;!g2aTRBcsJL0#bkHYxLbpKT-jinbFBR*Ghe0pW##@lVl^(e?(m3{4kXDrDm-TXs5;xD ztRROYlCF3>Pby)rOYIuRj@7hq3mXl`XLDw!H zwpm?A+hmac09P5{oeY1YanhDLh{=0 zP9U#-Ya;Vct!TTmErsWL;Hf3`3qRcwc$=XJs`#cWs@*pwIe^#!uo!9pwjbBa<-Cdi zQ*G+RE+k)=@J=I#WL9NnI=$$Nq6Pk7L!uA-;3u>&QC4fYydY5gg)U9(Nv=$!#?=t> zx0^RmR{P{2QF`qB5eBZ$p@K=aRXkie~KQRphUUKvCjekavlL!`lW>e*K>s@&kgt2~6;Y9KG-O(t zc*N2YL%9Vj*dfGNW|DGbE;=+Ibi|p)mSHJgw!;>bD1~22F2mU;Oe|T9rZ3zt)9pW4r zb_Kay3!mPqK7ohVZu<-q+q=c_{CDtDxZ&?tTnA{>mQ*;#q-<@@b@X2uD*ylDBjv?c z4`@ZvMHM$bUlm^fpCB9@%Ty(spBu++werRlvm3b)Rc1f5AjrLtXmGywNgbnkunl!U z){>}>EHD^>BgEOmuH-k&6LQB`6ou+h)x3Om%|b{|fF?Sr=4L`?dpp1DKk z9yY-+ns)FV*$5-!_yKzf0W)%&&2UWQP~Jo0{)Ii;>ib7o89!P+T(Y1Ar%gGMhnjbf z#PrUa75@!Xr?}m6FzjmCFxqb)=D1R4xcSNZ;CKYqr>K(b_?81)yt!5`3*T$L)5al4 z{pG$9q*FphaQyhg<5mZ~`_7|LuhM#|_avO%xa&8^D7jp<)a*c$vSobt&yX_7O1>a+ z15wx%FNKI-;3D{iJw5Nq)@7Jwgeig7^MQ!bDgl?ZK_!Y&R@Ey16dHM3jDC$7`FAdM zCI0B+8YbS|3;~K1iC27yj*;iFgOdYh0<=pLMlXl5EgR_B{j>*vnSK?K(EV!P$)?K+ zG3wM1LKn3@x^Crd9$uxBJd#?Lt0>6^mDTQuBs4#42xI%W8ojjp=(m{C)D$W!ud(KktquJBd39K1 zOqFuf*!P|5Hxw283a-c%l-s@eK=DF^Syvl@Y&$zUxb04=8(!}+Mmr2|N?If(*^n4J z&0<5IM&+nwL25WR{u>51blIQJbd11_T)iW8hWxp2f+i#Ck@04UC>qVy0?4+u!OgQ` zt+&&MS>V-uyf!UhT;%gg>i?!ACw%wbW_|@ieiYz8U1WDVnZfqMFi#-xfSk#H?aHde z8JXkBvzS_gqjQEj`LFl_-ROMoikV7qaLC*LeGA|lKE76b)D>n=oS3!!yS-Q0+a*3z zTE0S8(3(ulTn#Jl7sf7Kypz8xpLqiwpS7_x(Dttn9DYUlf#l8H0 z7W|BR;RRvR2~-`<_w?Tf_t?KYciuhC8eI-Ip?Ra&*KF13!fjykH=*0x#{ zK~PyLOEw6E8CH-HWFsOXVr9q(AOU2BJwhNPfe;c1_j{iV8Wlxeef#_U;eA~oqoFe zK0$G*8_r%`6uw{X@rq4O=he>lwm<)!@rSc3zd19(?iub0nXnzlg8%#z30X~x7t=V@Ko_4({Kf?8Ka{7%VeX-D`u zPu5s2t3NmM-^|LvDWcNd)f<(Kc_p)yKFLH z+vOKdt)Ki|@ai8Kj-5MJTN;#>y`h~o(}MoRYuYP#^Lb-VF?K~yw5m&%mu3$K8k3&quGLU&N&il+8GlAP zE^0@3^*CSld|_s}m+{XNwAW_lEP2+FE!r5ryLB2Pz2fr9{i!*DqZ=$5o!7j$u6W|6 zdTZMZron9b;xV>!p3hDxSg@pKz-~;+M+fyRXba;wE=y^$Eu6)n4*8r-3C|Tvo|*pb zTaBZ=wReB~@ws1(^Mba{U;cS&ov@#4P)d81?&-bw($WPx=`&t&*mpVb;5yl&7it!p z@r}E5l;it_*XM71x5m1rFOXSqCE%0pm$Jy^ zLdoT(ta|0x{-CdQp81Z0zum%-7rrs-TH%gax`*ChlGtBya+$t?&fBszllNFm{6F{+ zHKiZMx|?NxwI^vTh4$6z^{b**{B-(#{5%)^C-kSNY2;Uw`McB;dty)Qi4AFAEYo>P z*TMU#Bl*I~$MX4y4D$GY9nBMnO>)}=RyV5BkAx)uj9+^leG2+Z=+B^!e&9v_0XxPL zY8^^0J+#Btr|<~#uik?hT+l1%1pP8G7*zIvL4gpQIRZG9%D#zTUxdDpQntr;&|gL$ zN0B!951C1kXslU5=T6gt&e)R$0-j-^5IhspA%X4&maa6|re_9+GB{w!ktiJF0mrKZ zV3^ko$8I*l(G)g&m#z0Hyp#_59P~HPpQrwZv9K!Y+-gzO$vj;oXfZ7kfk|mMn3Rjb zv|0kDb-iGkTnz3vZbLG|3u2?9LBEIxM#yfY;y+l1@u=v8v$q?;vaE%~q7W~;9DNz3 zjE6R*j0IW89yu2F#r!Yr*qxzgiv>;AY|((_?QXEB6vG+hIn&S!r|Wy+6uLRO8S)^;BzLUn2K(wBu&tB8*+wbYG)chg`w12Q&cb%^xtR%&Xa+v)QgA3}A^e2dvv>I8Q3;U;cSyqgY{54kYDdY2KdD! zK}Y}{&gWKvAzJ{(wGxHvA^(ra?_S;jZJk{3YV20?tGP-35cZGIXHv@k^w4?aTiFes zygqQP?+52rnZljW9a}YZNEJGU(m-;_DdsX<^LGV%PdaQgumZiDCNRPIFhTyK$iKay z9X#v1U|?VXJdxkAu$Ay@a?hre>>r@Ni9V5fNDY2f-Qd&S2lkwPaOI*7t_)nbN*#A< zxGNToN*xv$1ET~M#1>RQtUnFHBO<`CpiNO1q_&T;l=JU}{KPyPkiSU5ujVFsPq;}9 zzeOqeCsWEiBE9v2x#V9h245Aw8}grP>r?1ZYf!{Ool|NJ8nLh>{Gln}>go!1ej%Wj zQVz#UgoCxM&m#HX0bUJCev&^Mkf-=-+VMp?bSy-F$9IMP>19EgS?V-bk_ ze#q~D{O-t3+^tQm12u4m%BR0$VcpmZE=ie?@z*s73-kj6{bOK|(>U0l43K{}^84Vt z5Aqkcfr?u_-WuISZHdnL4N(1 zT+q;{DyhixCc6974bddDZ>N5c&5N^MT%|pZ!jM0>Q_1hsp>(B&dt-6G ze6om6hppuVRZ0f??1@4V9KPKN=9MBiTPFe<=8sF6g8z}Y)fQeW28N2? z54rs?7QSj7cWW3T7DR)8N(N-dML=Y*AMDjPg~J(jirOaY#!2M2suqDa=8q@Fz!UeP zj>XO1)FX1Mjakbs1tx5fqPAUI zu?Db~jZuR&?nykVJHd`sw}W~N+-i$N{!rw1LH>YFIeI_%cWUT(Kt8E;_+P>Kj|u|U zuxQvFnu+{^!5(FgI_$8H&5A|fR@Di=c%CPD^T^z4i>mK|Fd_2S_Cp}@2MXj09d~Qc zjD==Ck=|sRUJm}*WpELn0ZyHDf}`2ZcdQj27$f5%CI4_dBeiJcj}Xbh75Rgaop=y> zphhh2&8NR(;o8~OgBbr1Gg7jy=G*M#s_3m!XvY(oz)34dKb zFp!%e)X*RpI-fLa+qzy3%%o(v7~lcH9*$uB=RVkG;snku${uwN=RO|)-t3kL+&RL> z&L4;TkzE4{{t#p*uFxRV)S$|zyJA6W>j(SztKevA1ZH{%!P)u@Nb8Eg?DwC+sZpY+ zZFltSZaJ7EzekPevGd2P_|MhJAyha3p%{zvA`Kn)iG>f&zeQmiFiz>hS2{~z-TF=7 zY-0trS#fY+%h$*+R@AmHPX+~IIh@A&^{DH5?EHz1JrLEcrh8it4k;kV4K z1&e*#VCu{TU>uhVp@BY7dW8YIHhc*#O+AYK6ohfg!}&jh{IvSV&wmm5qmkdOUdbQc zrPlC(SP%^u1NXvOxE|&Kr%o8a2}>J@^|b|dQUGk<@C~>%OB6jS82O8O2EdZt1vK0{ z497E4OTu}IQSlS@2>cw;rK#iov7l86ApcS@aBg0Lf=diY@wb7T7(ZCEbQyTG_A2&J zA*i#wcL1!A-xG6cIG&N(r6vi)BC|X46Yfa-%)Cd#fKtOruXt z9_aza_<8YyMOfQXMW2lo5`H<@lyrd?&ed={Bei6Va~y7M75vD3L9C&nTd6^zV~Bim z;|@UH#UQB2O@-W)NMKzFgWBB7prf-CyxL@n9+imSD?@%;!r%P(`7a}XycocP^l{{k z65pxe-dOyt!L@Aw*w^Es>2@BJ<)lMd)+K0TXTkCnYjAy#Df(<8ezz3)?Ml1AyG8QY z`BOCbFW?xBuGTPAEW$Km;m4Ol){U#s!C^yV1shtc3P4nK3qD`|OlvDo;?2gR#K5kHy{}Bj|@{T&JSA$Qcm@yN(=(pB??c>{4zIy{3y3 z*ep%}nXOV*7*`r{zD;%{Kp>wr-2EQ6U1{x=$76mbVjd^qUNM<3gA|?=QgN*$YuhDm zZ%;f|S{u_QOON8oXiQ$;_x{3x|H)kbH3AQ(VTjdjJ*`4MaF9sH5$i$yw+1VUQ>X!bHF92>9^SYej^qij0$;hEVl^` zcwexdHh1B2{Mv_<@(k>e-`}v!Yweu}R8`luhBqAq0R=_Gf?~m_*n2^x*agJ^BGQkD z(gYM6f}&!tiAH0MU1J4%1JoERmMCgO#1gxp#xC&wf1kbM(wmpOcQeKt?~U=M(iFWS_h>>im(0QvwGpD~cLl z|Ks%N1^H$_Z?9OIptH7p&sz68TXeA5{jPU>)PRP+wVZsg%IWNpCm#;fZM?6x?w$G3 zt*5j(aY9C{-FC;QG?&iP4u8|MxO=Z|ZRVzDtS?OT zNW*8{>^;|CR-N(gka_Jc+mDC)ZH{Z=+y7POL%)-^K3Lwpaea-uuGwJgy=@Pqj81re z>wx3f7sFO|oT1~bdAibO`Kip)<2UVhZj&>9LBHh%dCiQL-}|9b;m{^a@BE(P5RiX( zM`BTfK}lEEb$r=>X$Oa#wRWwt&Ymrspchi0f3vjl&E)C_svaxW3raem_j{u?M*U8` ztNW(T*tA4PO~Cy0Rqf85J=rGNa$Di-_~NW)zL!Ur+-hfXH_!6Mn|J5+vM#);@?EX; z%{ZKy zNAi+;?Ag6;-B!mc>n%E7e^~v&oCjVjhK7&Z@ifCCD*Q?7%YOQshM0ck`0c=2CRuSa zI$2uZtC?$`(J8Z2Uu&HiHcn+GbxE1zpE6gfVN<@_;jKxHYfN(Ome*|TcWu&h-(T^& zzclGe$>GKa_HEg6WOK#-sS|$)xqCM+9hsf8q`AY!VcjaHoPMph zuHMc!xAd0h$9uZHZLzL**v3{#ZCCm@oBEkfUll&8iox;YQ|Dia%fbKul~tXEI}R4O zpZmskV}~9lF^~6D3uqW`vo-OTGgm#khQEk>wJ>^zmsi;U(`mJ;U;F0B_OUY`6}aA> zYjEGOwDt5Fi;CVAdvzaMFvjRo_s5I-Y`L~E^w8#thhj=5XWVT$e$~f#$K`ihp{BsK zi9-ysv-S-;-i~gCT}`E%ipAA<>C_GX$NLFP5otH+n_7o zl?yyRDDO?c33rEr{P4E-maeEXcuZo$G2f;;uK7^itENjy`#g)(1(%*53%yZjlwCP_ z=#wFSdD)HLT(WVwJn^_^Nn-V{n!cO+`&auu^y`s(t?*6LpN^ggZ(E^V`n_R$61pUJ zsO#JC*q~I$^6R?<%%62S#N_hL$%dB<*SlyO7iIqxbGhj_i!vGCcPzQKUZcO!?MbT@ z4*l%id_oPzJ6E4JBX!1ul`qR(n%A^WHpc90T43|&Mo05&r|%eTb}M;zXYWAoDO-2; zTH0o8#ghxn`=nV}9-jL8=Aj~8EYsa#)w+!s*mjzSmvLXyLCL1>zecZWcwe{AvT1Ic zPEG5ZW@r1m`Sb^Q`KFCx9TUtm26k|~xGypG!m6RGDpyN+KDxeP*yOiuUVoKj(Q4(0 z(R17Mc)O|Sxou8PQOu*f1Ea16?eg4oKjm_pAps+6)al+U-=&pfgV`r+`ZP+Ll{4y@ zk@rg9!kbwxQ#QHf&s;ucoKee#uUa3?>Ae4n-uHGt+t&TKxM)P|$b~)!kH5KptIOpd zlE&y*E$clbW`j$Q;brw-R`Yx}??h2Jma%>Jw6cyD4!FFyQ?hIC`t*Vc{U`06YBjaz zA@jpodOcR$nKwDT;PHc!wh{=*{4FD);c>&{FM zN=vmEJEwfp%S{75I9zTtH+;L7MagXdnG zH+Z-4%)K%Fc72=SqvH%B^PYEh2=J-uW_`S1SLy!XN~29D}Z`!ps&g<{f+I>#{!B&UxO8;Kw2EXMO$ry7YHj zkyDbku!;5JWj_z{?`n82t8Vpr@mH$8J!x$k}`v$Qk##iA8v9j(Z2ocXOQ%w61>b?&_Lz=Dh7}=h}DugPDVm z@9UawIrE&uI*sxAVWrQXcHQC8e8VoUIm6Zl%pPam&#BdhYI!?voDg zA7A^ zpGm26-R1F>hj#8APdP5S*y6h9GWYMk?s0B;-inZyZLePM^daNE>5#SeX5C$VvwME% z^n2Crc?}3m4V;s7;#&TyrKcS0>~48Jpypjg6UsLt!i8XmmpWb?Q^6mLj z$+M@9uC-(>Ns_T-?jGxv-@kT|enm+tA1q1L5vA!!_Oh2Gmzb!i;OMYk5z!hiP2^y= zQ3-Lup$Rc@UI`;YoI>Nj9Bgz`*BJrjF|@ZNRZ@n~4%QjBaF2-$)5LX&i%E>v#JNTU zN5+J^jrx;Ooac5w(@$5D)*4Atxz9$q>?lc|!SV5lF>ztq0siE2qk8Qwco|62A{$An z{MqH+_5bB^S516Gc(f+&PsVBWYW#B3nv%3^l_XX9Y@C9|lH?N+?H&^s75`sZmb)Fl z2}?1Nq-z}|srF|h)$#hPk^Z7M<5j<9bvKrzUDYJ{VRBUMN{#1 zf4WR2M=wu&sV7NC%Suw!&x#7u{MiV9QH*b`L2<7)OH%FwNitW4lH@%!KSGkmM8w8w z!rUVwHBJ$sF`hjQ44GnrKPh;~85MNoE3S`A3OW6D?zYL%j?QIvy9NyUXxFoD=OMqR zuANin;@PeN6}#LII_A8$@In3cKehBu++(}$+$z(eNX?ly*13xwUnzSv_n~`SaIth_ z{wcS!ckrLV3`r{6q1+m2=8D#Dx>wqmHhO!_pU-68-dcHRY4PCH>RpGVqpSo{k5oxgtg6UC~R0Uzlyxq0KTdG(IwY}Q<+!qOXk`(9?6XzNk**iEQT8fGfjfvA}oWdd_1AXuQPO)ObTwjRsyAInIM&pc=Q7q`r#gH3QVRz9fCE=+5wi)OaVH1B%8QAo;3s zJox^Kt^toXNn3-xB=u7?USr8mjpGHxNhjw_fX`IpL7&FwUQ+9yAk=S*_#gG-tW@jg zYW`6_-W0X|V8s8ZKj_o=nBu4UF&VY~CW!x0Kh7()e!T6U>NopTe-`4IKwk48Ny3uK zhc8ZZ*)Ua!wQ>G@fy)5qngZ5H1yGG`_A!sw@OqBLaXCK61^zG{T|Iq$0|P^t5zJUI6UEAWVWwZ0 z+22^%zcKTFXcqs_u#)AKeCS}T)nsPgH%W_+CYgsB*PO6wgP(vyAY3B;0F+=Of{>=9ttx*G7X#1l1|nk>0v!H>0nYVWc@Sayf`P;tTh9?0|s~>4DcQppe6&Hy9TJ$0Ozg& z_Mm}O9+Ux%C0w@cr0zF^_Oo1IR0ybb63ONswQA7dey&6R| z1`WYO#9E^74g58+~Zp*_%d3_1#Q1l`d$8~!@D z%KLx}P!SY?P+W5nIdh;lAm5%)lxb;W>%h&==Cz*yw`h*%VIhQo9GRQL$^O&}237_32mF8mGT?}Fb5zZLyy z(45y8!1p{;#tOooMun2l6xQ@O!_}}6AgH{-r0BRt11K0il znn7O$y%E;|g~+Xr_A2!GqkR~<0(>6YbI~^ua7}y>Glw6Kc7N#Q@c7X{(uYoj-UNRS zehzZ1;X}|@53$woA!sjwUW>jB&|d@IV=&rx(9dW1D`NYhjo`TswqPsZeQzOt8F5#5 zU0lQY9)=!)SRK$3ZAWkpvAtj$v>ix6Uotogz5%Z>R#(Im!D(n0ry=R~oA|3%u z0N0{1*aN*1eO;h00uSg~hy}qf#&stV`w{J#@ay1Dfg^}_1i^rNcP0AxU8WrLWN7Yn z2M~b%8Hn@yAJ-@pzB%GEK``?4;g=v*9(}H8b8ftU9P~)=8<+(uqyIfT_apZ@zjLm@ zwalvkpM>`J$T2~C6WR@+Tfp~0+y{Cad>AouH!yoeh~b4_yLF? z1cTA$JJ0&YAzlE_y>|$3|1ATY`xLMndKmI=;ktU@KH3`)KL@=Xa34KEj32Cg?vKGl zup4c@kDQk;a%w~00C&(=iuN3MC$#%O^Bv*)F#+uZ;5+Ec@YCRjqmTDGjl3lIyJ+u# zc7x_#HG^IbU4-~x!1IN{+NnQt*BF?kO8$JM@&nptNgXZT~BK$9C z^PEbBZj4xW!2J`V+%bA{yIGO)lkHv;W;kj3DB+JFT(ExJV*HXHW`}t zS%kbaw9ViRz*xlC$9)loIQQ3K#MeTGZVHwn#^=xb+(aL* zKaO?@ax{SNeLuwg0H4(c`0>brlk@?UWW2MtB{WBr+cV==E6 z6fnkBqfSv8)SVQ~{98aBpU;%W9A8;!HKr~b^XCFSGuFdrNMrseS!s1^MKk|A=nI(7 z=Rjlr5Ls!pqoSF=U5GP}Mn6?nTHQ_2%r63-fa7y-(wN_0R$6Th&ELr|eg~-ab1%{u zPmq;XH&-;r{~4(Db1%`DA0{iUuBB+^ZxG^QJ(GmEtC0TyTCJbs(&+hnAR0A)mqO$C z-vQ2z^W{8f%;D!Vjk>+8wE0(|)&0hIk;WXp|1|0bveM@7RW#$+`m#~a6m%~|v!1s= ztzS>b;XP@*wmeYRe>Jqa{tnPI=ETWLtD7pC;~xX+`ty9DF+W6BT3u7o%wHqKbp<_9 z&|MVG{JTJ{pKD6v_dJ~{{x?8fe-|NVjG)^pn)$x~t_8=o0yK`#&j1?rSF+Ns ze}3za%JGqcZmDS2e+H=QuRU$G z;|vz^>j?Qj3UTo~nIgp9h5RSbYW=()jdcddN~`hrC9<)9DNxrxR2!D_`Ms6KYdgwH zyPh|o)%EA+5REy}veIfNMRWXvLfl-?vjyEp(aiq{f`Ghtg!7+kM&rH80d@bULaX(N z=l^iTY0PgTD{cMR(CYe#`yp7#VSWuE{|6zilp~KhL5O!2@^3?{!J2STuV6+(@IYDl2V0OQ6;L&w0?8!=D3b)coE_}2gRyR{L>;DO;>o1=Fp+deo z4)fOuaXmq&3fe`{%>NCj^~>)t+N@_Fpi!&m2J;sJb^X%H+MHI3=J@A; zy8hz%A1>tA74o+VadADCvT<{uW~;(X@_aStKC1Ud-Fb5#ypj>$REs4W3&rj7?{J?gv|j|DX9 z#a|c?jUw!YGlK^Pc&1I!s&y&z<{o;8TrsOccmXNP`165_5x{zGWBevU<> z_m`DcS5Y+QyBKh8+z*@wjrrqbrPb{f&HQUX-ETYxXv~k4l~y-UH1qcfaWg^B6m%~| zGyfe>>(>)TpY%4%x{!m$I^;e2! z{w^UdzVFk8cn=}}6|`Evc>a3}`4yov0q;vw*T0#zDaS_&x}~C7&sm_Zzjz)F7V_%| z`CEjzc%DoV;_gEJQ)sn*-jBvQ17xMu)fCPCWk6m3P$6f$pgSs>`FTKHfARc}7V@2h z{6j+AT+p)x-ABkTh7JPq-qF!^uzs!?jk+B8TG6TSYCYolKOAuy^P9*@d;T1SR@X<| z55YLWYzXPp~FFvmULcXn#zW`d@KjQg6TF7rBq>le>| z4dOJ8SzA`x=e1eUjEnE%WFhV**qBz`a!bN>Z*$7e7^_k{^xU`F+WLGTHQg> z%>Nar`%OImqlEm1LjD0EF3xwB5brJIe}Go&*AsHY+N=;)_doYD`?wz*0FCv>%Sx-8 zDVp`40P6aS=YOb>ua3j~^+H@v(5ZrUQ8e@K1GRqEL}NVzWu?`2ie~;Ipsv3<4)ez< zIn?bG&HP-Tu0Pj-#++fY((3w(X8s-_F3xv`5br7Ezkyck7x$ZwkZ%K>33y+cy8h}q zGoC2-XmeUAn)T!Wb^XQjKU~PKE97qz;^KOy3GuE%ej&74Kkr9lJ%O^)YW19C{|cb4 zf2fd?ENEv%Gd~}w>#sgXjvu4sP&ZOE^N$E|3qj8jw1=XZUkbYT4Ur=}Z~2`=5AZDF z^WYjVkM9!CKc1yEKoh`oI2cR-SwKhU-}`$ATq>ImOc$mH(}x+rEY;4x@VKoc!a0a= zJ|di(2QNbzm^~4O9dRfj77UT7unRBzO(X!EDe6oC8i^D~JZq zKsB%&1b~~MBRCAkgA$+vCV~cYyzf(`4WVj)U4@Ezp2_paS?7d<`yx7GM_`0bYT!U>4{N z&Vq(u3y1!4HFf4F4G34&Dy_d-(6+2f`18 z{}ujM_;&E^;19qbfFBD#7XAbL2Y4fRBltAXvO5BwhZMEFGbH}G%ZE#NKS=fKZ__kj0+&wE*U(gzi0{Xxe)B<6^8uSOvK?2aj2&upY90d+wH3$WF z0FCD=&m*3BJl}YpIfGBgi<7wBB2xsrAR16LMapePneGUJ1+d5DCP5Vb>#Us z{*yTKx&hxHBgtJou+etcYmR?<<6R5HKizP)dg1)=z!??@-v?)*_S5%}eqjk$*HXR% zf5)aHe@O$cjKb{7*)jDCacBKGXhbj!z7%0nTtAT6J#{O zr<;?!iv0U+bL8{MCCItas5TO_2$ols|1RN|vvR`xBk_m--mWgL?S<>Y<*WEKVzJ_^ zJ{+r=fE;_^D&NCHiStSG9_p@Pi%;;c@6|~j!xLk0{YPLO60rL|pPe{2C!8$7See$y yb%$3Rgo|)&FXPNcP*~Vw4 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®(t28?mD*sM{ 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 J1pZ$MyalxF^0EK` literal 0 HcmV?d00001 diff --git a/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.xml b/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.xml new file mode 100644 index 00000000..1eb75510 --- /dev/null +++ b/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/net40/DotNetZip.xml @@ -0,0 +1,18621 @@ + + + + DotNetZip + + + + + Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

    + This is the version using unrolled loops. +

    +
    + + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Compressor State + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + An enum that provides the different self-extractor flavors + + + + + A self-extracting zip archive that runs from the console or + command line. + + + + + A self-extracting zip archive that presents a graphical user + interface when it is executed. + + + + + The options for generating a self-extracting archive. + + + + + The type of SFX to create. + + + + + The command to run after extraction. + + + + + This is optional. Leave it empty (null in C# or Nothing in + VB) to run no command after extraction. + + + + If it is non-empty, the SFX will execute the command specified in this + string on the user's machine, and using the extract directory as the + working directory for the process, after unpacking the archive. The + program to execute can include a path, if you like. If you want to execute + a program that accepts arguments, specify the program name, followed by a + space, and then the arguments for the program, each separated by a space, + just as you would on a normal command line. Example: program.exe arg1 + arg2. The string prior to the first space will be taken as the + program name, and the string following the first space specifies the + arguments to the program. + + + + If you want to execute a program that has a space in the name or path of + the file, surround the program name in double-quotes. The first character + of the command line should be a double-quote character, and there must be + a matching double-quote following the end of the program file name. Any + optional arguments to the program follow that, separated by + spaces. Example: "c:\project files\program name.exe" arg1 arg2. + + + + If the flavor of the SFX is SelfExtractorFlavor.ConsoleApplication, + then the SFX starts a new process, using this string as the post-extract + command line. The SFX waits for the process to exit. The exit code of + the post-extract command line is returned as the exit code of the + command-line self-extractor exe. A non-zero exit code is typically used to + indicated a failure by the program. In the case of an SFX, a non-zero exit + code may indicate a failure during extraction, OR, it may indicate a + failure of the run-after-extract program if specified, OR, it may indicate + the run-after-extract program could not be fuond. There is no way to + distinguish these conditions from the calling shell, aside from parsing + the output of the SFX. If you have Quiet set to true, you may not + see error messages, if a problem occurs. + + + + If the flavor of the SFX is + SelfExtractorFlavor.WinFormsApplication, then the SFX starts a new + process, using this string as the post-extract command line, and using the + extract directory as the working directory for the process. The SFX does + not wait for the command to complete, and does not check the exit code of + the program. If the run-after-extract program cannot be fuond, a message + box is displayed indicating that fact. + + + + You can specify environment variables within this string, with a format like + %NAME%. The value of these variables will be expanded at the time + the SFX is run. Example: %WINDIR%\system32\xcopy.exe may expand at + runtime to c:\Windows\System32\xcopy.exe. + + + + By combining this with the RemoveUnpackedFilesAfterExecute + flag, you can create an SFX that extracts itself, runs a file that + was extracted, then deletes all the files that were extracted. If + you want it to run "invisibly" then set Flavor to + SelfExtractorFlavor.ConsoleApplication, and set Quiet + to true. The user running such an EXE will see a console window + appear, then disappear quickly. You may also want to specify the + default extract location, with DefaultExtractDirectory. + + + + If you set Flavor to + SelfExtractorFlavor.WinFormsApplication, and set Quiet to + true, then a GUI with progressbars is displayed, but it is + "non-interactive" - it accepts no input from the user. Instead the SFX + just automatically unpacks and exits. + + + + + + + The default extract directory the user will see when + running the self-extracting archive. + + + + + Passing null (or Nothing in VB) here will cause the Self Extractor to use + the the user's personal directory () for the default extract + location. + + + + This is only a default location. The actual extract location will be + settable on the command line when the SFX is executed. + + + + You can specify environment variables within this string, + with %NAME%. The value of these variables will be + expanded at the time the SFX is run. Example: + %USERPROFILE%\Documents\unpack may expand at runtime to + c:\users\melvin\Documents\unpack. + + + + + + The name of an .ico file in the filesystem to use for the application icon + for the generated SFX. + + + + + Normally, DotNetZip will embed an "zipped folder" icon into the generated + SFX. If you prefer to use a different icon, you can specify it here. It + should be a .ico file. This file is passed as the /win32icon + option to the csc.exe compiler when constructing the SFX file. + + + + + + + Whether the ConsoleApplication SFX will be quiet during extraction. + + + + + This option affects the way the generated SFX runs. By default it is + false. When you set it to true,... + + + + + Flavor + Behavior + + + + ConsoleApplication + no messages will be emitted during successful + operation. Double-clicking the SFX in Windows + Explorer or as an attachment in an email will cause a console + window to appear briefly, before it disappears. If you run the + ConsoleApplication SFX from the cmd.exe prompt, it runs as a + normal console app; by default, because it is quiet, it displays + no messages to the console. If you pass the -v+ command line + argument to the Console SFX when you run it, you will get verbose + messages to the console. + + + + + WinFormsApplication + the SFX extracts automatically when the application + is launched, with no additional user input. + + + + + + + When you set it to false,... + + + + + Flavor + Behavior + + + + ConsoleApplication + the extractor will emit a + message to the console for each entry extracted. + + When double-clicking to launch the SFX, the console window will + remain, and the SFX will emit a message for each file as it + extracts. The messages fly by quickly, they won't be easily + readable, unless the extracted files are fairly large. + + + + + + WinFormsApplication + the SFX presents a forms UI and allows the user to select + options before extracting. + + + + + + + + + + Specify what the self-extractor will do when extracting an entry + would overwrite an existing file. + + + + The default behavvior is to Throw. + + + + + + Whether to remove the files that have been unpacked, after executing the + PostExtractCommandLine. + + + + + If true, and if there is a + PostExtractCommandLine, and if the command runs successfully, + then the files that the SFX unpacked will be removed, afterwards. If + the command does not complete successfully (non-zero return code), + that is interpreted as a failure, and the extracted files will not be + removed. + + + + Setting this flag, and setting Flavor to + SelfExtractorFlavor.ConsoleApplication, and setting Quiet to + true, results in an SFX that extracts itself, runs a file that was + extracted, then deletes all the files that were extracted, with no + intervention by the user. You may also want to specify the default + extract location, with DefaultExtractDirectory. + + + + + + + The file version number to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + + + The product version to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + You can use any arbitrary string, but a human-readable version number is + recommended. For example "v1.2 alpha" or "v4.2 RC2". If you specify nothing, + then there is no product version embedded into the EXE. + + + + + + The copyright notice, if any, to embed into the generated EXE. + + + + It will show up, for example, while viewing properties of the file in + Windows Explorer. You can use any arbitrary string, but typically you + want something like "Copyright � Dino Chiesa 2011". + + + + + + The description to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed during a + mouseover in Windows Explorer. If you specify nothing, then the string + "DotNetZip SFX Archive" is embedded into the EXE as the description. + + + + + + The product name to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed + while viewing properties of the EXE file in + Windows Explorer. + + + + + + The title to display in the Window of a GUI SFX, while it extracts. + + + + + By default the title show in the GUI window of a self-extractor + is "DotNetZip Self-extractor (http://DotNetZip.codeplex.com/)". + You can change that by setting this property before saving the SFX. + + + + This property has an effect only when producing a Self-extractor + of flavor SelfExtractorFlavor.WinFormsApplication. + + + + + + + Additional options for the csc.exe compiler, when producing the SFX + EXE. + + + + + + Version of the csc.exe compiler, if not specified then the default version + will be used. + + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Saves the ZipFile instance to a self-extracting zip archive. + + + + + + The generated exe image will execute on any machine that has the .NET + Framework 4.0 installed on it. The generated exe image is also a + valid ZIP file, readable with DotNetZip or another Zip library or tool + such as WinZip. + + + + There are two "flavors" of self-extracting archive. The + WinFormsApplication version will pop up a GUI and allow the + user to select a target directory into which to extract. There's also + a checkbox allowing the user to specify to overwrite existing files, + and another checkbox to allow the user to request that Explorer be + opened to see the extracted files after extraction. The other flavor + is ConsoleApplication. A self-extractor generated with that + flavor setting will run from the command line. It accepts command-line + options to set the overwrite behavior, and to specify the target + extraction directory. + + + + There are a few temporary files created during the saving to a + self-extracting zip. These files are created in the directory pointed + to by , which defaults to . These temporary files are + removed upon successful completion of this method. + + + + When a user runs the WinForms SFX, the user's personal directory (Environment.SpecialFolder.Personal) + will be used as the default extract location. If you want to set the + default extract location, you should use the other overload of + SaveSelfExtractor()/ The user who runs the SFX will have the + opportunity to change the extract directory before extracting. When + the user runs the Command-Line SFX, the user must explicitly specify + the directory to which to extract. The .NET Framework 4.0 is required + on the computer when the self-extracting archive is run. + + + + NB: This method is not available in the "Reduced" DotNetZip library. + + + + + + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting console-based exe"; + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication) + End Using + + + + + a pathname, possibly fully qualified, to be created. Typically it + will end in an .exe extension. + + Indicates whether a Winforms or Console self-extractor is + desired. + + + + Saves the ZipFile instance to a self-extracting zip archive, using + the specified save options. + + + + + This method saves a self extracting archive, using the specified save + options. These options include the flavor of the SFX, the default extract + directory, the icon file, and so on. See the documentation + for for more + details. + + + + The user who runs the SFX will have the opportunity to change the extract + directory before extracting. If at the time of extraction, the specified + directory does not exist, the SFX will create the directory before + extracting the files. + + + + + + This example saves a WinForms-based self-extracting archive EXE that + will use c:\ExtractHere as the default extract location. The C# code + shows syntax for .NET 3.0, which uses an object initializer for + the SelfExtractorOptions object. + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting WinForms-based exe"; + var options = new SelfExtractorOptions + { + Flavor = SelfExtractorFlavor.WinFormsApplication, + DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere", + PostExtractCommandLine = ExeToRunAfterExtract, + SfxExeWindowTitle = "My Custom Window Title", + RemoveUnpackedFilesAfterExecute = true + }; + zip.SaveSelfExtractor("archive.exe", options); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + Dim options As New SelfExtractorOptions() + options.Flavor = SelfExtractorFlavor.WinFormsApplication + options.DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere" + options.PostExtractCommandLine = ExeToRunAfterExtract + options.SfxExeWindowTitle = "My Custom Window Title" + options.RemoveUnpackedFilesAfterExecute = True + zip.SaveSelfExtractor("archive.exe", options) + End Using + + + + The name of the EXE to generate. + provides the options for creating the + Self-extracting archive. + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + + Think of the as a "root" or + base directory used in the archive for the files that get added. when + is true, the hierarchy of files + found in the filesystem will be placed, with the hierarchy intact, + starting at that root in the archive. When preserveDirHierarchy + is false, the path hierarchy of files is flattned, and the flattened + set of files gets placed in the root within the archive as specified in + directoryPathInArchive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use as a prefix for each entry name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, + \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method + with = false will + result in an exception because of a duplicate entry name, while + calling this method with = + true will result in the full direcory paths being included in + the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream + containing the entry data, on a just-in-time basis. + + + + + In cases where the application wishes to open the stream that + holds the content for the ZipEntry, on a just-in-time basis, the + application can use this method. The application provides an + opener delegate that will be called by the DotNetZip library to + obtain a readable stream that can be read to get the bytes for + the given entry. Typically, this delegate opens a stream. + Optionally, the application can provide a closer delegate as + well, which will be called by DotNetZip when all bytes have been + read from the entry. + + + + These delegates are called from within the scope of the call to + ZipFile.Save(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked by ZipFile.Save() to get the + readable stream for the given entry. ZipFile.Save() will call + read on this stream to obtain the data for the entry. This data + will then be compressed and written to the newly created zip + file. + + + the delegate that will be invoked to close the stream. This may + be null (Nothing in VB), in which case no call is makde to close + the stream. + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine. This encoding is distinct + from the encoding used for the filename itself. See + . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced version of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced version of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to ignore duplicate files (report only the first entry) + when loading a zipfile. + + + + The default value is false, which will try to make all files + available (duplicates will have a "copy" suffix appended to their name). + Setting this to true prior to using Initialize to read a + zipfile will prevent this and instead just ignore the duplicates. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf�.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Make sure you do not read from this field if you've set the value using + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + If you set this value, make sure you do not accidently use in your code + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if or is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileStream(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instance by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + + + Static constructor for ZipFile + + + Code Pages 437 and 1252 for English are same + Code Page 1252 Windows Latin 1 (ANSI) - + Code Page 437 MS-DOS Latin US - + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + Total bits available in the input buffer. + + + Total bytes available in the input buffer. + + + Ensure that count bits are in the bit buffer. + Can be up to 16. + Returns false if input is not sufficient to make this true. + + + + This function will try to load 16 or more bits into bitBuffer. + It returns whatever is contained in bitBuffer after loading. + The main difference between this and GetBits is that this will + never return -1. So the caller needs to check AvailableBits to + see how many bits are available. + + + + Gets count bits from the input buffer. Returns -1 if not enough bits available. + + + + Copies length bytes from input buffer to output buffer starting at output[offset]. + You have to make sure, that the buffer is byte aligned. If not enough bytes are + available, copies fewer bytes. + + Returns the number of bytes copied, 0 if no byte is available. + + + + Return true is all input bytes are used. + This means the caller can call SetInput to add more input. + + + + + Set the byte array to be processed. + All the bits remained in bitBuffer will be processed before the new bytes. + We don't clone the byte array here since it is expensive. + The caller should make sure after a buffer is passed in. + It will not be changed before calling this function again. + + + + Skip n bits in the buffer. + + + Skips to the next byte boundary. + + + + This class maintains a window for decompressed output. + We need to keep this because the decompressed information can be + a literal or a length/distance pair. For length/distance pair, + we need to look back in the output window and copy bytes from there. + We use a byte array of WindowSize circularly. + + + + Add a byte to output window. + + + + Copy up to length of bytes from input directly. + This is used for uncompressed block. + + + + Free space in output window. + + + Bytes not consumed in output window. + + + Copy the decompressed bytes to output array. + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Sanitize paths in zip files. This means making sure that relative paths in a zip file don't go outside + the top directory. Entries like something/../../../../Temp/evil.txt get sanitized to Temp/evil.txt + when extracting + + A path with forward slashes as directory separator + sanitized path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly used to be built for .NET 2.0, so could not use + extension methods. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + Flushes the underlying stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Close the stream. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Flush the content in the stream. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Ability to set Last Modified DOS time to zero + (for using with EmitTimesInWindowsFormatWhenSaving+EmitTimesInUnixFormatWhenSaving setted to false) + some flasher hardware use as marker of first binary + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of
    the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + compression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + DEFLATE64 compression. (Decompress only). + For COM environments, the value is 9. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Flush the stream. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + The number of characters read. The number will be less than or equal to + count depending on the data available in the source TextReader. Returns -1 + if the end of the stream is reached. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation unconditionally. + + Decoding a MSZip file requires the dictionary state to be set unconditionally + at the end of each block to the previous decoded data + The dictionary bytes to use. + Z_OK if all goes well. + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. + + + + + The minimum size of the working buffer used in the ZlibCodec class. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + diff --git a/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.dll b/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.dll new file mode 100644 index 0000000000000000000000000000000000000000..a02cca4eac90403ce9b52a79457c1d8df610cf3b GIT binary patch literal 252928 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

    )NAOXtY9^>N+U4{+b2j~Q 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 literal 0 HcmV?d00001 diff --git a/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.pdb b/source-code/Mod Manager (Facelift Development)/packages/DotNetZip.1.16.0/lib/netstandard2.0/DotNetZip.pdb new file mode 100644 index 0000000000000000000000000000000000000000..43d7be934cbdc45211b1cbd3405ec58767b34edb GIT binary patch literal 109444 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 + + + DotNetZip + + + +

    + Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

    + This is the version using unrolled loops. +

    +
    + + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Compressor State + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Flush the stream. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + The number of characters read. The number will be less than or equal to + count depending on the data available in the source TextReader. Returns -1 + if the end of the stream is reached. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation unconditionally. + + Decoding a MSZip file requires the dictionary state to be set unconditionally + at the end of each block to the previous decoded data + The dictionary bytes to use. + Z_OK if all goes well. + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. + + + + + The minimum size of the working buffer used in the ZlibCodec class. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + Total bits available in the input buffer. + + + Total bytes available in the input buffer. + + + Ensure that count bits are in the bit buffer. + Can be up to 16. + Returns false if input is not sufficient to make this true. + + + + This function will try to load 16 or more bits into bitBuffer. + It returns whatever is contained in bitBuffer after loading. + The main difference between this and GetBits is that this will + never return -1. So the caller needs to check AvailableBits to + see how many bits are available. + + + + Gets count bits from the input buffer. Returns -1 if not enough bits available. + + + + Copies length bytes from input buffer to output buffer starting at output[offset]. + You have to make sure, that the buffer is byte aligned. If not enough bytes are + available, copies fewer bytes. + + Returns the number of bytes copied, 0 if no byte is available. + + + + Return true is all input bytes are used. + This means the caller can call SetInput to add more input. + + + + + Set the byte array to be processed. + All the bits remained in bitBuffer will be processed before the new bytes. + We don't clone the byte array here since it is expensive. + The caller should make sure after a buffer is passed in. + It will not be changed before calling this function again. + + + + Skip n bits in the buffer. + + + Skips to the next byte boundary. + + + + This class maintains a window for decompressed output. + We need to keep this because the decompressed information can be + a literal or a length/distance pair. For length/distance pair, + we need to look back in the output window and copy bytes from there. + We use a byte array of WindowSize circularly. + + + + Add a byte to output window. + + + + Copy up to length of bytes from input directly. + This is used for uncompressed block. + + + + Free space in output window. + + + Bytes not consumed in output window. + + + Copy the decompressed bytes to output array. + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Sanitize paths in zip files. This means making sure that relative paths in a zip file don't go outside + the top directory. Entries like something/../../../../Temp/evil.txt get sanitized to Temp/evil.txt + when extracting + + A path with forward slashes as directory separator + sanitized path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly used to be built for .NET 2.0, so could not use + extension methods. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + Flushes the underlying stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Close the stream. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Flush the content in the stream. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Ability to set Last Modified DOS time to zero + (for using with EmitTimesInWindowsFormatWhenSaving+EmitTimesInUnixFormatWhenSaving setted to false) + some flasher hardware use as marker of first binary + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of
    the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + compression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + DEFLATE64 compression. (Decompress only). + For COM environments, the value is 9. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + + Think of the as a "root" or + base directory used in the archive for the files that get added. when + is true, the hierarchy of files + found in the filesystem will be placed, with the hierarchy intact, + starting at that root in the archive. When preserveDirHierarchy + is false, the path hierarchy of files is flattned, and the flattened + set of files gets placed in the root within the archive as specified in + directoryPathInArchive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use as a prefix for each entry name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, + \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method + with = false will + result in an exception because of a duplicate entry name, while + calling this method with = + true will result in the full direcory paths being included in + the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream + containing the entry data, on a just-in-time basis. + + + + + In cases where the application wishes to open the stream that + holds the content for the ZipEntry, on a just-in-time basis, the + application can use this method. The application provides an + opener delegate that will be called by the DotNetZip library to + obtain a readable stream that can be read to get the bytes for + the given entry. Typically, this delegate opens a stream. + Optionally, the application can provide a closer delegate as + well, which will be called by DotNetZip when all bytes have been + read from the entry. + + + + These delegates are called from within the scope of the call to + ZipFile.Save(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked by ZipFile.Save() to get the + readable stream for the given entry. ZipFile.Save() will call + read on this stream to obtain the data for the entry. This data + will then be compressed and written to the newly created zip + file. + + + the delegate that will be invoked to close the stream. This may + be null (Nothing in VB), in which case no call is makde to close + the stream. + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine. This encoding is distinct + from the encoding used for the filename itself. See + . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced version of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced version of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to ignore duplicate files (report only the first entry) + when loading a zipfile. + + + + The default value is false, which will try to make all files + available (duplicates will have a "copy" suffix appended to their name). + Setting this to true prior to using Initialize to read a + zipfile will prevent this and instead just ignore the duplicates. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf�.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Make sure you do not read from this field if you've set the value using + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + If you set this value, make sure you do not accidently use in your code + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if or is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileStream(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instance by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + + + Static constructor for ZipFile + + + Code Pages 437 and 1252 for English are same + Code Page 1252 Windows Latin 1 (ANSI) - + Code Page 437 MS-DOS Latin US - + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + From e26a46a69c170610213117448c2d3d805dcfae5a Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 3 Apr 2024 15:11:28 +1100 Subject: [PATCH 04/62] [v240402] - Install DotNetZip Include DotNetZip from Nuget. See previous commit. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 250368 -> 268800 bytes .../bin/Release/DotNetZip.dll | Bin 0 -> 472064 bytes .../bin/Release/DotNetZip.pdb | Bin 0 -> 622080 bytes .../bin/Release/DotNetZip.xml | 18621 ++++++++++++++++ 4 files changed, 18621 insertions(+) create mode 100644 source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.dll create mode 100644 source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.pdb create mode 100644 source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.xml diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index efdb6f8894faa697739d7644a71193e6c9871adf..58b8a6e3346eb3b8841326dea6305b6d69ffcef7 100644 GIT binary patch delta 7456 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 PC%fj@L8I^Twex=gLVYJj delta 4980 zcmb_f3sjZG7G}@<=g3P0L?lEZLPP`vMCGAyctl{z!_>T*2nd=*dPFor1FTdsQ(%m( z{g$x;s#$?k#tWf0@|T~2 zEE=#`B}&*hTOZQoT+uq-O=NR77$SaVX?7rE#NV>7>pg@lM?A0J zO9&_YlWguJ7ZZjNrVv61-h>eZnQYnONFP9uNvx$gR1b69-XxO=QG{OdsMAUDB|J)) zN*GP(4$;+>W6|?S<`VoUkR01YayIqn5FRExLXh@(Bnt?S5hBUQXt5VrWUOWWet@So&D*;h2h$_2R{*#?nK7Rs6zvyuKRB)epX?B7LF zwdmGyN9valk_h(@{0KgT0D_e?^GWYP8V7T*1!OD%QK}3old&W@or6OqP8Il9C%zmu&{=ODJAEKI%P=Ln`yCeFur zRT&FJ#fn;(CTU+~3>C#ID@1v&zv}Pn%S6hgCDsWJ)ngLv%vVy@-1-ozMPt%Ix;R`Q zYZe`d8t(sqPgkdf*Fm*MqG;(KCW<_cip0YcL}i%KG)iAxx4KLwZ!o$06GjsP2tx^h zgkgjrLNH-CLDnyny`$ubc{a{Wnj6`%Z_D%z2oWG-FW&N!wwZDpnueQz1o+E$62`T@G< z$ghU9VPfibFBiGzY??EikVbfwM!dzA?Ln|Z98Vq~E^g23Eqx>&r15h!KHMdmG*`k% zf{Y&1U9}|B+YDWo^A+lfiFDZyRL52sOT^B~pmEW(=oo@@9!pY&vo@JBtDZz-GG!?i zUul;qlj)NBcn~2~O`f;!x|H0@2<4!5PG-y$%djvE3bFDXK2F^`Eyy>h#dQ=yCc&?;fRuG;gtR~1q$@V;m z@Z!a=U#7Rp7zAH*D}K7}q|bO_$X(Vl{9f{_cdo;XecTlrVz}aC`tW=Aq_}ITtDVms z2|DqWo&TDT6d1THEU#eo@z&AG0dZ`6KlST1cY~>1Z#u?s;&Gm>W>?he8c!DMph7%x zbfu|;H6ADeeFE(>BSw_8tT12T6Q_adY}%-pl9`wo6o9pM;G?FP_HtE;ZHMYbKB~{s zR%kqE1jV180JZ4QBt;zlCK7#T!eKOc^9Z%QL4n5BVt^#^MB7R{J{{au_nPm(be`df zXZSh{v4dpw)J}geMX*0tJbicZ)Ek$QA-aMpLAy79U>y1=S$k

    Cx8haS2EHSAnim z0^gT)72RKXNbmeZak!LhXl`su9YOjG1{m*qP6=!%Nw&YL3u z!|e`}dGO?g`Gu;Xu^AdaraGAkfoFH~aP)BoTP@lN-UUpk=j%o5y&j?=BLf>sScb^V z9BMlu7xaD*+#Qo>j(n))KO+cj%oDS9+!GB;STlaI1N!3d_aH*M?-{m>H!Wp! zTA0lu;E&f`wvP=(!vsjek_Pr3e}yGAtzrg_#u8?LHzdh%;$r5dc`at=L6jRl#c@t_ z%&Y5}J%nb&bpI#i7nv6}J8VS6tl-Fq@TlO3{D|D(+^C${!MQn6qw^zY&x(wU9A$5_ z9$h-w46MAtp2atN@e#QG8q@HHpP4%vzGFT(s)U8z;h{ByV9km?V$|q}C;$H2u#v)h z*WERn*<5Vs#YbcOTPzFXUY1Kb@+kZ^1uWV|yikjr-{K{kP+* zIHH-2H}5$eYO$=DIl-+uF2}}=EE>z-VNtS}Pn$K3j(Qn-c-^Y@Ua-f|8!Y>O6-0Au zXYHWnh4GF0rpv5Sk2%-aPj@(>h9+QDI^2UD`FuHs{>WUk)SuZ%z{3u_XCB+T=*G2O zVuQ6Em)Vze_8%xUbi2HEH1I;e%vA8~KE%0yv)2K`cClYIN~8|3t%G@L+kRvh$a;j$ zl6Nm1f8qQ~d{f64-udFkx3a{Wci<*jwT67|!L-t=Y!i1`+5M?Y*L+a(CekC(v6JQA zEWbwOKhA`yqd`;;b(61Yq&D8jx4Ybanzj$=G@;pWR%;L7imq-I*WWr3udC#4_}A=a z8PsjziZ;)QX8A>O zGY`P?*q~D)n>x6G3FC%AnAOF7Z+=8*&3);68dvI+0DSaUJ{gUNSSU8M^S=K9Q(Ng` diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.dll b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.dll new file mode 100644 index 0000000000000000000000000000000000000000..e4dd8a25b9d341f8a03ca296182adcc558ef72fb GIT binary patch literal 472064 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

    lCwhUyk;^hkj&UIf$;|wWV3@ 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

    $EHj_$1}u}*S!owv66C+>p11G1Qk4X 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

  • "; + string selectend = "
  • "; + + + WebData.Invoke(new MethodInvoker(delegate { + WebData.SelectionStart = WebData.Find(selectstart); + WebData.SelectionLength = 289; + + WebData.Copy(); + WebDataParsed.Paste(); + + foreach (string line in WebDataParsed.Lines) + { + if (line.Contains(regex)) + { + string ver = line.Replace(regex, null).Replace("<", null).Replace("/", null).Replace("div", null).Replace(">", null).Trim(); + + SMAPIUpdateVer.Invoke(new MethodInvoker(delegate + { + SMAPIUpdateVer.Text = ver; + })); + } + } + })); + } + private void SMAPIValidationWorker2_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (e.Cancelled == true) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); + HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); + //MessageBox.Show(e.Error.Message); + CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); + } + else if (e.Error != null) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); + HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); + //MessageBox.Show(e.Error.Message); + CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); + } + else + { + //MessageBox.Show(SMAPIUpdateVer.Text); + CompareVersions(); + } + } + + //Handles when the user clicks the SMAPI icon + private void Icon_SMAPIUpToDate_Click(object sender, EventArgs e) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvConnecting; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "Connecting to NexusMods..."); + HelpTooltip.SetToolTip(SMAPIVer, "Connecting to NexusMods..."); + + SMAPIValidationWorker.RunWorkerAsync(); + } + + //Starts checking for updates when the SMAPI icon is clicked + private void StartSMAPIUpdateCheck_Tick(object sender, EventArgs e) + { + StartSMAPIUpdateCheck.Stop(); + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvConnecting; + SMAPIValidationWorker.RunWorkerAsync(); + } + + //Handles mod installation via ZIP file when the user clicks the "Install from ZIP" button private void ZipInstall_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog() @@ -792,6 +921,7 @@ private void ZipInstall_Click(object sender, EventArgs e) } } + //Handles mod installation via modpack when the user clicks the "Install via Modpack" button private void PackInstall_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); @@ -809,6 +939,7 @@ private void PackInstall_Click(object sender, EventArgs e) } } + private void CloseRefreshPanel_Click(object sender, EventArgs e) { RefreshPanel.Visible = false; @@ -1380,128 +1511,7 @@ private void DownloadSMAPIButton_Click(object sender, EventArgs e) Application.Exit(); } - private void SMAPIValidationWorker_DoWork(object sender, DoWorkEventArgs e) - { - string URL = "https://www.nexusmods.com/stardewvalley/mods/2400/"; - - - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - - request.Timeout = 45000; - - if (response.StatusCode == HttpStatusCode.OK) - { - Stream receiveStream = response.GetResponseStream(); - StreamReader readStream = null; - - if (response.CharacterSet == null) - { - readStream = new StreamReader(receiveStream); - } - else - { - readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet)); - } - - string data = readStream.ReadToEnd(); - - WebData.Invoke(new MethodInvoker(delegate { WebData.Text = data; })); - } - } - - private void SMAPIValidationWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - if (e.Cancelled == true) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); - HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); - CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); - } - else if (e.Error != null) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); - HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); - CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); - } - else - { - SMAPIValidationWorker2.RunWorkerAsync(); - } - } - - private void SMAPIValidationWorker2_DoWork(object sender, DoWorkEventArgs e) - { - string regex = "
    "; - - string selectstart = "
  • "; - string selectend = "
  • "; - - - WebData.Invoke(new MethodInvoker(delegate { - WebData.SelectionStart = WebData.Find(selectstart); - WebData.SelectionLength = 289; - - WebData.Copy(); - WebDataParsed.Paste(); - - foreach (string line in WebDataParsed.Lines) - { - if (line.Contains(regex)) - { - string ver = line.Replace(regex, null).Replace("<", null).Replace("/", null).Replace("div", null).Replace(">", null).Trim(); - - SMAPIUpdateVer.Invoke(new MethodInvoker(delegate - { - SMAPIUpdateVer.Text = ver; - })); - } - } - })); - } - - private void SMAPIValidationWorker2_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - if (e.Cancelled == true) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); - HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); - //MessageBox.Show(e.Error.Message); - CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); - } - else if (e.Error != null) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); - HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); - //MessageBox.Show(e.Error.Message); - CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); - } - else - { - //MessageBox.Show(SMAPIUpdateVer.Text); - CompareVersions(); - } - } - - private void Icon_SMAPIUpToDate_Click(object sender, EventArgs e) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvConnecting; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "Connecting to NexusMods..."); - HelpTooltip.SetToolTip(SMAPIVer, "Connecting to NexusMods..."); - - SMAPIValidationWorker.RunWorkerAsync(); - } - - private void StartSMAPIUpdateCheck_Tick(object sender, EventArgs e) - { - StartSMAPIUpdateCheck.Stop(); - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvConnecting; - SMAPIValidationWorker.RunWorkerAsync(); - } + private void SettingsIconImage_DoubleClick(object sender, EventArgs e) { From efd9876ab9a296b88dab544dbbd29dc35e818be4 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 17 Apr 2024 16:16:55 +1000 Subject: [PATCH 26/62] [v220402] - Push Release Objects Push release objects for version 220402_1704415P Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../obj/Release/Interop.Shell32.dll | Bin 38912 -> 38912 bytes ...d Manager.csproj.ResolveComReference.cache | Bin 375 -> 375 bytes .../obj/Release/Stardew Mod Manager.exe | 2 +- .../obj/Release/Stardew Mod Manager.pdb | Bin 339456 -> 339456 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Interop.Shell32.dll b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Interop.Shell32.dll index 415017666e63afbf1fa484b76ed7ba820d1c4fa9..a86c953c7cb4d0fee84b5c97534951d08c05bd4f 100644 GIT binary patch delta 38 ucmZqJz|^pTX+j6{iFEmm-KtFjJ9aCGJrbyJ?c8wqSG#n^fz1b+97F*@co8E2 delta 38 ucmZqJz|^pTX+j6Hs3z0KZq+7%ne_>iJSV*J-{N7(cKK`mjLip{97F*nJ`f`S diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.ResolveComReference.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.ResolveComReference.cache index 6a5fc7a2378d60e16665cfe0aaee70c68703ae2a..dbe63e9c3d5c2032634576ea50f5dd2ff94bcff0 100644 GIT binary patch delta 18 Zcmey)^qpygI3wG_ZAzN;k&|T^qX0tA21Wn? delta 18 acmey)^qpygI3wHM%Uo0aoF~gNMgagtiw2AU diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe index 043f9536..e5e20f1d 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e941951566a870fe6a6c74c78a4caa6a85bb4f5eb0c18192d5a3a1789cea334 +oid sha256:958a62ff43eeec42d452062a5cdb99480834d8fcf571b2091b3f9c2c17b17097 size 8261632 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb index 7f5e575be4cf8d2017b6f40520acd5d5820cc98e..682427faad52647e1862f9f08027e8192964abac 100644 GIT binary patch delta 63616 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 delta 63912 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 From accc10726bb9877bc0d2653616f23e060347b4c5 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 17 Apr 2024 16:17:17 +1000 Subject: [PATCH 27/62] [v220402] - Update Build Build [v220402_1704415P] Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../bin/Release/Stardew Mod Manager.exe | 2 +- .../bin/Release/Stardew Mod Manager.pdb | Bin 339456 -> 339456 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe index 043f9536..e5e20f1d 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e941951566a870fe6a6c74c78a4caa6a85bb4f5eb0c18192d5a3a1789cea334 +oid sha256:958a62ff43eeec42d452062a5cdb99480834d8fcf571b2091b3f9c2c17b17097 size 8261632 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index 7f5e575be4cf8d2017b6f40520acd5d5820cc98e..682427faad52647e1862f9f08027e8192964abac 100644 GIT binary patch delta 63616 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 delta 63912 zcmb^4d3;RQANc=!ZZeTnLP9LrBt*ncY_TLH#J+|g_AMdQzSowqFGVrrpwt#y?X-g0 zi`t8#D2mdeVy}JqzTPtvAK%CC_xtZR?K{tV-{;&jcg|hs-kD*&>TA8~JFBF}1P{ah zn495K*7by%W7bmdw#A#9l&!PrHOIAFLF>nlUiKOvKJs||@uQ1lf~>zcsJ%gLb*twd zvVHpQKJC8ya(txk)0-3a#b0^R^muq`vFQEN14nh6rvpxHiJhqkd1{{yVvPiAHr^#_yUf^|t2v|G7bV;;8Hw3b#Gd+1tC!`hkOr zxfH(Ay?&8_7#k_|<*k`bK{os+!=FA_udfYFQI|i8T8eeQvcwWSs1~Wev z*bv(1*zrRx?DJRX=rC9RZb^e}Cl@5Ru6ujs`nJLg%PQCE8_tj3miTRN7uS^yRxR3g z^t(i5iBN`HM_bs^U`t0+8Ok=`VkdplT@|*ST>3yI*>*0osbjXr%gd`~wz13qw3MTI zHCytES}MY}c15VAJmU>*XIIo^+%G-UQi1V!TWq?NPh`9zI zi4@ge8EUCS(G}Z(mEr1&ZNbVGD#4b?-w0dms!&TLWixF(S2bmP=c>?bl^HLWP1%+l z@Uy*JK>M=4E42@T2n^#wRKq2+DA%E!_9cg3Nghr zjE>t5uldIGsAl1n@}IZu$>H3#{_6r&L)(mXkt&|Q0k#{Ax3;}sr#-GX>;0f-k2G`J zHm_f*X4>L6{N^IF^2c#MTg=Aw^h@T(rmF9@=uLmQTMF}pS8ZWCg4NY+wRdz<>XvQg z&dFwlC$`eNDyc!X}j0s-YI{eg-9$))YsHF(w?`&s(s>OJo z-Jx#b@(P~Ws_(8tVj_v6B>bP*HtsHM!u8z))p}d}p4Kw?o={6MN)v2n?c>GvhFXd< zo@tBU+m!NUjF({iqwUzcF}Vf&@c(fdO^ zOEQh`ON0J04E?^fOR(+4{!)~^rmPfYd9uo46J3IJwP+=ULk@(xm8LN7OWSt`in!!` zY1p!_oreGSyRyF`Lm~s40l@7(nqRfExDpBxvSg8 z{#?dXFKk;5N2+)H4bW%an65VWBl%s-XNKN4!t}F69VtquZ0mlcoMLTS@XIEZX{&#< zmioAD#?fcW^nGdDc--H%=(x9;M+S?V%-xmaM_elKq>nb%x6IFG7|pjmIZ@^d%QrlK zU0c}2P*rzZ{fkYN>SSB+`%gh#NXxEW3ct?7+C{#lv4hKo-EB{v8w;oHYH=0-WQNFUqQ8(saT zFl|<6?5ET*6>ZsW9?zXR$6{EEkhNhooQE=RY1j_uV_$su=!12Tb9@*sBtOxapM#4S zzlh&ijPcK$c^0jGdYSEX%6*JD!^bE?gb?9IF(b;h?`9QCBMb9wdw(<3b2{_7ywCq$ zXSi+9-cmlFzk;%~x!gAURzU8hv>3qHG7K^z4L`%*7JNOA8*^-&v}}njqUKx)@sw$& zeb#gNbpJLkUbbdeyw$XAU9NoNqNdrNTnotEk5=;1niy@w8_kUt+xFdxZg8fB$Q- zRO8wE+rl0MTl(kXRb?EwsKS-4f2Ow@Y8#t5*%C$h37gl$66%Dl%EK0_nr+6zP|s+x z9dbK+;cQzMU)!07-l~J`=EHW>h<+66S)CfztQubJTmo#9ANeS&ZNZ~{)bMy5YN=X{euz-Tv6jY<2ykE6E|7+|v+g5vb!{|a| z9c*6D$5VUu^H572YVWh{d>*Ry*{(g8-l_6msHHC1+O{tL^{~`qsGIH7e`U;Wd2Jon zwDOaptc_t2joB9q>t{RLfj7Br))!OMiESP)!xg<9@v133I`-Aq?1sHwm!S6sybiD> zybe_N8H!X-wyk}gQ>jC?oo`l{#q!uXzOBUb&wKlld71IqX&+w#7juVp6B zyH|(hQtTr$I^i2=RP&QlS^*>%wM&1*&c4#ay|^wDFMn;ZP!Br)JUcElK>jmIw(+m zseac}1J!tSM|%aSaPv+H-JrQyPNxJZPjhTZJ*~M}TrXurZP6QoRI2(@mnxvjK!*Y< zpL(N*6d)O=|0_U?ak^kI$uYW0Ft6#T9uTZXnw3iHhrz0dm^VbVRekh;5GGlvpM)^U zN*z>CRE zgJ*0R%2N&2GlcE>aHvXkzs~-^zEd3C#U()hSy)xnOG_wsonBbwH;YB+y@l0K_rVd) zO7FY4+Ka1cfWexbS@8RE$hLK(e0+b7p6iyTlXBC(r?J% zTD|)XO4d*ORiyoS{CfL1>i)`xk@W~?s#`KuxK|?@txOduzNLeTsNek(ayja)$*PV; znPQ9f3Rl5i{iz*76)E1LtAwi(Uh7E(k}5>%S3MwHeHl{E*D>{|&*rumjkKxke5G5u zvR33Qsw`fKOzBH?soF*tEUM~y%_Vg;H$fvu^pK)znAcrWOGyg4B|&ynr=sn9S= zQv9>7Qc^Y4X9ASF|5az54WHF1MV+uH{asmAps_pUYX~V1i^_VjA@+5I-n1)|_UoQx zNGHTmH=UrWG4Heb(v`XN*x;<^wdR+p45N_)``^+$@3|;FG(r^!xOQyk<0(tVq_`1MMvv7$7E5ZhgC)3d|8l*$$!=&3uT~Z_28+_ASIe#oy6z1qb%O5j5Pgx}H{^Cw|~8 zmy?dHM>)!;R+o*}Pfzdel1G=VprZVX20F^W{%jV@Q}cXvJ*k2!6!e&uo^wVZ<>#wA zX0d?b=>0r;b|o`F->9HmRUW;il9{idEP%39-%WTji6`rdwCv9$a)y>i2US!7K~m*0 z5hq14|68WA!RK)-qooyAKRPg6yyBjrnC3?1NZ`srDfR3m>+**JlO4 z*RrOJiDXKvb4pg%Pmf5ZoF1!JMXI(TDb5w6^QThwT$JyOb9Yy6RDs%3 zGpn?aV@*h^tbB7EqP#5SY&^z;SjU=hqcS~o)%g^jpFKqtp2DxD^C{v}*gXeVQPCmo zLmYJ$%7Sn{s!}y9tLlstj+0BM>VGoCQ9d-Q9#*63zBv7&ifR=SRnSq8_*prdh+DV@2Jwmadoc5Be?tE^d^F`SO+AqO|!JGqCX zaB3ir#t!U%W2irhCs2%O)yt)%ULVCvdiDQOHI}N!>S!}s4GrndX@oqoJFx$)NqJuO z`u3(a^x~;EMbpu@omJTuK0RttwP0QCR-FwwAQlpjm9mit{ziewemm2(NrEW z(ysHt3v^4Ws~=WZg;Eolein74Jjwa=(tGpCCzAibG+Ftq&6@q*r-hX~eDJ_7-3BN1 z9B9~guA7-If$5}|<~!Sy=}g8ypKe6Y{WCqj(*BZ!>&@NsbjAf6;2@!I_T4*4lg#np6(b!XRUFTbA0{u z;OX4{si!Z-u&Vhwd-3yag{N|RQ%~27r96bAy*zlA{OM7ja<}?=W32Melb`7y5K`_& zfmHL?v#Y7xVcq%-={q=ipuLZpQROb7DPH8PCNITBFKeiB+jo%@D85b9qsqO{s<<+q zU)QgxTKi8g#xRd;4(xv$@Vpfo=v_6L*=F*Vfd{!y4|ex%)f(s`wb*WEF?}F)q`Vq` zWM*Z_pCO;0yey1*S@}=fO^ohej*a0Y734wheR^;lberg$KtJitg@v4PtidrH?&ZNw z=hK6=!|h}P-93(dpnaD`2~&Q0a5Ca%VP<8X^ngAtxyw0@+%$EPkg8e5GRszSM+uqb zTn(Ks<+E9qlT-iUvTNiKV*l&-)0F3F+E6d7tvZJMP|A^;^;vl{%KJGR)B}=S^2+Mg`cipN=eN= zrBu6+D9$kC!8^lGk9g+d^MC z1;tSR5Fz!m>SWEXzur=sXSZ^4A`jjRe|of_$&U?; z!cnKdXLH$_sui1Z;mSYfV_KR|6)CRR)P505?+;VnesP@P$b(M$^xy#H)&OU*9+>Y0I%m%Ng*Fg{=L1L zzqj)&Y=FJ8<4-#pt{$(e*H>-*E;-9T-vZiGzDaMXufj|DQk+gm@g~*n;sA;>9%N6zsLMms?M7pz@cx%7pzn{gFmrXH86_g~|0Mq*1r# z|IbZH8ujbX*^fLvpW%+wucdt&aiZ6@p~_oojWj|%sZ%SfA)eqd`O4(w37Tc)Kbz}W z^_55dNNJtRa}Ml(JJJ3OX+PX+Fq4N+MT%$W+LGEqDv*@4`ltS?k?Q7u-q{FOM?O6| z(@0IQ8@>$phIHm$wT^PW0l*|l`13k>&B`@ zNM+|PE&HeG4Wk>yqq16v7{C>s*6F46W`E_a-suBPXdsCillA2$yiJRufuqDt8kp>y zNS5qya)$`^7{(hN)KvBGJIaZeJo-DZ|4pW)6ur19uiv0}E+NG!`fO8`>eq<#F?noq zVE@~lDK5zr0s8d--mA)%?03jnku%s&j~@1!%xtDQg~Ump^7wqiOrbcvm9w7)4CJiv zn|N9}>8$FUSNmi=sk&L;iC6vn;yA672Z!WOk6skt*L|9+PX7Cy#cV*I9$!*iwzdAd zx$5dynX^85e6~D|-jsLMU0SG4YKK11g6{1@rklRpLiO-3EawV53OKO;?Mv~P*1AA; z)jZ(5vwTH||5fNm`J&eLi`zMiQofXsa>>a>ZkayoQkJ~h`?^C*Rg3FK8OvL$zDf#_cUyb9~T$kSOLAj{S2 z#S3Q_VhzH9$c+PI5OT-F7>r!RGlpPGWuzKI8Av8E47=l3H~~lCTpWo@aTIRG(YPDO z;7Lryt7zr_Yd8+y;&{x?VQT{B!-*JB z)HW=bIkTV~OtI3yj=4AzyarQaJT9nmY+L85B@^QEx z<bt4z9)HIhcv)N8seP%sm~5%aXd=DMLpo6=m&Y}#dg65q!yDKP zZy{^AaRZ z2C|dzrU&e+8G18b5PdKbxj$iTjCu8w_DXY&cxne$Qh%~vFxvqrD`g-SN6u)hwJ`+a zu^@IpX}uE`W}FS&D1vN|MmVzl7~E2{vN_o6Epm=8#ggP%zwG&+ocRL=#}eMaSXm$J z1=7JXE-PDEyywi*>GnK*Ym_Jd8Y}7!9o3gEf0i_CKfUpbXU}BKM!G8cU=(I;TmjDU zV60BQ63Xk4jY;aoAh%1bZIP2<*?5dvx?(4;LdWSoom4=T`ed_{ZGeH;5W}%C%CSAG zH5r#fPE+h6<@!J;m9I^6M#nMA#$la+ZEzyCLyaA9F?Pf?*a_K4?agk-Zj4_>_OjMT z*aKPLjGj88Gv|htN;}s7esYf^z7K^muYFPGl{=31c^!Zi8JBsDL>Z65K^TKyp}cY_ zPeCc~i>X?5QIY1#(z!#E9Rhd1qTd!SIk4{iZuMZD;6>?UGXhSS1d;9iY5Ae7uAjX3thUZfch)Q%1o}r zyto<*qrA2v&hZksmV6mxL$kJUmbZ46%i8{i8!%z?*t;5_gxl`O@TT1%H)|SlRre6{1M9Jk5MLnrgW}k zRm8(_(?%J6Y|DPh-R32wvi-ioT=*KLwYOLZ-(yiUOb-46)<;*AK9-j*`}J&$cSjHG zjoI~vWL3VWM#`PG6XRru9N6v4oT!BwD_*8?H zeUniPJ7aO2fF*DZmP8i2Q3@|(8N7`V_yNlyGiz|7WM$Z>fSs`-j=)Md7dbLmH)3VH zidFE1oK#h1z}toEHCP;@FcG71AXdleSOZsK44%hWe26tsZfn-ULKue$SR4Cd9h`!7 zaXHq*^H?7rHe#Rw1MU{~wO9xnVFGdtv-U-f_SPxb6qjQ&+>P;g3^^mTp2h@ys)u^U zEzbifDxgauS=lqRMcIAHdQ-qT9)|77$2iAjZI$x2PTOH8%4LCe!I9VvWgAVx)!1D} z_vBt?8$G%wt5Gkq@@&0LV{&aA!gwnjhFy>)VeNxsQ1%3=D0=`aevRWW4P`FoJI9yc z1oCoVko<0E{t!+kF9*-5cvDURrNUp%#C_y6m^-4J3S&5agGF%;a_F|#=g4bspfb)Q zUmer1KF&uDe#QdiU}t=bU2zd|05LedwvNOl=w;}%UTTuMpo6}oFIJF}zF3W)_q>c3 zC%+cu`1C#2!F3pq8&I}nsW%kmB~5ZV88?%cBg9seGm9Va2>yt_<94JA8W=kmkZnvF zc!4tR!o2QAPL7N{=!<(XFYd=sJb;{57za@{$sJntR{825VYD5i$FK{Y#2$DGIi?!F z;t*u7VjYI(@LT*1x8iyH0Wat-z10ejY1JGD@hUpv89?$bvFw7f-D_L_gA^yxnsgS?xuuXp#c3*-NymoeV(;$uo)T>J9k z&Z3u5;nNOM`qOcLQyClVA8+gO$TTL(asCC9%0cfHM&diHhwm`~KVTAmL^;SAE{-=L z3J1t2&P7-J9xW()!fbla09C`}j^~E~%D;Yg(r%=Adu2bL^Fmo`a-wXfJ}7HTZmf#D zFSEbWJSbaQUTlc@b(evvyhnj(NACvf*z;y?zd%YoDGkE>SO8@&5Uh_4WL0(C|5WyS zp=1qt;`S^md4y6`W-J_K!4$7PjKjItJX#VE!HV+|aJ zaW1@}7{x$s663HQ&cyoo9X7zF*btXt6I_AKaTB({eb@>QU~4>xZSfJd!;jb=^YEfN zU_R`KUc47(v%NJ)4fJTq@lD=URd94!SBj;}x}m(@B$U^etfvlE0Va2I?PmkMNXyy4 z0F*V6LxufpU=YgLz+j|dV+c0DVJ`aVU{%EA9 zcQo@o#qu)Op}frXD3fo*GPoHl;WlK|HGXi>=cJiyF^*<7$w^b&9h6EdJ5gHMh0@Ay z9Ef{y2p+^)_%q6?atP&3?qOVqM^LuGW4IAdxahvaR8^CE$KMZA{)K)eFVAxZeef*G zi~bEu;&~VS_b^q!V`r>m?mEjGk>-~u{esfVm@Tc^say=w(!AH4giJ2 zhqHn`qdYhD|3lfKzChWLyhhn!yv5e|4twJV9EXOhV>6TmEq!S+zDm-#6|><{^uY5d z^)6y|#vh;;zLG<7P6l$Yg85(p%!Q>fH_Bl~CX~ZW9>#g&XyijV#OB9==!au40C~4$ z1mRMY>6T+K<2$e*@`k|(!{0F+GZinfC<89^ND0h~rI6D}qcn2XW|YB1EQ@_H0y$AJ z$|L6wMn&ZKZ$#?&5o%k9eeB(2KQWXSDGv`~xP6F|N2;v9Teg(rROr6{rbv^fa2HEW&0ei?F%AFj9q@ z+}%Ij#PknqMcSKmYxMf;-GD4*$K8Bow6$-Z5gn)^D|$zim8BEuFE{LYXO~NpmrZLv%7(naRhJ&4@_H0x>y#xPARmw~u$WTW6MlzYTpP`L zHx)%rJ{mBFjcz$*c^O}UvI|JJ*Nrs1_*idN{lToGj@$q0(?lW1L14&tMTei_v%v3A z0Zs?v2lA8fBhE&{;&`v5P&4X+Yta?gBkv`x`_ThW;1_rkv*TariFYsude8wmv6y13 z_hz63iCkC;eJ!@rFQfFpajLD!Cm>FbQ~ny|cu*b;;j%8fMe&SZCDy6boRYO^=qEPn1(U`SLiCL?a?7J-u9rIs{Ix_!p zDDz+2J`Hc)QO<(uq0E1Ml=*LfGXD+r#0jc|OVfsiu6Ew^3v5bW_8`qr_7%-B7+aw3 zJWKhyon)+ELw&K2DwNuqtgOUsQMUAUSQI;;tV*4*26jPt-Ca>uog{3A-BI?=vc|~X zxfkPKVjmoa{qP$cfWSu5lxXZUOb_d;B0L1_H`4&a5AykzP7={5j9OZ?7h4R8j z;6jwA{1!(sz6!_Sc1%TiiS(xR7LLV=tV>eA5>8~COVGw-i!R+y)%0+DXhIoL`ap3$ zpEawWa`pe3I{BG)2FeyT+hW*cN4L_VH}+En%+ZbY>3+(;*ILSDUe}?_>w1)V-GDN$ zoAC2_-NLxc>o$~m{Q+fOe?*zr4E%gvxyWKaLD_4c*9v-4f0e^y7boSiW2t9fRqG$5 zjyKc(j79K}OoK;I=HVCo|9bN&i_-DY4aJ5a@7JPFP+eZqNtBm#3Z+@D@6b$fmYlqg z{ongnc`C=JIb>JIX`;_LYRa1Y8%j&(b*YJbR-MmrTsiLF>k`>)WG|y^VOLPvzlPFv z*RcxTz!>}o8{%E;h4*kO-p3XAFW$!oNT(Q?7$l3^V(WOKtbQ|5?uX^ zl+Q38`343rX#_84>!(d}5&4xmp6cW?VRil%ACGOnbVIbbE@1Nb1ExXEaNVW z%a&zU7a+V*;cz+DjKhlcYq_0ip#!CsZve-(Z zv{DLX2U;3s2UHeiULsJ|t8yrf)lpihfznD0 zN-ME?3$2*7n#0}! zA{z%k`)!$Vc$b3l_!KALbDV^7t!*-T;nyg4N2lw|X{wW1Ho<=NAYvA2Ss)taI58ik zR~Mk{`4^&`G<=Hq;Io`;)=^CM0Hbs!>0+x$%hF$sU*H<_GRo79 z`9E!8Au?||VmeE9J;k0>+l110n=v0sAIk1`8{@KsGf-BRo!AO@VP}+jU2qTMgK!^? z!~HlB4`3P|#HA?pm*HW?x5>A!eqlg5Sqk>y3C1trdAx!b@CN>_|C`P&uN2*8h6<>9 zm8`6g*HC8rItJojSP*Yx4Bo*W_&4^$f86xO8LGItq%YG<&woj~lg`9Ye2CKXk5Kwl zW-1z=GF}^>V`uyiN8$^dhA(k0O8t5Gf$?sEQ{;^K9x<^Pna~wiz>2B=df38{%MJJCbwA^`-T-Dm%WG+H>SQ%w?s-oM>Qo&}|)^c0QuLjxASLJT(t7Rh(upi9g zD3vw2Hp*sFN1vU=!Hf?ZT~}tq{IT}W5ZUX?=ZR!-4z{p4WHg?wesZZ&lwme@Yk8cH zakv0ENwa^Fh0`wMTgJb{MK}}}$*-bZB)^9j@HJjExjO32iYeE{15vJv zmqocQ9)ogSJOQs`7yJ|Z;0+v&H*qfB!KEly%6Fk$DL;*JrTjYH!~amOn45(;qGK+6 z#Jw?V0R|qEsEkjr5kAHC_ze5wa~zHT;S79@i}4L+;9ER_a{c@dl1?&<9^*F3inN zHa8YWxsqNL^I$yY#g3Q{`(kQ-1|~8Pi1RQAH(>$%8H4dR48eb}AU?-J=o;?0f*ye3 zjEAFKK`)QRum%>#hFAiVu_S(lrEqFE?+E2m`%)5Ra0AMv_B|MZ$FL$^#!C1M<&wKs zQ8qOU!YWt+t70rx!+4Cs6pX>)7>jeTCa%R=xU(pi4B{9#L!vfb!#bFWbm9;;zzY=~Vj8N1>T?1s}Z2^V29ZpQ9-7<=FqOu>J!C#Jq+pcex51!W$@;{~zNRe21+3saALP zn^qEmIM&6O*a;^yJ`|_mB%F$Ka2l?{uW>6*$GtcMFW^kPh2P*)oP}m7$9;kvIFE6E zOvB=+UD*DsGBBS+16+U|aUl-GZ*d$h!kM@jSK>1K5trj(T!9xb9q-{ve2=Tpt2AdT z=!a{tEUriSSp5ds{+ltd5j*219E_WB3U0yqxE0fJ8~%hD_zUj9-*G4YgS+r0{)E}N z_plp-aSxV3xrtB>_hEBP{h5KT3>?CNco@gw5lq8h@OwOpyYLtu!Q*%hPvbrO6<^~S z^x%kk7W3daEP=maES|^KcmeyAW&6L#z<3hB;{v>doA5Fo#w+*-{((>MDrVytdkur| zI+n*ju|D3wPIwc)#9Nq(f8iXwjmz;4Zj502|C@oMB>utkco%QuJ$#Irn2mFThZuy9 zuslA-`uGGp;Zq!n&u|hx$Hn*`evdD3JHEjq_!iHlGVqRpTlgMd;|KKMB;+Fo$;k-U z#EPN9ifCeObitPBioMYtN1@!bn1Wy6e9VrU&=dEe7hc31n0kwWoD4ifZ~TBhn4^N@ zW=0t1Wjq4&VJzlH`4WNLyhuTROhvhg@ihjz8e_jjxoNQu3*jCN#Zy=qZ(^7$+kYkl zMM%8HaI{o(+|0;>B^fV^r7#9dV{0sfJ+Lf}!3dm&nG2sXrv*a$PR zF}}to=n?6-xsex}rP5$Y23k@Og>qXX5nE#lCgLb;gVV7suE2J<8QbH2?0~1RBklc# z-57s_Noc9eu>b?GJBDKqtd6O2TcZgBJ+UkH!hZNAj>LXA5BuXv9Dw_9ApVMj@Gl&U zk8ubZoPQ5RPaKB%aX6O2QP==SW0xvy|6>>!K!TpIPC+Zq!?Cy$$Kh6-ga>glp2jJ7 z1*hV3oQAGd9rs7PaXRCHI0MV#Ojl!EBF<)fAkM*YRoVV+49p}k7nkEa+=ywo3pJj_ z`FI@{;6q%9AMjhuUyWk~mczwZ9hYGuF2@vHfx|H!r{GFll*+&=1~%hr+>dMUB(BA) z_&q+ujp!A{F#>~dGnT?F7>!#o9=BmK{(wX9M;wdWSvO|m4#wBuZcN?5z#aw;;a)t0 z`|v*Q$2WKY-FTmP5Od+rSOgEb8WTF>F~*1Cah!}N(1s^*HJ-w4cpCTNuXqv9$oBsi z17}G*!*l4uC4t{CKc2@@cmZqTMQo41<50YWEQGIRtuM#G8?1?Mu@%0*o zj78r#js+Nka$BV=#$go7ZIwnSw^cf0T^xk5F(KHQ@k%JSWEx>t?26rRI40ptOvZGSTQr-o2Oh!{{2hDZKiCVOA=e+_(v> z$H4|8a12&Qxq;IJt(H`}jDZOxM&d-AjgxRSPR2br1%Jb-n2FQSwLS+M^u_5|8fRcN zoQZYu8*Gg>?16J}5YEFHm?m?wngNX&I3G{o0=$F^@h*OgA8`r#H86~&SPYk8G%m-+ zxB`Z4z z1KZ#Z?2kKfH10wh{)9_$A8y9|cpMMl?S^ds2N`%y;%9Vkp31;O1|snh#^Eze zz~|Tt|3mqh+zU*@m$)8Z;X!jv?rSAFu>|#7H#U*#7G>pcrU@ zCiX%%l+WR3!!&fq&FF!@;1~EiX2*vp_my%JoQqKyjFqqoMxuNfxiWS}xi>Wo ztKtNddsA~!?oF-382kxi@dDONW#AqIweU5@p?3=oA{c~quoTwCIBbXs*a-V#W1NUh za2__r_1Fw|Vmuzh=6C~J;bUx#t_f`ai46EM&<2ZQTdaWXFc#(3S7YpqJ+KRo!LB$H zyWvVq!mXI>W{f+CDUAP$z41QwLDiC7J^EljEZUOozdr*NNesZ+I1roTQ0$7surChB z5h!=9rr~HzL%Dmk9LM2S9FKc(0v^XHcm=28-#87Q;!OO|lI{N+26D7wAB_cYE>^~Q z*aXwCBWfIo^KmjRz(u$a*P`6U+KG$s3@*hRxC~$7N_1(>t{DAM?qEfvGO&(;Xk3p8 zxByn5%i}?8fJZR3GXrvu zYA7DX>39rR;c?u9C-4-W#M^iZpWtbHkH4Z<8&2CX2+w0AUce@J5j*1VI0P@@IJ_*| z{~QLckXVayn`Rj=6W?HCe2WSA z4%^{-?2d8+Z8(0E?SC2rMmAO^RJaCB+=ec=7hUlPt_t+kw++%x*a*xey z&n_BsV0QFFPYgr3!B!UK23r&+=VYKR1K!vIeXt|SZMI&R8;79WZX1hva5~EEw)vP3 zSD@T>+k}3&3;pph2H;s8zgq?SePlF*(Jwl%=f=EP2n*_|Qrwi$a7No{CZYs7U+UmD^RS8{uAIXv#U+z=wOnv`= z^3>-JsQezosL_C!n(^#_>g1BK_po}NT{l0hO6qZkRg~U(R;BBX=TwrVEVWANedkmd zKbUyuoJvjYoP*sEv6R?BTp}J5-Z`0Lq8`zim_jTi_7j(gSA@4WvrEVi7xpKn5I+zn ziRXl;4?BONJu!h;M4Tb+65hFJKNtJTW(=ed(}{HABypQ?&rQz~&4?6YI+0EsC2kOg zFAIo>ArgsE#9ZPGahE8XhcY6G7)7KLyNRpBb0U9UWj(VLh+Y$lEp4+z)%9GHnHB8eD9tReOj@_TpQev}aj#B?H^I7!?ly#1NURQ@Co zy@}~WI&qS?O}Gcp14JCro|r%^A`TH(3HLzCiAF>cF`Y;!&Jz!a!a+Pakx29><`V0P zlf-R8e#)&$Vg4i%{fYU+X5t3%ijdz>t4H)FrVu-bGsHW>H-s4@+7p9`>BQ!cEwLNb z_KWIJcJ)XfzNxCIM;Ypt()>yai~OyJ;}-EFI>z1LsHm9lj4k(7dDqnOBo6ZC#fCrQ z20Vm2@h~32BX|yv<1IXaukj>$(Do?|!qZp`f5l3825aJZ?1UGvA6~>s_&cWz)-(n# zk=THjaTi{}<9Ho!54OU)*az?7XuOZJ@n2kw5Ab`; zWHYdCXW$8mv-lM6;xl}O&oO6qcGVb&FR&!O#47j}Ti`qFh3|0$e!$uI5x+x2@eT>tjxAgWlK=eQ+Y?!f%mJ&RDk~ANjHV zf_#m~dIkB`n)N>Ng%|5vAH@07G#V z7RK!uhNrL?UPHbzXnl!%Jl5*NZcV=BUl942thF-oy#{OT9Q1z~23nHfyM@-?SOF&? zpDVO3Mm_^+-GGsJ2>I@z^(RmSf68c%*noy&re&!Fa|4PEH=WLn25D71>KiCnUVJCE9Gwz1DF$qgyGSnZa0e{4acmOByb!O`&2Bwja-<tcS}{j%_Qj zAEu)m=T_o$T!jnpdt8g_a1XA>Q@8cW6@h4n?d=B5b4fo?IJb<_HAj(1ZXUxuV^bqF5!x)Z7umT>(CYXAHfn)|w z;t)KA)A2OQ&*uJ$a&SI_KjL{jj2G}KUc?9ZJGyXSzJxjPG6vuk49DvjiGN}f{0qC~ zWBb3&Kra$^FctsCS@;jG!n?Qu@8LnbkH6!;cncrkJ3`{A! zCAPUr`=CNB12|Gm(P1C>3c-}^axmjKV2iz$KkWyXFEaXlQ1QxhAXVl$%XHR{mX=Zj z=J}YRZi6T^GVH&1HE+7FFZF^1D`2@AKcanxdnXSxe2+W0l#? zqy;|2*2FB3kx|+-mzxEaGM7IPCyB>|dzfK_5S5AcVOwHzsWdk;#PStCz+O*>xtS$Y zy^MG_^J`@pL8^y zj&E+});HYEqUyZ%@G#4(n>yOV?8Y?9JeY>Ppj&f&j6u~rBh$m|q13m!Wp?VV*Hg2b z)zm3{IJ+6C9_shm%^GITBwgLptZGIi=@Fi09hIODc$y8>Fzw}K)=&#|V=uE4O>gj` z|3=evzGQvTi+W$_pd6&ekSdm}>*TPfW{|S5FLCRvf6PITeWhPZ#!6(=0>V2XdONb4%gpon5c1(w$oJiEqy%W?{<&UUC=R$D7{ToAKJ)nZH7a=sS+SZt=Qe5DTNN9wM1eWYYBFAo{nhzDdTjGnqe}&Fc73 zF1d9mU$$`TLfWmOURA(Mv#|EKMeEpL))Ss9m}a_>sjg22v#{H0zYsD>WJc@Q5PN2Z zWRl73(m#fnb*b~7j9Ygyzf{y?2Ai$)sDh@i8%KM$I~8rE*A&t_3YwlK!~81;K2k4h zsh(sRuG6IonZJ2BdPW%^Z9Xq^X9R|tp2`fXpoy7GeiP0oR~%YK%68V6Yj+gBZR0-v@gCTwyjDlXNI^9VZRc*OBX3;7Iz8WWn^^9 zr3#vQa0N5aZ74;Rcj-EpR8@X9?`#D+e;6r#T(JVnd5Dg#NM<-0t&=OVIELsAWZb?Y zv+*ZgJ(6B}Qjz_~#te^2W_J1My*!ajF@o~hIy#bF$`HLkG9$?>)(0Zl02k{gk>*GW z`ta+lZlfs3w@0T{Hd~R(BxM;*se?z) z9YfV6Qni{|qP?mzCr@-(RkH= zLn{<^sYdm&6#lBGRMJ`V@5P0l8EU3isSEJWftbj@5mMbOaZ~kZKG583t@3HV7A#FaYL3^jEzEGg@i(Q1c#moD zbFePVsw;0JO=d@rZDDFPRr@7y5afuKKpzd&6BAfh*XRQY>=N_ou$HV*{xp{NwrM+@<7XrTZ_lk`_@ScCHEJ!CwC z$^3iQ@#1vs1Q*}5wq{8ROSPpigu-_BoQ0z&@KrqiC6>~98D*A&l(pB#+Op@PyV{W{ zM5d>XZD;ndgfci;Z)j(hahZJ2zJ>TnY1Rs#Ku_8i4Sia`v95M*Z^p>tSl-?|r^aUt z>0o9z>8FfwolJkFk}?)|mesw9-r2?cmsgdss;g-#HA%1SX14QiyZ~kNceE9fWX7;4 zyCl(3?e&Z#da~y|-Q>P%puLkha!=04lWhKE>3)XQ<~H$;2rR>?A<>LTA*K*Zi9^Iy z;vL~zmO4ZuB88AILZlPBi5tW#A|!%6GtrDlA*M&njy;~%o7IxHtZuD!SZ`L#)-~Cx zKU*#Pm=ipCC+jv^^7M_KJyCv^{%5lk-)~WU>DykEj@QNdvWrX6LnQMhnR$A#BXdtO zy~(W8KK)oCDY{EPGJVMWtf%%f!}*DvE&W(wQnaN%t4Lo8a@WCuBZ9URW!E}c1;^SNF1?EgHH z6n?%A+Lr@QR>ZO1EFHpnGg{vq!U{9KCja7*zpgNp1N=N4Kh&&cuB)l{jxhc8=ArDO zf6ll()NJZv(u>7Mm~G8Ub!{`(`Rk=4s2`>I$ASX%r4iIikl|XYwPYh^ z56A12?~KY%9_h}bIKLR6H;kh8IQ<07MfDtKo1^LLT^SQco4@8tO=q3jL7X9;6Q1Q* zCy7SHU}8G)196ggK)9A?e@es=@@v`hWu0_lH*uSIM-;BW83!RBQSDF6BGwQ`i5rAx zMd}by6?xl~z`*c|^6!tO&0(#c%yI0w4x3|kvrJ*|t)4N5g)v#*oWtUrO6J`W=la7HWZlNbqMAnOdp*|13!bbGlX3f+jLR?jq0OvGDq=3F>7;yr(QW72Q;Q`v zgH*v^^btqOW1bnBVKb)EHcfsPntc` zA&tyzG9C29G*+z1`V<+@Ib`}e8|3SCtcXj}SP>`dXia?^r6YB+w$J%m$;>4)U7vMi z^2{eQkIVucJ>UK;Qzer|=6k)xk$Eo}O(sL?L-p&^fEGQ$^5F5m)YxVk<9mGZs^O7OxSWV>&Rs4#>?$>7D#42nGgDaBjdG#j@UpZ z`!QW<1#eU*>(Qhc`utpL3k-)A-TGbml9=dHFcjXRRr zK_)|ct+8i1tRb_L%ppB-jakiSGJ{z=UJjDRbA5IVJK48Klip|tm^Y@IzVf~Kh3adspSF(bBOPUx*HL}CqZ#=}GGsj;bLWsrscOpSY3yD1AzryAkNZb%Twx zKT`@z@aBnpB)8;({tZ=%&qNB*wlKREKfo5^R_2e$AG zjW&}H)CV>*T($tuHfl4^R?JbjSqiI4VWg_-NcnCdmFTD+vxRn&9r@wp&7sHi>5Uv- z)1_dF6qKOf?QOenCAG>?H)bnsWa#*C5%cO^N2X2GclZ) zPi!X65O)dJNY43)%0x3_Fd^R;knac_CGHYNWy1&|DiiXL81yG*5o?H(#BIV|K9V0& zgmAKm0MUr(PfQ`!6NiYq1iuJo6egmG&ctwHKCziN zL)<0YYw&7`7$T7vPRt@U6Gw@=gb_m>qB4<4^e1Nd@n;QjhPX?3$MTAanAk0`%T?NT zE>4W&#LK6bF0$P$VDaHxR!)Au*5|jIyDj4>s;}o|uzww=Z)ULHm_Vkb_Sj+1wA?{v zBAIr2^bStyCNcPx&ZIDxWV3cEoel02_Ry=5mmmzKTkXJoFsSa;g#g1gu; zeU&j_m-$E)No4MN6BCH_#3AA?Vbr9riLyjO%`LGbRN7wVz9~;sxVSE|*DP)+T%5Vr zPjab!+IOG1+0u-%Xnky-8SED=MKmJs5xGSmzjDi^aPG!wwV!uqO?8|7yq0(-_&@D^ zeN>gz*6-f?*&9K@KtTZkLBzyB`TkHbFfshVz;8@U5KKE_P}VDjqNau)n3yod)TFf3 z#8=MIP+u)DH8CkL?P^C1Ogq}qf{uE$)b4LSYi{5jcicP1{qK%DaEzaGt>2pKYtFUS zUeD%PYZuVcDm+vcw9Bvw%HDXed;u9YQFRp_0=H316`miTqe<2H$QX}&ot~n_)!4E> zN422rCx9C8lHQovFf$oU16fYsbKyBkJb_B5fcZ5*Ds3VB zHtRn>3`F8dBwD5-@ejIv!t|m|3W9Ed`geDEC-L1K!uam4J8M{-hS6()JzKw#?Qf?{ zXv7UVX@%GmC!I27U@16w%Ji)XeP8{hX_}qtu+eapZ`mt3Z7M)VDp#Mzmzr3fYidl- zYYhR$cgLJ|qu4XpZ2wAg&tRqagUZg}+YGnB%HPhIUNTRb2M@0Wb^wQfI^Y&yeg;bi zFapR13V>Ze6>u521GtXB2mz)7*+2oX9XLT1-sHh$TdlWU)!(L;cdx$LObSC*6%sUp$Ma~A>P+Tc|`rbKw?2e)uq*@Y@dW~An z!M@`VH2KnuZ%z0^fv;{`PHk^nR8LPE@inF6d01i-MW4qUI7F*h;KGCRu*)@ax&XVF zd@Iv0n8sNKUPeEf0b2~*0AK_#2Ur5^0;+(EKr`SxvLddJvE(wI0=lB+3FLPfeV$N{ zO^=%1mraK(Paq|qiW)G0y3(Zv^uZC#N-|zSBf65_XD2WlI2-r5XfyhZ-?IutYRwhs zcS9VaTm zz5YEOU2epmWjMlrmSG*M?Gn(A36$J~7Uok~6U?-doUY&%HMHNT_76R*m{lICU z5#X2eJrXM7N{l7Vu=f${r!J9Sv%bxq+l)T`7nmQYs9E2@U1H`am}WAz=**}VFvq|= zq8!B>24nvjn678U^7UJ=$y?K+Z}R+q!)oz4QhS}D@xST2)KXAgt3U-v2E(f~?KjN3 zx5@5bD7_jUhA*VaA%-fW92h0gDb7+-fE-`Zw%o}99 ztJ-}R%qcKyC`U1enfVgTR%%j=|2;5x4zSrr$@lbJrOaUOYEwnkin04Q7_{4_o`V0a zTFA^-V1A@B#oT1(ESNjwbYIs=xeqIR4aVjxTDi+K_`mIA`(l(_qT2h|ru;zF4=_BO zA7C5PTtn+Ju#Le^)dL$@Jz*gdc(DHtCG1VRKEYSnwe4VgQSu*1!A{kt%Mg8E%X{Pi zrN0IG)Z=$kS1jea8g{Ra_$CX5MH;6lY6nwusEJF#rqu)AAL^>Me}G@3_^>~~Z)N@| z<32@gVya51V%O?utY@CT+`+)0c=m67!1;BRT5O5J_1{}v=69FUuGXcJEY7=m13@$>c zL!cSp;}89TSb&c>ECkk5@*~qXHs8Q&y}qJ;k4;`C$dQjtFWJ+=bEGjG0oQs>a0F>uxMCyK|;;Z0zqxLMQLZ-Y;ppMf)MLl9_Jt*7D)-sYmz)XDF zqy=)L@RLU+8Zz9YVv}A*1OJG2HYi)ivr=g_XXvfz84@)lHzL_I;4HnaX(Lg{F>v;m z(T@?<9Kj#r`#k=m$Tt*h)_g4uNSr|_X1#_oX0Cu)NHu0{40K#9V159zfnqGW&I)E4 z!R)1S3)_ZTm}vrYirj2;oirOTSHU#WD#g?@^COtw>4A-2a(pMv*X9}+=USTINgIxW zDww(sYG5sW-%0O)k1aaz6R3n*>2l6ad`0@At={Egq+0%g)O0##tGC5y$40e-+49KW zPN%X!S#Cn9go^Fhd31r5W_E_setM*+n9fl8CzQ@mW@kOyZf0(QxkmMhap?l)Hkij0 z(?!_=jLk1#T)(D$UGzS*fTAV#@IuJf@Ep*HqC}*LlFqJuo-$w{g9k z%qP&ue}gf7L+hTxalNF2%=``}i5e8+=LF^tFfUP} zlde6l_H-M~BovyB3~>GkJ;v40Ha5ay=(sNaK8`|%UH3!7N~Po$nByY70K z$=#t3MVnhzed8x^Id#|dPa@UEh*X<8`lY+Z6FS-%lnIn~9i=<#9o!AdqJbJr_0D=L zTwK7I!AztW7rmYp%viw8r*g&IWyS`~Tjbe8&z05#-fZrHk+PLmDXJEfy)Bd~v8?Fb zsosm7OV6Hq^Wu9VLtRf~sHd!+`e-W$W$BCz|D+2&^-|qj(cms%EcGuHaxK5TA-vv+`6v~|x@Uk*crx@m#kc$u?qTlhl*OC8_HNo(CS4-?k9J#N}K zQzFRw_(*bg*Bng~L?hN+^S~e8Q{6TG(Rqko`0+eY>!_BgU5fJV1?o7(^a6ERQR|ty zN9CYQj%R6xyXIcvf!eUzczI|MrV)yxY>@bhqR<0+3x&g161;(W#N1xtl03nkqAX8v zjlxwi_d7K(hjoGL;4c_FOjr@dd7+X7A-97xV%B>>F;6(h-r!0ous68sx~mk1Z@18y^=`hYti+w^L@&GcH)3u?KjWiz*p3Yj}3TqASm=n-?b zgiGoR&W0-d;KKqAd#i92hX#7CGWP>j zPd@!X{Zmm3n6i-ZNmR6#!@X7b8i%7f{7n8Xd~4WrU@EW>SP$$6P6Iap+)`@r2BLteKsK-u*bCGFHvs!2d>PX>3A+YhCctOq zHUbBLvp_Ron~VklBY>FzpL5#;><7*Rw*cGms0@e&rUKbO0k8u&3S0!50s9Gff(7`b z*>qsxgnYCd0X|Z80^lQL_W{?5*zN#hfec_dumz|BE&}%f$4O`yFapQ`@_;SC0pL7v z3$UMz3V{S*Cct;^Z2}Gfe1@tyAOG1-!L|s91u}p|dk{(e`~+!^;9*r_$u0j=P* zwLU`0RRfj09jIhhoRXG4NzbGG7(X#p4t6rGu4BiBj@X7bPDJ(q+D3=@>;s zV>EGw6bB^>gOyzMgp!_SC4+61jCWFUDe`c>!tP3z+bEfXFX5QabWt)<^7)8fR!`7nAs#Fgc7cvF`%#)~gciZ6GHiQ=HZ=?&u3Xz}SJ@u`pa)WKfqom4(G)Qd|G zi!8NDac#1=w)zR!pDVycO1cd0q2x{RZ7I??y~w0wwYVZaS;bd~9-eM=y&7pa4r=Q0 z!(Ei*Tb{U_av2jv;+ov9usNF16GbDHexZzwKxxoPan)`a z6T77xi==NAlUGYei)D<&@a1aUfJZVoUX#I5(_is7d5|DIMJo33Q*plYi1|br8+U~d zmO&UJ739cRc}@5-86$jC5a-XwHGq0xg|zUI46-5_3pKJHJd#1QR4kGy6$kpN{12po zPBJ!vZ4`eqQpr^^Hg3yU@lj)7h+&bdQrIn~Iq0b3@QB_p2WjA3>)>)$d_yNX9;6M- zH~Oe}narMYu|%?UdJa(O_10OSDmD~_D?TMo$(_TMY#5nf!^P!s!mkiMUMzS$ROwYq$4c!~JX3ci z2JljgA}YkEPBKkb$(TwO*G5Z&ip8ZT#d5ilFHKx|SbAO|uFJ#+1~;@!W)mOm;dm3z zD%5WnB@0ol^rT6q;U#Ht{8K8!U2&~N8XPBsF^F+CsP<@C7;O6G`#$|Ua4Pw@w3EbX+KUOI5oTczI= z3x?x%5WT>iGMFYw3tRd~1+t*o#jE%#Dfqe!#%l5PsA#EJX2%2J)4D1iw};v7+2$kb!y=JAp%gV#~hDq+K;1nrflz6E8ImH*s zWQvh~+!l|gc&YSMX<({&s6skaEqshL)I~br;-m6a==vDUugRd#iBbu;Dnsw-Vewe5 zOpcuaijNk(aI=aVWs-P`;S+}_-cCHclP3)K$rN?t+a^=J-ek=CD+@NU0^~qEuzA=h#3Z;d+ zg+D1DqJ`orH*wWrDLA*kDlk>#D$y?$7x{=Q=E~$+^^DR#JVhpxlba&$ilT$~?66p- zR(e{VsPsm4R&tT}Jlg6)aoNo{mA0{gQmYQ?8~G?L?U#b*t& ze7q(Nxa6SHbH!DDNhpOPnp&WrL5B zX_DUHqT=_qX>tFfUd~BrfSrt;cyUp!tdsdI{z@_4TggE2k&~=P zf#QNxSr=+#8&W8PpFxS@ zvkLLqrNOGAB5~PLaap*yEK^4JDo3T~A{~epmjw%-rn?IEKPH3i!dR8TNv6|5F@2o4 z2KPAVCcT}k;_(q$#|lb$=t?Aa|YvhY}9|L2HFGo=70YtO}JPU5q8 z$><={>Y%u8x8#3KTzES~H6T+Kq8wRCtEFMV!lz;Z(&vA%OuHf}=%!@2BtA|RAGe4p z-DEUhlF=OZw5l*gK3cM5@bXoxJg6s${!M2U-z{TnDPOh93QJ|st%y?!7HR2HX=#dN ztd+5FJxb{{$>`oK@#-fPUm??!FC^viugmOsATGWxE_U&T{aL|5KBfF*FfEdKy;P>7 zpHy^AdU!KJ78*d-bJb7f)8ks(&Amy?gLPoT{iTBKq=sLXLYSuTt+2?|3L?>9`Oc)msq-y#cV zlPsJy-b(K^S%CRcZ7w%!xRQJilG>Atr)p)LIVlBINCOAE^(3t zGEnA3u~eKZdNDFNlVwcv-Br%x??yE*_1aWo$o8RbwbSy~e z-LzFQSb99Fr;5k>Dw&@vrYn{LOT~n_qAC{)Q(nT9oDnMIQn z?=OS8UM$47Z|JU5E*W4*6O+V?N&E*Zg%q(s@F*3}BL6r%_7r-nXr_FkM9Uy|kx!6l znPrxNN^h=sZjyK;SY}_Dc)CSC>>oU<^h+&DCW^cyhAmQKHs9bR>+T}4bfUx$iy>3R zgY{y_MDfG}F<^@r?(Q?HqIhY*Bw5ERBwxMgtq_m-k70d`SBtnjR}|Cq1bh^V2kT|b zTCAQC1Lul?`F29~fKg_3jBFB?f@D6|tYnsWj&Chwz9<$F^&7IpBTiEBB{BIiWgNdq5TVQ2(y0cI2aWCHXD!hl#{stNA{Wgw6TYy|ewsAshw(r_uCVLh-5 zH~>@uxDAdka^pML_!=`qBXA42516qSdI0@_Fkmb&703Xxfjpo9*beLk@P2**{wzHc zW}ZhC30hB=Dg-YAd?!&eV2jnvnHrFkKL0)2rX;344b07E-qVTeLt1ds$w2j&0^ zfVIFTU5P5^blW#9&IhrgZ2 znNx!+&=&{-h5`w|L|`Vc5LgbZ2etqQfGXfDa1po$JOpepU7Z1MAOJ`LrUQJ3&JtiP zumd;>oCg|#TN(JzjHTBR@BqSqSRe!7E3oo_0$@9E2si=M0emBx0rRmh5CkLue3i{Y zfUmGw59|V}fQwW+8lIls9c=*?0M@(Fjv{;>;QP^T0cK}31LzNg0b_v-AR8zE_`bBg zz#*UxxD4C@4ER(D0)_$!z(imkun<@e>~b;K7!DwCma@iZy)98a;B+b)qlNnLB`o&= zM|@y-0R4e5AQl)4Or`5%v>_H(>;n6e-&id)|15$Rfo9+#VCx3M1KvOYFak&drUMHA zzDI2nz;~&g2F?SGz%AfDV8%MfcdK~-VL&V}703Xxfjpo9*a+-($B;dNfB{=Cd%zV4 z0uq3kz&v0fV7+_o0K!$kS>PgY4QK}VE;eU??_&!9qJR;=bYKp!09XQ8?`YeP@KNBj z2Ug2Q1o*iukcf{HrbRn?QcHL$BiWu zwE**?X}HzYXc}IWR9@M8l7<7uY1C&j-jWETag*^9PdKfcjKU-6_+*q5Nxx6lhM>5J zDR_}6nifxiN*aAO1%;>6FH=zCEDD(lkwLFdMTSh;Hx+5K>B>}XuqiZ%+*9;uNeW)# zN~5bRX3=OCQ8aLxHoz1aMAN3B{&ZS74OPve<18}h@ibJGNyDCpm`#hH$GatALG1b*wrB6o#!sw&vdi#Hxjv6DVM=C@ljZB4RROPZ%d?Xq(E3eGZ#%ahI zn6CMCnKF05oR?o)@XWlIU!~-9trz|p;l~S!VJwy*jhg+8z54Vp__tAppok#+3yH+Z zcu~!EqSwjne#Fi&<`^;7k5QSxoNoa zUdrv;gS=*G{oMLuEodz$y{(`vlsZf6J$_63&F`jCcz-Q?vEduXniQkbIj6g-SxOtFPM)xDUZx^r`Km|5uSX{ zqtzVzgF9ApH8W3Z!;G#}{-V~!U5{JK3B@k}NI3x>Wb>jH;?8SKYdK+U~Df)_Rzhdr{XpT0eJQN?NOl zYSW+Bo5s!2`nb=-+R~biVKPw4YwS&{=V$}n8{4O2bXe<~=}qT2|4ghwt@$xJtm$>$ z)O9Y>d5vmKZ#O(*eQ5Mt&C5L&t5s_{hJn?bdwpoxT&^l9y`A&3u~=$kKMaFt=qwB(J#N*5^R09BMqldp7xelD>s!;|d}}>Z{b^ZT<_qdb(e`bc_OP`LR#Z_b7jS?33-%+pQIQbv`j|?);>*7c*a&Fz4m} zn9s|NbyBKyHR-}ITHM7{uKj8BJk8zRwST*EF{5q{F+RzI{`Jn{l)eum~o*(q8lxXNmtJkBoa{O1Pi+HfdPsXq=h zy0ng^LxJs-F_x@-j2+0zz38(P&4$KgXm;+g1KVk0R9TCCsB1*JPyHn*l@R9L-rhZ^Q;dVF&3=J&S5m|Wvl?sm>;d_7z@_^U1pw^jK%_g^kppYdfeIxj0vmWF4#n)v15$A zOS0i|J!(~JH#8PRP@im6w*V$;tqw!Nx*+oJUtu90YxMQ84hNl*q9WQ2hl{j3TZ<&; z9L=$_b%sojqTjPMcem-VpSAc17{+R=(-fGa`MRHOpWJTY7#dA4R%4!s})>=~?Szgti^yJgDtsTH%uvU~1qn9)uuhpg& zYhB#*xV4yeE5r#Zd{ukOlh53?7K1@yEr!qDYScKvh{GG0;GTNiS_}q74_VOocbGJ) zF4nqx>OreYyHA+@PqRu(vDUk*9<-{=u6$zw9~B9v#S8U4;E{#c=Y`VG91Ej92X(1ne$t7NM|E z8qOk&7PAPaBa8HX>CYUCq<)K$A)IC`Mtu>qdNIn4q|ca)qI-)`do&Hs*Pi1}GHrq?E*+wVam!gRx@A6Hstuv&WoYcf zrCJQ?9J~yB`3PFJ3{^+czGZryKP^MnXmWoGu{0Y07RpVhbsU>Tr&wS|{uX+jwHyTv zU9JVA+WE^-ZAcL9S&lXZ)6dIMUkJIcK;BTAyaL5X(K3!j(`PHRrzvJ7^4hM{!cp|F zmB=%T7O&Kc{*+^xbZ@2JoshRtE}jeKzpa9qGs(dAuWpj$|9QXtwJBuXuxXZOQ&=Qs$GrpcC6N&`}Jy6 z5VHn^{TjW0!`7f3(Qxh>Xx`+6qiaxe2>lEKUF@?K0_|9fD#NLSMFgE&i`GU`w?c?0 z8egbAgWugo*6oE_G# zV6I?V{SJ~t=*&B)Bb02`Lxj=r^&rD(84EnHfu!gnRA5_#=10-sB4|a^>nzgfuPpG) z#$px?*nlpTZh-Q<4d_xPZDzvmT@aTyU`VG2QRjETeT^m;Ms52L>pBQ2b+ax8+pN>I>j znp}eC!SEnjR-zB%PfL&^gzlBVPN6iIbYs6lNW-O!q-VTJP>G~In@}2zy$NJAt=ohO zqv;68(&!$GbP6ej<}7-p6q>MhDacH^QVPvX>bzO6e)wi>m?;?5Z-#0x9cK|jruQH) zm*3N?f8#y9-Fx0c{s{W%J$*pAZ-D_;ZGi!%Z-HTE(P|K=`h5$OXH&#hZ7}WH z3ZLd}g;p@_*^1;4y1G^GU%zb-Vf4~Alyzwv%G$dPS`qX;6QkY-;qg9*C>s4fh{H^* zWg?A^fIts_V*$@@M+-A)+IDnpHm%%_A)FCJ$G2l_`- zi7jOqHsSPjncla~AE27t55SN8K(F@=CT=oul!-L@nTga7K?HoL1yd=9<{*TgZ~joX z?{_R_Q@0&jh$%COM(*I2?|@pt4yc9DksU}6rF%PIM%-e#6CDVr^qqSB+jfGCq;pJ0 zQRk1eL6r3ovX1x&%}%5FA0auNK43A6zWWGT8PxS-#4>3(i`n%0$EbETmZy)A7))20 z4WS;p5DTSoyHHCQt>#!b9p42b1n!1;cB5;NG;lZQD4NY8nzpe>qwjWOf{ogPHhAoT z7QV*V!~J1mEfbk^1OzJnZI2eM1qTJuz)w&~Fun8%XzbQLK?6eRJC21>*S!$oG;%M< z2zrBKk@VNS7;I7W8%RniN5MhmdT*zdLksIM3w%RTj$*MMmurLUu{rcIbamp#i0sPf zecGGGlKnWT5=EZ-wJ&h;wQ0XL%kCmRO!?pb%ESuIVvCDGZfG>_h?d|G9`!j0_Ep3XZ0y_iMgr-ySbQU?6y8U0mEZTt}2ET;Q>1bz}pX@tk~SHrp;3K4XorY~U0X^OcIX1NOHjl@eHDp=DN z?C~sqnt&=!Yp!O5da3lG2=-UO3TaV(G1XLp5%{ov8;}M*u^xmgx)_eOiJZ`B(Tw81Cr-I)g*iGp*QSevL zdj!TyXZSW++(1iSXS5zT4_Jm&oZHvM9XiIkf1Kj}SAT`s|FAVkOU~kk80WK^t3~^g zrvj(ra;=uL$l=q*ged0eHYQ0iscp=B#k|?ZtW`{D8?#3-m2J#v#aw7(ep1Z8+88rc ze2w-voo;PmAH@u6V`3GP*v8CI%wO6V+zb8<%30UOyswywHs-j>^-UYosF>Sr%wxrL zscCJG2j$eEWdAm1uwtHVW2P!5vz4*%{cGKnOA1<9TymwC^-&vBshAUBTy%A+s)ySq z)@!c#9LTDNubZiw#UmB#O2OwaXmMG`{Ca#81gL1VL`SRW6p7BEGFE;=qH9!it3>yy zXq80kRrE)R-qE8Lo3FTKIrSJ@y%6j~W#8g!ADlPd_ATa0A}AZ3vP@`A#d_QFEn2)l ziFHcsQUbT7aN1=h?kV9&aTh=iP-27|;@d^)z!8tQKk6n)P;rb zy>M4f!#VSDNHMoE`VBq-RQ5fJ%BQ8@BiBl5VX;98T*kvOOl=mQ>cVmy`MvZ^e7}yN z>l5_Z_gI;Jp|rnatl?tc#ec`Ze2YpE#XZRU6En2!@6gDgdQg^eKk@3n^zT|v++A!i zOi`(pl{au^Qm4`MxXVz~?<3Y3%k-PPYI7dTTm-$8-rH0GJ&dJVR=@WfkHv}xUIp8N zrhoCagjtjOzi3zk2JOTgpeZ@U4h0J%7KP4Sr?WmNO((6uzZi;0j0B! znxJC}=|qpOpj}CL&BRMjv6+vcsWT0`0<&dP@((EKE6Refq~b~>U&{Fb?OB3gx*jxM zrD{(65lknQ_;XvZ1;KBX-U$kBgq}a{K!law`W4 zZbG*Yw0ui%ZL%Nrqj(e(%_~AOb(ugfBU!dlOTa}P4hPJXIUxUW?ETQq8 zp5lJ!LB8kfstVc%7!BK0a1Vl^Du`>o&|JNsUn%V>3i<;K#vls9&0|Kx1`B=Ggc?5y zF&f^)bxbIqeC7C@Jj@-p<=!3xoJ5HbmgkY+r6<_rBIsnI z`TxM^UQK1JR7S^Gd_b2VJU`1a8de$cq=tVzmC*lZ>REES0nLRJcmt32UsR^t(AM;< zbn0vV)mZ7>*W73L<+~R|fVszh&dF3r+k4*aPgQV*|~9GhS5h86-M6L)!)D0rUi1E1iPO zktXk zpOvxT-Ls_=&7b`7{guD<-5g{z4=X>v=x@8nSYyYb{EkEU9f$He z4&@s<4&@J5?-X|&%I`Ro-*G6vubK=Uhw?iP<#!y)?>Lm-aVY;Fo~`%^tK(39$D#a= zL-`$t^3`h4aVWpzP=3du{EkEU^4&qlq5O_R`5lMyI}YV{9Ln!Fl;3eEzvEE;|A&Y2 z{|~QNQ{u(~Fwi`10jX&GX-4)0Xs zoo!q}x7E|~Ax^a5mF$;YhJk$=;CHv<0JH)x@mG6Uy3<83OMz*qsdAjZ*~>zCeJvv# iCO~5{FbVkY?{CLAy#sDNz`qK$0eH94sh{On%l`zTju6rS From d711c3b5c02fd45987b07b2a763e3504e122c846 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 17 Apr 2024 16:17:33 +1000 Subject: [PATCH 28/62] [v220402] - Update Project Files update SUO file. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 233984 -> 233984 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 7ff6273e91fcd184a23f1fa36c956856053db9d7..493c5d783e107c174c6c83bbc6141afce879489c 100644 GIT binary patch delta 4665 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 VqX+yC3cGZ#=zl}2lZ_%S{vYk;&j|nk From b34ff90910656002803b060e9d61f193fc9deeac Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 10:48:28 +1000 Subject: [PATCH 29/62] [v240402] - Update Program.cs Application will now launch with administrator rights only if they're deemed necessary. Also cleaned up the code and added lots of commenting. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Program.cs | 109 ++++++++++++++++-- 1 file changed, 99 insertions(+), 10 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs index 4aeb9a3e..486511ee 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs @@ -3,8 +3,10 @@ using Stardew_Mod_Manager.Startup; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; +using System.Security.Principal; using System.Threading.Tasks; using System.Windows.Forms; @@ -19,80 +21,167 @@ static class Program static void Main(string[] args) { + //License Application with Syncfusion Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("NjAyMjgyQDMxMzkyZTM0MmUzMGxmc1dVMjg5L3VsV1c0ekEyckJXQm9kN1g3bzVZYmw3cGhUdkcwMVB0NWc9"); - + //Set CancelDownload setting to False Properties.Settings.Default.CancelDownload = false; - + //Enable Visual Styles and Text Rendering Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - - // Create Launch Arguments + + // Create and Get Launch Arguments for (int i = 0; i < args.Length; i++) { Console.WriteLine("args[{0}] == {1}", i, args[i]); - - if(args.Length > 0) + MessageBox.Show(args[i]); + + if (args.Length > 0) { + //There are launch arguments, save them to settings. Properties.Settings.Default.LaunchArguments = args[i]; } else { + //There are no launch arguments, save them absolutely nowhere. Properties.Settings.Default.LaunchArguments = null; } } + //If there is a valid Stardew Directory saved to settings... if (Properties.Settings.Default.StardewDir != string.Empty) { + //Define locations for AppData/Settings INI string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; string SettingsINI = SDVAppData + @"settings.ini"; + //If the StardewDir is on the C Drive... + if (Properties.Settings.Default.StardewDir.ToLower().Contains(@"c:\")) + { + //And saved in a C:\Users location (not in the root, program files, etc) + if (Properties.Settings.Default.StardewDir.ToLower().Contains(@"c:\users\")) + { + //The application is likely installed in Documents/Downloads/etc. + //These are not admin-protected folders, so there's no need to do anything special... + } + //And it's in a location not dedicated to a user... + else if (!Properties.Settings.Default.StardewDir.ToLower().Contains(@"c:\users\")) + { + //Check if the app is already running as admin... + WindowsIdentity identity = WindowsIdentity.GetCurrent(); + WindowsPrincipal principal = new WindowsPrincipal(identity); + bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator); + + //The user is already running as an admin... + if (isAdmin) + { + //The program is already in administrator mode. + //Do not set "LaunchAsAdmin" to TRUE + Properties.Settings.Default.LaunchAsAdmin = "FALSE"; + } + //The user is not running as an admin + else + { + //The prorgram is not in administrator mode, but the user needs it to be. + //Set "LaunchAsAdmin" to TRUE + Properties.Settings.Default.LaunchAsAdmin = "TRUE"; + } + + + } + } + if (File.Exists(SettingsINI)) { - Application.Run(new Splash()); + if (Properties.Settings.Default.LaunchAsAdmin == "TRUE") + { + ProcessStartInfo startInfo = new ProcessStartInfo(); + startInfo.FileName = Application.ExecutablePath; + startInfo.Arguments = Properties.Settings.Default.LaunchArguments; + startInfo.Verb = "runas"; + startInfo.UseShellExecute = true; + + Process.Start(startInfo); + Application.Exit(); + } + else + { + Application.Run(new Splash()); + } + } else if (!File.Exists(SettingsINI)) { Application.Run(new FirstRunSetup()); } } + + //If there is not a valid Stardew Directory saved to settings... else { - //First Run Setup hasn't been completed. + //If the directory is empty... if (Properties.Settings.Default.StardewDir == string.Empty) { + //Define locations for Settings and AppData string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; string SettingsINI = SDVAppData + @"settings.ini"; + //The directory is empty but there is a valid Settings.ini file. if (File.Exists(SettingsINI)) { + //If the Settings.ini file exists, and the user manually reset... if(Properties.Settings.Default.IsManuallyReset == "TRUE") { try { + //Delete the settings file. File.Delete(SettingsINI); } catch { // } - + //...and run the application's FirstRunSetup! Application.Run(new FirstRunSetup()); } + + //Otherwise migrate the settings.ini file to the application using the "updateversion" form... else { Application.Run(new UpdateVersion()); } } + + //Otherwise, if the Settings.ini file doesn't exist, we can assume the user has never completed the FirstRunSetup + //So we can launch the application to that directory! else if (!File.Exists(SettingsINI)) { Application.Run(new FirstRunSetup()); } } + + //Otherwise, if the Stardew Directory is valid, we can assume the FirstRunSetup has been completed! else { - Application.Run(new Splash()); + //If the Stardew Directory is on a protected C drive location, and the LaunchAsAdmin setting has been set to true... + //Launch the application again - this time as administrator. + if (Properties.Settings.Default.LaunchAsAdmin == "TRUE") + { + ProcessStartInfo startInfo = new ProcessStartInfo(); + startInfo.FileName = Application.ExecutablePath; + startInfo.Arguments = Properties.Settings.Default.LaunchArguments; + startInfo.Verb = "runas"; + startInfo.UseShellExecute = true; + + Process.Start(startInfo); + Application.Exit(); + } + //Otherwise, we just need to run the application normally. + else + { + Application.Run(new Splash()); + } } } } From 47ccf5234c0fb237f451c705a5a2ce5b3eba1f09 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 11:24:31 +1000 Subject: [PATCH 30/62] [v240402] - Replace SMAPIUninstall button Replace SMAPI uninstall button with a SMAPI web link for now, can't be fucked working out the uninstaller given any number of versions could be installed. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index 33b109fb..a927ed3e 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -1876,17 +1876,16 @@ private void SMAPIBundleInstall_LinkClicked(object sender, LinkLabelLinkClickedE Application.Exit(); } - private void SMAPIRunRepairButton_Click(object sender, EventArgs e) - { - string SMAPIPath = ""; - //do SMAPI things - } - private void InstallBundledSMAPIButton_Click(object sender, EventArgs e) { //run SMAPI Bundled Installer string BundledSMAPI = Path.GetDirectoryName(Application.ExecutablePath); Process.Start(BundledSMAPI + @"\smapi.bat"); } + + private void SMAPIWebButton_Click(object sender, EventArgs e) + { + Process.Start("https://smapi.io/"); + } } } From 0832ef588f15022259fd43ddf67b59bf2e370049 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 11:24:51 +1000 Subject: [PATCH 31/62] [v240402] - Update button UI Update the SMAPI web button UI Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/MainPage.Designer.cs | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs index 077940fa..523b6af5 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs @@ -74,7 +74,7 @@ private void InitializeComponent() this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.Tab_Settings = new Syncfusion.Windows.Forms.Tools.TabPageAdv(); this.groupBox6 = new System.Windows.Forms.GroupBox(); - this.SMAPIRunRepairButton = new Syncfusion.WinForms.Controls.SfButton(); + this.SMAPIWebButton = new Syncfusion.WinForms.Controls.SfButton(); this.InstallBundledSMAPIButton = new Syncfusion.WinForms.Controls.SfButton(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.VolunteerTelemetry = new Syncfusion.WinForms.Controls.SfButton(); @@ -701,7 +701,7 @@ private void InitializeComponent() // // groupBox6 // - this.groupBox6.Controls.Add(this.SMAPIRunRepairButton); + this.groupBox6.Controls.Add(this.SMAPIWebButton); this.groupBox6.Controls.Add(this.InstallBundledSMAPIButton); this.groupBox6.Controls.Add(this.CheckSMAPIUpdatesOnStart); this.groupBox6.Font = new System.Drawing.Font("Segoe UI", 8.25F); @@ -712,17 +712,17 @@ private void InitializeComponent() this.groupBox6.TabStop = false; this.groupBox6.Text = "SMAPI"; // - // SMAPIRunRepairButton + // SMAPIWebButton // - this.SMAPIRunRepairButton.AccessibleName = "Button"; - this.SMAPIRunRepairButton.Enabled = false; - this.SMAPIRunRepairButton.Font = new System.Drawing.Font("Segoe UI", 9F); - this.SMAPIRunRepairButton.Location = new System.Drawing.Point(190, 56); - this.SMAPIRunRepairButton.Name = "SMAPIRunRepairButton"; - this.SMAPIRunRepairButton.Size = new System.Drawing.Size(171, 28); - this.SMAPIRunRepairButton.TabIndex = 40; - this.SMAPIRunRepairButton.Text = "Uninstall or Repair SMAPI"; - this.SMAPIRunRepairButton.Click += new System.EventHandler(this.SMAPIRunRepairButton_Click); + this.SMAPIWebButton.AccessibleName = "Button"; + this.SMAPIWebButton.Enabled = false; + this.SMAPIWebButton.Font = new System.Drawing.Font("Segoe UI", 9F); + this.SMAPIWebButton.Location = new System.Drawing.Point(190, 56); + this.SMAPIWebButton.Name = "SMAPIWebButton"; + this.SMAPIWebButton.Size = new System.Drawing.Size(171, 28); + this.SMAPIWebButton.TabIndex = 40; + this.SMAPIWebButton.Text = "Visit SMAPI.io"; + this.SMAPIWebButton.Click += new System.EventHandler(this.SMAPIWebButton_Click); // // InstallBundledSMAPIButton // @@ -1966,7 +1966,7 @@ private void InitializeComponent() private Syncfusion.WinForms.Controls.SfButton VolunteerTelemetry; private System.Windows.Forms.LinkLabel SMAPIBundleInstall; private System.Windows.Forms.GroupBox groupBox6; - private Syncfusion.WinForms.Controls.SfButton SMAPIRunRepairButton; + private Syncfusion.WinForms.Controls.SfButton SMAPIWebButton; private Syncfusion.WinForms.Controls.SfButton InstallBundledSMAPIButton; } } \ No newline at end of file From cf0e0c0dbc7d9c770840081616a3140ed65dbb80 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 11:25:13 +1000 Subject: [PATCH 32/62] [v240402] - Add LaunchAsAdmin Flag Add a setting to the internal settings for LaunchAsAdmin (can be false or true, determined at launch) Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Properties/Settings.settings | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings index 45b76e84..8329060d 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.settings @@ -71,5 +71,8 @@ FALSE + + FALSE + \ No newline at end of file From c31698d7805b9e3b5d1bed3b13263eef2ebac3f5 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 11:25:34 +1000 Subject: [PATCH 33/62] [v240402] - Add Setting (LaunchAsAdmin) Add the LaunchAsAdmin setting to the visual settings designer. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Properties/Settings.Designer.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs index cb19620e..d3799860 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Properties/Settings.Designer.cs @@ -298,5 +298,17 @@ public string IgnoreWebsiteWarning { this["IgnoreWebsiteWarning"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("FALSE")] + public string LaunchAsAdmin { + get { + return ((string)(this["LaunchAsAdmin"])); + } + set { + this["LaunchAsAdmin"] = value; + } + } } } From 584186748b139c7e5e6ae028e04e2f15de6ac0e8 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 11:26:00 +1000 Subject: [PATCH 34/62] [v240402] - Update App Manifest Remove the requirement for the application to always run in elevated privileges, letting the application determine if and when that's necessary. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/app.manifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/app.manifest b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/app.manifest index 49c0149e..9ce67d2b 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/app.manifest +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/app.manifest @@ -16,7 +16,7 @@ Remove this element if your application requires this virtualization for backwards compatibility. --> - + From 4bd65d601e4d69fc649248a5eae43467a5a1f8d5 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 11:27:14 +1000 Subject: [PATCH 35/62] [v240402] - Remove Testing Code Commented the testing code that prints the launch arguments to a dialog box as this is not needed in production. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs index 486511ee..eb17a7b3 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Program.cs @@ -33,7 +33,7 @@ static void Main(string[] args) for (int i = 0; i < args.Length; i++) { Console.WriteLine("args[{0}] == {1}", i, args[i]); - MessageBox.Show(args[i]); + //MessageBox.Show(args[i]); if (args.Length > 0) { From 10036bb9917cd0d75481fe994bb83b2706f3e00b Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 12:07:27 +1000 Subject: [PATCH 36/62] [v240402] - Finish Code Cleanup on MainPage The mainpage now has some commenting for basically everything, much easier to understand and update after a bit of a break from maintaining. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 87 ++++++++++++++++--- 1 file changed, 74 insertions(+), 13 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index a927ed3e..aa5c2482 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -29,7 +29,7 @@ namespace Stardew_Mod_Manager { public partial class MainPage : Form { - + //A little UI element fix, I forget what for exactly but it was something to do with SyncFusion forms... protected override CreateParams CreateParams { get @@ -40,8 +40,10 @@ protected override CreateParams CreateParams } } + //Let's get these crops watered, shall we? public MainPage() { + //Get the application running and do all necessary checks InitializeComponent(); CheckIfGameRunning(); CheckSDV.Start(); @@ -49,11 +51,13 @@ public MainPage() CheckDoTelemetry(); ModsToMove.Clear(); + //Set the active/available tabs MainTabs.TabPanelBackColor = System.Drawing.Color.White; MainTabs.TabPages.Remove(Tab_Settings); MainTabs.TabPages.Remove(Tab_InstallOptions); MainTabs.TabPages.Remove(Tab_Feedback); + //If the user has opted to check for SMAPI updates on startup, do that now. if(Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "TRUE") { //SMAPI selected to update on startup. @@ -64,8 +68,11 @@ public MainPage() //Do not update SMAPI } + //Report the version of the mod manager installed. SoftVer.Text = "v" + Properties.Settings.Default.Version; + //Check the locally installed version of SMAPI and report it also. + //If the Presets directory has not been created, create it and add the default SMAPI preset try { //var SMAPIVersion = FileVersionInfo.GetVersionInfo(Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe"); @@ -939,7 +946,7 @@ private void PackInstall_Click(object sender, EventArgs e) } } - + //Close the Refresh Panel private void CloseRefreshPanel_Click(object sender, EventArgs e) { RefreshPanel.Visible = false; @@ -947,6 +954,7 @@ private void CloseRefreshPanel_Click(object sender, EventArgs e) RefreshObjects(); } + //When the user clicks "Check for Updates" private void UpdateCheckLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string CurrentUpdateVersion = "https://raw.githubusercontent.com/RyanWalpoleEnterprises/Stardew-Valley-Mod-Manager/main/web/uc.xml"; @@ -979,6 +987,7 @@ private void UpdateCheckLabel_LinkClicked(object sender, LinkLabelLinkClickedEve //User clicks yes if (dr == DialogResult.Yes) { + //Download the update try { //Process.Start(LatestRelease); @@ -1010,6 +1019,7 @@ private void UpdateCheckLabel_LinkClicked(object sender, LinkLabelLinkClickedEve } } + //When the user clcks "Settings" private void SettingsLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { SettingsLink.Enabled = false; @@ -1017,6 +1027,7 @@ private void SettingsLink_LinkClicked(object sender, LinkLabelLinkClickedEventAr MainTabs.SelectedTab = Tab_Settings; } + //Handle buttons and selections when the user selects a disabled mod... private void AvailableModsList_SelectedIndexChanged(object sender, EventArgs e) { //MessageBox.Show(this.AvailableModsList.SelectedIndex.ToString()); @@ -1035,6 +1046,7 @@ private void AvailableModsList_SelectedIndexChanged(object sender, EventArgs e) } } + //Make a backup of the saves private void MakeBackupButton_Click(object sender, EventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1068,6 +1080,7 @@ private void MakeBackupButton_Click(object sender, EventArgs e) } } + //Handle buttons and selections when the user selects or deselects a game save private void GameSavesList_SelectedValueChanged(object sender, EventArgs e) { if(GameSavesList.SelectedIndex >= 0) @@ -1082,6 +1095,7 @@ private void GameSavesList_SelectedValueChanged(object sender, EventArgs e) } } + //When the user clicks "View Backups"... private void ViewBackupsButton_Click(object sender, EventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1096,6 +1110,7 @@ private void ViewBackupsButton_Click(object sender, EventArgs e) Process.Start(backupsdir); } + //When the user clicks "Delete Farm" private void DeleteFarmButton_Click(object sender, EventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1119,6 +1134,7 @@ private void DeleteFarmButton_Click(object sender, EventArgs e) } } + //When the user clicks "Open Saves Directory" private void OpenSavesButton_Click(object sender, EventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1128,6 +1144,7 @@ private void OpenSavesButton_Click(object sender, EventArgs e) Process.Start(sdvsaves); } + //When the user clicks "View SMAPI backups" private void ViewSMAPIBackups_Click(object sender, EventArgs e) { string InstallDir = Properties.Settings.Default.StardewDir; @@ -1149,12 +1166,14 @@ private void ViewSMAPIBackups_Click(object sender, EventArgs e) } } + //Open the Mod Update Check utility private void CheckModUpdates_Click(object sender, EventArgs e) { ModUpdateCheck updatemods = new ModUpdateCheck(); updatemods.ShowDialog(); } + //When the user moves between tabs... private void TabControl_SelectedIndexChanged(object sender, EventArgs e) { if(MainTabs.SelectedTab != Tab_Settings) @@ -1221,28 +1240,33 @@ private void TabControl_SelectedIndexChanged(object sender, EventArgs e) MainTabs.TabPages.Remove(Tab_InstallOptions); GiveFeedbackLink.Enabled = false; } + if (MainTabs.SelectedTab != Tab_Feedback) { GiveFeedbackLink.Enabled = true; } } + //When the user attempts to change the Stardew Directory manually... private void SDVDir_TextChanged(object sender, EventArgs e) { if (File.Exists(SDVDir.Text + @"\Stardew Valley.exe")) { + //Is a valid directory! ValidDirectory.Image = Resources.sdvvalidated; UpdateSDVDir.Enabled = true; Tooltip.Text = "This directory contains a Stardew Valley installation."; } else { + //Is not a valid directory! ValidDirectory.Image = Resources.sdvError; UpdateSDVDir.Enabled = false; Tooltip.Text = "Could not find a valid Stardew Valley installation at this file path."; } } + //When someone successfully changes the Stardew Valley Directory manually... private void UpdateSDVDir_Click(object sender, EventArgs e) { if (File.Exists(SDVDir.Text + @"\Stardew Valley.exe")) @@ -1254,11 +1278,13 @@ private void UpdateSDVDir_Click(object sender, EventArgs e) } } + //Copies the Stardew Valley path to the clipboard. private void CopyPath_Click(object sender, EventArgs e) { Clipboard.SetText(SDVDir.Text); } + //Opens file explorer to the Stardew Valley directory. private void FileExplorerOpen_Click(object sender, EventArgs e) { try @@ -1272,6 +1298,7 @@ private void FileExplorerOpen_Click(object sender, EventArgs e) } } + //Resets the settings and relaunches the application at factory defaults. private void SettingsReset_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("Are you sure you want to reset your application settings? You will be prompted to set up Stardew Valley Mod Manager again the next time you launch it. This will not:" + Environment.NewLine + Environment.NewLine + "- Delete your mods and presets" + Environment.NewLine + "- Uninstall SMAPI" + Environment.NewLine + "- Uninstall Mod Manager", "Settings Confirmation | Stardew Valley Modded Framework", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); @@ -1291,6 +1318,7 @@ private void SettingsReset_Click(object sender, EventArgs e) } } + //Check for app updates on startup private void CheckForUpdatesOnStartup_CheckStateChanged(object sender, EventArgs e) { if(CheckForUpdatesOnStartup.Checked == true) @@ -1305,6 +1333,7 @@ private void CheckForUpdatesOnStartup_CheckStateChanged(object sender, EventArgs } } + //Check for SMAPI updates on startup private void CheckSMAPIForUpdatesOnStartup_CheckStateChanged(object sender, EventArgs e) { if (CheckSMAPIUpdatesOnStart.Checked == true) @@ -1319,23 +1348,27 @@ private void CheckSMAPIForUpdatesOnStartup_CheckStateChanged(object sender, Even } } + //Opens the legacy settings page private void LegacySettings_Click(object sender, EventArgs e) { Settings set = new Settings(); set.Show(); } + //When the user clicks "Changelog" - open the changelog in browser private void ChangelogLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start("https://github.com/RyanWalpoleEnterprises/Stardew-Valley-Mod-Manager/releases/tag/v" + Properties.Settings.Default.Version); } + //When the user clicks "install" under the mod menu options private void InstallMods_Click(object sender, EventArgs e) { MainTabs.TabPages.Add(Tab_InstallOptions); MainTabs.SelectedTab = Tab_InstallOptions; } + //When the user clicks "Install from ZIP"/"Browse" private void InstallFromZIP_Click(object sender, EventArgs e) { try @@ -1383,6 +1416,7 @@ private void InstallFromZIP_Click(object sender, EventArgs e) } } + //When the Install Mod tab is closed, revert to normal tab order... private void Tab_InstallOptions_Closed(object sender, EventArgs e) { MainTabs.TabPages.Remove(Tab_InstallOptions); @@ -1390,36 +1424,44 @@ private void Tab_InstallOptions_Closed(object sender, EventArgs e) MainTabs.TabPages.Add(Tab_GameMan); } + //When the install options tab is closed... private void CloseTab_Click(object sender, EventArgs e) { Tab_InstallOptions.Close(); RefreshObjects(); } + //When the main page of the application is shown, print the correct titlebar text. private void MainPage_Shown(object sender, EventArgs e) { this.Text = "Mod Manager | Stardew Valley Modded Framework"; //this.TopMost = false; } + //When the user clicks the "Launch Game" button private void SDVPlay_Click(object sender, EventArgs e) { int counter = 0; foreach (Process process in Process.GetProcessesByName("Stardew Valley")) { + //report that the game is now running. counter++; } foreach (Process process in Process.GetProcessesByName("StardewModdingAPI")) { + //report that the game is now running. counter++; } + //If either SMAPI or Stardew Are running... if (counter > 0) { + //don't let the player open another instance, and report that the game is running. SDVPlay.Enabled = false; SDVPlay.Text = "Game Running"; SDVPlay.Image = null; } + //Issue running the game using the button :( else { try @@ -1448,11 +1490,13 @@ private void SDVPlay_Click(object sender, EventArgs e) } } + //Every time the timer goes off, check again if the game is currently launched private void CheckSDV_Tick(object sender, EventArgs e) { CheckIfGameRunning(); } + //When the user clicks the "Help" button private void HelpLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { try @@ -1467,6 +1511,7 @@ private void HelpLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e } } + //When the user clicks the "Give Feedback" button, open to the correct tab private void GiveFeedbackLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if(MainTabs.SelectedTab == Tab_Feedback) @@ -1482,6 +1527,7 @@ private void GiveFeedbackLink_LinkClicked(object sender, LinkLabelLinkClickedEve } } + //When the feedback tab is closed... private void Tab_Feedback_Closed(object sender, EventArgs e) { MainTabs.TabPages.Add(Tab_Main); @@ -1489,6 +1535,7 @@ private void Tab_Feedback_Closed(object sender, EventArgs e) GiveFeedbackLink.Enabled = true; } + //When the user clicks to report a bug private void BugReport_Click(object sender, EventArgs e) { try @@ -1503,22 +1550,14 @@ private void BugReport_Click(object sender, EventArgs e) } } - private void DownloadSMAPIButton_Click(object sender, EventArgs e) - { - string appPath = Path.GetDirectoryName(Application.ExecutablePath); - Process.Start(appPath + @"\smapi.bat"); - - Application.Exit(); - } - - - + //When the user double clicks the Settings Icon Image, open the Hidden Form private void SettingsIconImage_DoubleClick(object sender, EventArgs e) { HiddenForm hf = new HiddenForm(); hf.ShowDialog(); } + //Create an error log with a supplied message. private void CreateErrorLog(string errorMessage) { string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1545,12 +1584,14 @@ private void CreateErrorLog(string errorMessage) ErrorLog.SaveFile(SDVAppData + "log_" + LogID + ".sdvmmerrorlog", RichTextBoxStreamType.PlainText); } + //Create a test error message private void debug_TestErrorLogs_Click(object sender, EventArgs e) { MessageBox.Show("DEBUG_TESTERRORLOGCREATED", "Debug Menu", MessageBoxButtons.OK, MessageBoxIcon.Information); CreateErrorLog("This is a test. Line One." + Environment.NewLine + "handles second lines okay." + Environment.NewLine + Properties.Settings.Default.InactiveModsDir); } + //Opens file explorer to the error logs directory private void ViewErrorLogs_Click(object sender, EventArgs e) { string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1571,6 +1612,7 @@ private void ViewErrorLogs_Click(object sender, EventArgs e) } } + //Clear the error logs that are actively stored on the machine. private void ClearErrorLogs_Click(object sender, EventArgs e) { string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1586,6 +1628,7 @@ private void ClearErrorLogs_Click(object sender, EventArgs e) } } + //Create a test mod backup private void Debug_BackupMods_Click(object sender, EventArgs e) { MessageBox.Show("The application may hang and become unresponsive for a moment depending on the size of your disabled mods list."); @@ -1600,6 +1643,7 @@ private void Debug_BackupMods_Click(object sender, EventArgs e) } } + //When the user opts to give feedback, launch the feedback form in browser private void Feedback_Feedback_Click(object sender, EventArgs e) { try @@ -1614,6 +1658,7 @@ private void Feedback_Feedback_Click(object sender, EventArgs e) } } + //When the user opts to request a feature private void Feedback_FeatureRequest_Click(object sender, EventArgs e) { try @@ -1628,6 +1673,7 @@ private void Feedback_FeatureRequest_Click(object sender, EventArgs e) } } + //When the user opts to view the bug tracker/github issue tracker private void Feedback_ViewBugTracker_Click(object sender, EventArgs e) { try @@ -1642,6 +1688,7 @@ private void Feedback_ViewBugTracker_Click(object sender, EventArgs e) } } + //When the user wants to view logs from the feedback page private void Feedback_ViewLogs_Click(object sender, EventArgs e) { string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -1670,6 +1717,7 @@ private void Feedback_ViewLogs_Click(object sender, EventArgs e) } } + //When the user selects a new user theme, change the theme in settings and then apply it private void ThemeColor_SelectedValueChanged(object sender, EventArgs e) { switch (ThemeColor.SelectedItem.ToString()) @@ -1703,6 +1751,7 @@ private void ThemeColor_SelectedValueChanged(object sender, EventArgs e) GetColorProfile(); } + //Handle the selection and deselection of enabled mods and the UI elements affected by the change private void InstalledModsList_SelectedIndexChanged(object sender, EventArgs e) { if (InstalledModsList.SelectedIndex < 0) @@ -1720,17 +1769,20 @@ private void InstalledModsList_SelectedIndexChanged(object sender, EventArgs e) } } + //When the user clicks on the version number of the currently installed version of the application... private void SoftVer_Click(object sender, EventArgs e) { - + //????? } + //Launches the WebTools window private void WebToolsButton_Click(object sender, EventArgs e) { WebToolsHome wth = new WebToolsHome(); wth.Show(); } + //Checks whether to do telemetry or not private void CheckDoTelemetry() { if(Properties.Settings.Default.DoTelemetry == null) @@ -1778,6 +1830,7 @@ private void CheckDoTelemetry() } } + //Upload the telemetry data to the cloud private void DoTelemetricChecks_DoWork(object sender, DoWorkEventArgs e) { //this.ControlBox = false; @@ -1794,6 +1847,7 @@ private void DoTelemetricChecks_DoWork(object sender, DoWorkEventArgs e) client.UploadFile(url, Telemetry); } + //Report result of the telemetry data upload private void DoTelemetricChecks_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled == true) @@ -1821,6 +1875,7 @@ private void DoTelemetricChecks_RunWorkerCompleted(object sender, RunWorkerCompl } } + //Allows the user to opt-out of telemetry, presenting them with the onboarding window. private void TelemetryOptInOut_Click(object sender, EventArgs e) { MainTabs.SelectedTab = Tab_Main; @@ -1828,11 +1883,13 @@ private void TelemetryOptInOut_Click(object sender, EventArgs e) tob.ShowDialog(); } + //Allows the user to view and read the telemetry policy in the browser private void ViewTelemetryPolicy_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start("https://rwelabs.github.io/sdvmm/policies/#Telemetry"); } + //Introduce a setting to toggle whether the WebTools browser shows warnings to users leaving the WebTools web app. private void WebToolsWarningEnabled_CheckStateChanged(object sender, EventArgs e) { if(WebToolsWarningEnabled.Checked == true) @@ -1845,6 +1902,7 @@ private void WebToolsWarningEnabled_CheckStateChanged(object sender, EventArgs e } } + //Allow the user to voluntarily submit their telemetry data private void VolunteerTelemetry_Click(object sender, EventArgs e) { try @@ -1866,6 +1924,7 @@ private void VolunteerTelemetry_Click(object sender, EventArgs e) } } + //Allows the user to manually install the bundled version of SMAPI during the warning panel that appears if SMAPI is not installed private void SMAPIBundleInstall_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; @@ -1876,6 +1935,7 @@ private void SMAPIBundleInstall_LinkClicked(object sender, LinkLabelLinkClickedE Application.Exit(); } + //Allows the user to manually install the bundled version of SMAPI from the Settings private void InstallBundledSMAPIButton_Click(object sender, EventArgs e) { //run SMAPI Bundled Installer @@ -1883,6 +1943,7 @@ private void InstallBundledSMAPIButton_Click(object sender, EventArgs e) Process.Start(BundledSMAPI + @"\smapi.bat"); } + //Allows the user to open the SMAPI website in their browser private void SMAPIWebButton_Click(object sender, EventArgs e) { Process.Start("https://smapi.io/"); From 582e4ed070964a14e6d4e8fb67aba6cfd09d77e9 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 12:09:43 +1000 Subject: [PATCH 37/62] [GitHub] - Upload Header This header has a whitefilled background so that it looks less... fucky, hopefully, on dark mode github. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- web/SDVMM_Logo_WhiteFill.png | Bin 0 -> 200425 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 web/SDVMM_Logo_WhiteFill.png diff --git a/web/SDVMM_Logo_WhiteFill.png b/web/SDVMM_Logo_WhiteFill.png new file mode 100644 index 0000000000000000000000000000000000000000..a0365bbcee33f297dc804612a9c9f6337351c7f3 GIT binary patch literal 200425 zcmeGEc{tSj|38lRI=wm_l{%#&Yb8;(%CRMM5M?hR22&J;84ZK1Qzw#y(}L^`A$!)z z2z6}PXUIB+Q?{o)`)C}w#et-V?T-Wcqe*b)2*SXG_IrDrh_w{z)o`Ht?TAbT> zw{6kK6BhYZ|1UT)6R0{KmVzAdVPJ7QXR=KzME8s!54CM?sO&oYH3aRu z6HfL2{{9~Y{vQSY|3HEDqQhTi!c>3yvGrNZqZ}JX^u6e4hK`33Z<&+H9KCzBY*+W0 zd7UuQ!5=?+zr?9~YdP<&%cY7?QLXNi)QshoB@E8iex|Ax_3Mvc{k{5g@^3yTu>#yU z+Tz3L>L_D^Y9wz;id3?pGLi4c=i9&gVZ-PAus=S(-?DTbkxQz{7zq+G*iU9{rQROzhpjn= zk`L7jep;_GS{eJSZ}td#of8^DJL!$Ow@#%mZ(M9Q*{qF=y$ZL+|Ltjx1z?S$gp)&p zWu8UXr#=RZd_nClwpX-r2+{yp8N<0{pX|dTDou}xgeVV27)c#M%?T#Ju_>K z@WZBTxV$09|LsWzD40tw75zClduv#Zo1`bDyp4U6L%ciaQHPJpi%vcH_CK`+H=Kg< zKd=4N4{Hak{k-8oTZV;tXH)FdN$Y{Zw#Mi^Zi%u@p(u98S zjAy4G*5uX3a~==Cl5`)HP6gX?uRUELv)TLL05N*sEjD|39{kTo_mIt=9A(MJ-D~F& z+jCJH79i#kQIm_Bc|pD#SE(h^8U_}t#}d#3B~t9CKfiLfC?9$2Vf|dNL2B8!XLQ3e z`cDxpSUYm#+DDc_o-S_OUM$cTPWXJ|<+KyxkE{q*!DA8#)NG`z9lCJ#J$`An*x2jX&zJ^%%#tqgi*!bqw=*mHs(&q2>PtJ5=D z<5fC6zxBuW4>teb^5QiRY>WB-T>tBZFD~&b-UFdU!`L+RA$(qf#8D+GOQWSa-an6C zzu{!l$FS%UvMaK&(P9uhqoNt;*kDfSidP&|`lo-BGXAfc!3R3}p$;L956GpB$q#z! z+YQ~1O8#=Hn1^jT?ivu&b0%tEoK|dn>=e?Xn31B$ad)I)Th5C!hseCuzpym*Z#BGZ zD|-L4s_L5OV%7C3w95V|Huc^bs>$b#4QjAV*5Y12tZnB8(T`VC#7AG@pz}6lLg z@Z?p?x%))ap3nG5Gvkft`W>+ir?Zvt>#<+x^|{e(IaApJgvXt{W}$ex&YRTBE6O`c zGEwpU!I$@j&(%pBVU)}dV_&QcjMRrqdVaNZbyc0j-h7*!N4$m)SE3rq7v|+mI2{*a zarvrP&o26qjq9Y^gucmkZSay?rET!R5ejbrFwY)5SS%vK>GnK43 z=udxn-7SuLQzXoac#K$q~jdtP?Q@E8k{LmL{gaUkNv*Ei3A)yCc%pMDH$GW=W z{(|cpsH@}K+pDKG?jTo7L^&s*wD(?j%lX&IJ1LTZcSE8r`;|H=zglis){1G=T;+e$ zNMSSmL4-3RXM)&PUfDxdWNXKR$OU!MNmpDqZ0_!(j&I#yX|8~`ZBUaJuVTy6i5;NI z=ar6aFmXeUNccDFt)q`0-N?G;leYCYHiuEhUv!=;&C*8PG&ZnN3%DeX&$HIu@Et`< zAJ2zz!~M&uDdHV?xvP!736`ZRCsk2%!xN8~!oWryJJjK{%^Oe4`2cGpPNebV1$k~{ zt#4O$*}72Er`GBmKBq?^67J=}1F;foW2IHeh{H{ZHf=^jY@%j0l@H5*-p5C3P^4@n zS~K~<%~mVZ;WamF-B>nVr8K-JT;hdZoEkt^JwL`cp8U8LU(=-8*6m#$S!49&%1nnv z+eOoM5Bw)&J~6Qxzt_Ho;9}|1JC)OS2^|sSnZy_jc~FJ$$R0hdX;<7xURK!PKej*9 zz}jK4J^PKKLt`VG->S9*m)x2h78M%fxib{2Fta?Nkf&5!8SSL`Zp~zG&u8`2?54_h z_mn3!n_QaCtrW=bsKOqQTIy=%N@RnB+rQU}7U^MB_Ahkr!3|Y7$|oKA(wXw5KF4M= z?v-T1_-(h*o1qGA7gI~Njnxm&whvibx!cW3neQEMw}{|PGS^U0NYE_}IkJzC|&% zFj)K<^$WdgT7f!lSaFSrI;l=dq&_o3+^q3F{2PFVe`+K}QsjKv;FrIDC!!87P%ut| zLG!{z53u@dA>aO-fXtuYkuRXn`82KQ17+MWY5w?|XY_C6erJH+u-=yASj6ot68Zn(wmLwNDG6IsopQ&znm#-Nn%=7u%iG(WLHHXsgXD&d{5ks z60omcR{55Z2LC4dGq~GzxEBXVPKPL7Tn7%#q{>+oZ7Y$+nJ7cgi5^K<(_{;a#h+cj z(05ivDtn!xUq#$rUh>*^#m;VI)a9hp34AnPK=wPSE-X*%@af}3+JD%O?XbkDlYG=j z8i&+LK>R!9kA=Q!h17s}u6?t*_iE#Svz{WB6 zRgE3|_CZElcXGa3^Gz$d$7M-X_Ojw%{_s%2d#NBYYpr&)@8iDqbF?H=#)W}CQ?Vp> z+8eUm{?6OQp+Dlz_~!RuW1X*R&xoX?{DxLMQ81hv)$K7s6Nc4Q{=2`+E@Ao3RS%#BYChgXr%igBdQ}aw=aYP=_aC zETVPddX-6)k?mHY>plTL>rZxa$G0}VGwteGOA>e}vjV(d3ll*bdAikHz}7`noh_d` zdBRsWIVf;$_cLu_dAq9M(|e7gFA-FYE!PT8e(g`h4N|DhEBUj6dOhi881(Rr;j+an zeJ&3v!d{+zjIG5}&nR|f36&H%N7hzGrZ%*E;dW0(Ka*gD`O4cR|0ezVf1H-!?P+g= z?v^`bZSR7?Uh>(|eNs_>-1C@zNuIoZ$&{PxyzMQg60Ve94|$N5q5C3ek;s@gVHH|N zQPwYKV{*;APhoHO56-?yE_~}_Ju;b+#wUNg@yy(nn65n4wKemGFqN$-J)TNkPHQ-R z{nEc?m#L9ig!&GJJ8K_h!|E2d)eAWL_8{Cy?828%d``yhPNf1V&tijnb_zba2LW5xO!}AFC$vm8(wW$} zD0ie#ddHw7z8F-vGp?5|9+7Gh6WP3K*exr&=5A9Y zy+ntPzvWGj{(!AgZfYc#N&NI;8x41QiMLv0yUo=DVHfotAN0NE;y48Mg7?B8=zzYkn-KC1_>`y~^~d`1GF+-z-QOz6VQmUG~5`*O;3{R9F$J3UqV?0+%W>2I<(ehOFrT38c8SBL$;q#>#gML^w z5^p@q&2F>3YQ2XnJ9qSC>-*=)UELLAp0_1GtC6M>TjJ6CxaC6y9@9TI3}3i_$Q_zn zFlr4}_DZ0Y&Mw@L6~(V~M;_zcRcUF|Opp&>`BH7fKE)9sKWyJ6n?IsD{EpzGU$`KJ z2dgQWzd5^jUa~%WT3>-&n51xl706|VGC#;esx=9a5>a#_cFbbS%d zZHE*ZASPE+o^sKrx6$M79MLZ^@@$&)m7#&iEtL?!=;Gg-eni@$>+#7N0EWjaM7bCOWpHmtdRawS%?_&z)7cTNX^DH82x;3e$ zeeURFdHbpEP6{TCA~^>V!v?Y67~Qj*yw6O}4}0sRx$MF+Eoq^YqKB9ivmDFW4?ChM z(d*s!M` zcAjJ7!r2szU5w`pow=r$ol}gJ0va(f^a#MNIZXzxH?O>TXPOtuJkIEbr+%S7cth%i zBV3sv(okVcjFjHxR%W~$sU}ZEjc<@+nHV+FIz}mx5$xVl9%DZ-UV^i~N6CEcyo=t` z{cIg%vGD=cXyV~!;jG~M?EsIJg`>4YL7ErXa&$tCbVwI5xhacFKy|I;!qqwG_TDUS zCB{Rf{dyEHp5Mhmw_=RV*NTo6$oqqYN3m0P+iVy8v6B_mYWen)nXvSha5N&92F$t8 zy|ipc%6~JyE5Z-^o$%=!Zn^{Lqa}j(Quev^q0uf!exV|DNsW|HD~tD9ee%I*M@vsc ztAz;OA=+7MObCbJe`|X=SxGTBbyf_Y=dyv#Mmy<8<>#s-`}*qpLBssCkwRCk*|K$g z&lg4wCB_`|s$hMBud#)$fD%vflV~HZ=&mnq9I0jTX<0>k$ReWTq!Q`$B8ZRsX*P_c z_KJJyTDIh8^0HO;#GUHp@zEV$4Z9UZzFDJ*n3yxHWZg@#2YQHGIwjcq7l`^zyf$17 zn0SJSA`S?W2bNls)JU_v!2>G)7A7wv#N;}lg;3>7o=s(ZYtj)t0cI1e@;Z|~#Ar&U z+Xl5bU_zvY3sB2eV!unLc`1=rejhhfSDZ&rcX}>tzQa&ylhJhw`a4!YZ3nW-)l3;@O zmv8$02@YR+1TW4`g1!_3L`b;ek9A54P;Bjvp4>*?CPAWL97XVTQyQdl4}Yw@T$L3u zI@XRYN-sWhlLv4Kv|^ln+&@zKG<(!1m1%Rc-(3WoD;OY37hI7lIy#S*J;lU9;+k1$ z7Rk;y`%7#0an-LBlv57{$nNx=AMY+69c&(YHC0rbz5TmqdfUO7PQlE~BZTqsZ~A5l zG*T0QP=*p_k1;{@A`P($_22|tOy(!i$dBK zy8a>AaxqmJFD^ku%@b*#9W<*;#We+WtVz>Z?{KckE1zY>LsXY5KHQ}9tcjc2k#BbL zl+>9DD!ML&0$!?@C3LA0mmKD&pxUsy3$T-wm**vQo#B~W@X=MRotf9hQ!jAxZ9N*i zc4@$bSrlddU8ddMMu!A`Kg2UWNZ~@-lg$^#!ehq5m#|{vX&0$74%cQ&^9V1!8)|M( z^?YugTpce7BMA)wrDh0$Uf7_wF4`3W&+=%YI;xWsC>_ly z04&b8P$y{#3GR4lU7v?QJF)=Srrmq%M`V?ztYdr{(?+xk^$R3~U zC>%!{_xur44hLu00aSq!NebaXT7LhKNV}gA7hf5=DC~!~Zk5YWBk9o+CR^p1HVV6- zL{)XqqGY~`E8!h4OC^hb3>RG_zX_2^^=_km$yOYu)X+yNeuo0{)fNp!I84HMp8 zP!bWtN$&|Pwam69-*GXRow#F+$o-csXn%g51D%u4HI*TvYKPIr(O_cbcChk-FV8|k z=!hse)*Zy7=A#~#h;jidG&g=en3`4;VI^I%;Eyfx!#aTyYqLVeEz=Of%q)Torpn2e zO6m8WI=O7svEL{A-GNl5Vs*jA?65I{N~hPBjBzK=A>pKT4m}L6&hHbrVlaTAXZHGJ zml}HtC2L(Yrs)*dJ+ULIlZNvW2tX53-mK?!1tN_CQjZd?cn=7!$uKN@^<96|!5`t; z-5s1|ka+UFWSyTj*7~7jzL1jno{2UjMDcv=kazFLH{0k>v!x{Ck$L+06kiOk}~}Z-HMyc8OFv0*E{^N(q&J011`H}Z=*lT zfEfD&7-adtvTgYbPbrwL8Qe&LdxDeJ@Z6%`obQ7mx>tf-F$E*W_DKi7`y_q5xGm!5 z*fm3CbkV5AePO!X#l69Cl{(xKXPRJL{SIFu)0N@q7f- zyM<8G>Yh5M23e!fP^~fxx%Y7ucb^RS_Chi79@}NTI!}P*(*-(B?H>8 z9W|<~bWkG^S&{77dp}&H5V_>yKS~izkzAo*Xn%h({vS-TL*}>MJ72Ic9j!+CsSZvy z6}%w)y1uZlwb=`ev@vSG9nEwny%5f&wm~w$_JlW3iyaoK)${G4NXz8!~ey^1pU=M`gcTQ%)-`mQwr~`FS51Qv=D{XX~qJZ$D5l z79yhucP#;n!+U13wId~UrYE3H6|P1sgXLvxahp9%pJ~`9&QT67D3^$!(`pQml;pA|8@xpZ-KPC z-3*{Xk7B@Ke2;d4fHfKHljk9ewEvfdaIO#D2Q)ApI$uzPvw>{MARKtKu5+RiP}Xav zMnHZz=}9y^JllJ*^(ej$Ge8*+v`dsup)>?y)n$0d!P#K7;)%y4mppJTdjeQFwu3U| z(s(aP*`28)R^I9mw0Jzg`s`BXQ7*O$jbr+G3_-*bOcMiWdjMxdoS)d06&M02XL=hn91g&)L^}n#uYXRv17`A+g`!+>|MGNGqm9$L zP{fYe#ut1!3+F2)nq?2xjVtleqpe0HO6F8l7kBns=m!@qOMeOHU^%~!+RkZRH5WM1 z6Y-ZB{u1r-IZM4^zVizPdN(cFRdamnQm2A5Wq~Q?26_j2yYklk+u~x2QC@`;wQj{d zH^+V4+(uKAsl!d#k49q+%Z4xC3d_3B-_J)@HvC8#r|V!JDw~ELTU$ldH60oiaE##{ zZ?P@uTxpIT^(=gz^`8S1{euyOu1>zV3r)$Ey$Ef+nbBM_oFv^*-R^aG{nbJ#Iz&%j zSXuelz>E=?#qWk#ECWj6O_c&hwTwG)178X+TwLySy6h=vPfsmOSMe=+amRoOh>jH0SKU7HOR;DU;Jv#Ppr*Kq&3$IRRFYE!is{_n?n zL?n2Z&)|kWJ*;WyoS3hZvUros|c<$+#Kxbv242; zok$EgNqK#2m+OTA$v=zkWfn7Dd$j~vPIW2aJgd{g3r%}MjAppcF*+c#@O`I`+Kh^- zNSxOazCagh`488p=8DBJTMDuku2&E@ckYC0BiYi^CfRFfGW*e5A68m9;=|%t|Mucj zsHW}Gn(tQKhH*nT!boQa$#NyDPM&fl9lNDVr>MO_K5t^dI>aoolInLQ=C;#$wh>WM z+XTq6^h+U)&DQz$6OM@6sle{sopd=+O-pd2(!bCfmDmcMjYg^rf1x`=e%clp)YzEf z$ZeO#+kpQr`lyVjt((s}YX6k6gCw$4OX0Rbw@6OS_o4+Rk4%|8@LGY>`+%lbekge( zlPAJho0>*}Uu9=YSWAg{BJ(CY0i{Aai+0mce^qQ`=8(VTZfOWlec`*KtSIat*BXQy zBycDD;7-nv1rqxjh_!JFeHINtO8)bMndYONZ^ge+b+#^M7es&n&9 z_yL#h{xQN$KDk$oWYNEmJSW%v+lj9qg?AS(gqNr5F4QXRmM#<68toJ$&zMNNm(P>= zEjm}hv8Bd}VD&8x0xn4%2@e7T{^FF}@u(M!F%=vEzJ zf^RrokDa6~wHcX@rQM@o`m#bgj^UMt3fb1#W#f8BwI&y<(5B4wO8cwY5>4AgLn9{| zpiDu#+CQ(h=jHfEM`b>DjWJIdPxHc7O~k~LQ{o0>!gN^vHS!06exXl;BVLDfM@x+qd>{auS>T)i znWA@W2QvTTmz6u|*w=no`RinP#(eDu0O{RN3&!AXl1jpEZRe3fb;Palf75(B)Zf&Y zHEb{)=5Uv)*ziIO`xX{xfKtk~|UF*j%s+t=N~r1mMWs;aZG8!9$695%p|Q_#%81Q&PbaG zK7D+EhaAfSXoi=+KN1A~$!QgN&?ap9sS>41KGae&MKZ1O(j#duRK-&1=H_+t_2J$= zw;;@beypKx6SmRFGWf@6Ttq12Tjlcwi{3FMi!*W}xUA^Z{86xKMIy8}%6Sm=2sml9 zFUP2p!nF~T|Im8 z?|KLisJ;!lBS1bInfaZLlSxfMKXh-?DQbi%;+99jT-i+?02S~-<_81d06)beNAXGv z_MbIKIjj?GOLns8tAFcyX*SrY9)HqRZ8mrxnUfEg0zDhY`ixY8E#2l{0X;bhJnnv) z*&Ejh9C9O~8YUf)w%?8}SINEt15#kb6?Hh76^e=-B=V^r#@C&rs*?)qM!qx<-Z9DB z4&;R%wCcaxoa!7!+nqu?);%#mT`O@ySXz=}9o&~)$2}#2w>b}H3hJH!rPrTOBo%K- zDr=`#>0>)gl!!FQ9VwE`*b2o(K6wO={Y{@vsZcTZ0s2-JzB|kcGc&*eJTqeaUJ?}) z?T;w>8mgywKsewE7@f-f=}psohE7Aw8*XrcvI(rTAwdFS)Wk zv3zKLq-WOodJz}RN=QN09S8k;yX8~5d((5q@rfJu8dPRxoc-GLNxI>&b={<77BF-*@Y+8xv3dv4*uxV$Urd7J@fR{B6?I=S7k zD0S%G)?JnNcb#i;BE%1Wp;jjhm97-d%Z8HQ5xn~fZY{h`!+7`2B~?f3>%V4@*hjTk z{n2NI*xy_v9NBHq?V+QXk@H;7UP^1a7D>jqU%BsC%WR5=YKNI zL~MFtepMTtT41Y_9E7Q9>dq%m|MvRgW_kLo^m0|(WJoI4rQY&Zi|IL{Pam(H3HHYK zjow%4BXWLFvN3l%x6qXtndMXt>w;RQeuc~@Ea<6|EMDy@?vE{C=fAIO!ZWfVk9(TL z@T27SbJ&jEP=vLBSo@!(#AcTA9+ZKII0IUF+Er!nI@>!{AckAzpvNGZ?6k?Bkw@@K zW*l_SYI*Z6UahJc2pRS>doD<;bC=afpB6Otneq{7+cR?p3J~)W#g@vp=BB;m)_4Cr zrn1`8V0{5hmm>>MyaY(34oyF6BkM@l8*y@*qa;ShcGR*=d0B4k^>vYcB3y2;J;9-M zP}ekM)DJ7m&S`(UTZs^Pd_o zSci)|kUhJkaDZeG-2W*}*S#G>RVrNnP}}m+pAtM%Gp9j9v4ToNF(F8f%bIsVo~KPF z3+FKGbNe-^Xew5sT_$V&ih;`-CM@O2b|T-&+2-@nk!- zz}F6++4FSRvmFy!I;SQ-eF)#@&D!RyEt3%CA9tve8idRy$>8IhTZ*Rr+d5{=hjA{+ zI$y~8U?^EDZ;D(xi06yo<+^e!G8UPqe$3=2XX>eu#=|oHn=8vhE?Iu^i)0XIl`B9; zRwTCRRG$Xv(AZcYcGT^aZ-ccg1axg2^p9FYwZUN!=OqU<48$M9r?b)1K^bV`Q+Lv} z59z^ih8H>`^WsE4e_=Q|gt%n-$s69x`v#$oYBs&~WO_w(vKu`EF zD7lH^g$-hLTp%MEUvwD&iko!DnzVjKN1@l>{&bvmYoRVTs`pV}dLauQeN&qkl;A)1 zz}YmZNFR5BL;+Jz6L9`HoF$vN0Qbbek)bo(N}riU zc4m^w0}^nO?4v&KsoLd_wc(S%%n2v1M5xI>8iFK=O|m$nK1mX4#v4SLS)m4(nqGLW zYuKpOqN!GrTCDwl6p3`91EK^EG(M|~_x^v(J!6c5=Q6q_@WS$w2lwmbe!I9U&Ey;~@7G|>cTv!qljtm7r^oEc%U=D_dn)Ct zg(VN8-P+n23n!B%%IfeDR?FzQP$5PNovUgtw#dVIRyXSEu~C8Ey|HDh#!We4(Ypjt z&CTHh`V#aGU+Y^AT1m(5=?b88aZ5Q#nI+ZxBYHwRvltam+Z4l6E}k*^!f^H;u42qr z{Er$$LSOS-hxs`HGeu21175S#SH%_NIFo`eJP0DGl?dW1CVs%{idaqf2S z7OZK1FMuu;(U}7!!zPGAWo5=VpT3{_$XPkAz1iJW-z!@$c_2s(iBKm6R^tQ?=kxZO7^=BP3$2+M{;|(>S zk_4T2g_(Fx?Z9{JwpowYffNkRfgk-A2t4YKJ!kTol8F~MZ?cmfzKuS8iieCr5Oj|0 zT-5a>Nty&3UPDp1ftwublmqpO>j3jzAqcz??T1xdK8UA1_0-F44#$QxR>$pT87Rm- z7buIuT~>%Fk)Kxj3wEr4iRbgjDl&b?02jOG{Lf=V6b4#39IN+dIw_TSqU?WlgMGrK zzm@U758vD!Yt=vsZ`$yq-+Z_2jBS=sM_!St6N94&}T=6b!MbU+H1Cdb3*f?1Tc83yGxpUXdjo=uTZJc$;^ zEA?6jQ!+oE-oN(*9tA<(Gw|Rjwj9($Cd(_w)>K55_|Ok~9ZETVEFXB#OO2FKIAJ8& zHkQ#Zy7%HWb<#OC(z|aZlOHXl*QF;Z;~m|yILF_0_@haUm-eSKg>Wa`#4)&UyPQP@ zit)r%x|7E;$Q)$rf*Ps0ASKahc<__M)3Cxte}$=!EiB*k@e=f!#2mrX{uJbTLCO64 z^k6(EU4{3)W&Nm?1ir2X`X!UUJ$IgcNiK3L)CViuP7*9>sRO7>_um8oAoKoKzG9sb zM3Dwch^l_)ib)B_1oq9ebKBB` z`Ii*nxM|~^^uerA1eJU2n?kYr-Omm}yNhjhmLJwZ@&h_Ka;-D>pN5wOxHccRG)$g#qbiZjtp=Jt2Qob_)9x9Ep+Cx@8#cp{u z+w=XhDoz*_qqza+*hBs+!{M4k%#}BXLLe)8l82l*j-aO1m<$%Y!q8icJ5WJBxUvH>g<0YUatZDGE#?PFegMl%vE*ds&k4) zx8-GR$)qY0)cGT!aRb1}FVG_!VEcU1W&m2X1Wl9X0dmf_-x(>{utxCE_ql5y<~$WS3UMVUL~*PPXDOu?%Y2|Rlerk z5P%(T%H~y2vBOkMWA3M!<#^-()i&}8Oy+T3kd=|XOITI`emx{c?V?0OY< z)40-Alt_CwM=e|*S51Al%;+tDFZ)9T0qbt!Kpm#$p)m}_CZbhR}} zz@u^-M10-(O;)X@7tX#k)R%f)p>ZI~rRRZyio4G+FK*J(Qr=4D@Z7R7J$M3}v65b^ z^Jh?q*=T9!NxOy@&9VqtqCMy3+_a5MM2PY{P0L{Z%-8ENi{my0MZIUtJ-yF_D3jjd z86Q=iPrT^mt!6bE@6~g+=|fja8VN5gQ(pXbh^EKGCn`jc3X$mkjdHR~9}ZAYX3L(o&CGc|C)LfPWtTbpdREj>qK=eQeUsVgHAOVpGdPO@>S+Lj#ifz=8Wi+K5}mCLdbK4NETnD?|9l5>uEp4oLRZLym zN0$6}4DSGeSxw;mB(GatE*Z@bpxUxTwUcRyJ-L6Oi-As#z9>0L1C!GVmJkeJ`G^MT z7W8eX%yn6^Cyc}ry46WrleMb5!;w3_1xXqFWMy%D;tN0Ql7cx0{SrFf9;@&G>(Z9O zq9-e>A-4A$!q9xeDM9B=Mbob|G+3E-0iB@Z<=c!3iO8CjI=dTAB7(L&4mAP@mpk7# zONMRAob~uVee$ zBj`L4_t~Fo;hft6tymIG!g!QWb)29+_>34e5+|#?_3{pYxa4!yF`U$?ZUE?$tKkZ# zUBW2AYP?r+MU-b#2ai)BAAlNmJ#Q7d1Cj*$cg0i2Q02et^a$KE=8ktM? z47wn@hb&18UthlL;sR0G+nl78a^zEc%2B{|4YH7ya+cQf3NbcU#EY-RvJLkjB#_?@ zBDZP};nVr{RTHEEQFsn<0Gqq@!S?Fm>E0-O=x*{2s1QWwD3Gh$?jR=%skfP7T3+O+%6tg}X@1Fo5WfZTBlOUiJ^>hSw$BAO>TC3<26;dEgLB)x1PN*9Hu z4O%A`-8NIF#Ld(-$t#&9z<<>!;g#lBZc$ad)bmw~M-KPY8kEEp@qIyL>in^LpHd{D zQekifl=+UcZ+?@xDcK~&av}ZgH?3q#(R0WTSO(7>km8_gMlf>Lk+Hca`#m~qkx0^^ zkovvki@H$Pj|JquwrpI&LEo=s3X>dOKK9ojJHmtl=T8zpLw;k~dY@T12a zk;3EgfZwGNDCAhm@{?T$V5WbezP~53TRm?l{b`x_5rW9H3{HzV20a5weGg|j1^E%`dq{ZOWr}k zouwB)YBM)r&GfxAWa4}x-#Is1YVz!_ucN?GLqP}H-J$9k#hcg{=s{gy?fL{#%E}eI zd}t4v5WgO}1VH{+zRY%U=(e#-v`>#211LE1ZR$xbpG6n31nBnj6easKL-O+pAcN;k z=U_3u9rW=2Uje7^!7Nn#J2MDpzTa`LfiDpS7G$25^0WFqJCiH5p0?Sc!Uob@FJ=x3G60gfe_W2U?10tT?%|y6B4_zcY6w)-E?T7Okcx{QaK9|I`B3a;G zS{A-ZA^@xSPLqX1ondMx+}kx33bdnjl~FYlyZQsFkXRLl_fL<$c>Lz5m}7bW&h zpTFNwEFp@69%ps!*eHOY#JA4d>DveiD6lItV3IbNvJIDkXy8uWO7=NhJ}i-D1Gnk? zaT^vaHBlIu4w#^)okK~?pb}% zC-Q9Rg)(1LW;;v`lw6v753tgx*QH2MUeZqI6R7r`xy~;c|M1y#=+b^syUZZr7RYgl zy^@)c4_DdBOuKm9_E9% z%@)Z*E_9k#WT82K=t>f6O!aOze|GxHdSp%mE;r}eSE2em3p#=7o(v?08%M)=nD8{`)!q&zH)J+?Sg*T-tN zTGtdd_oX?Sl6yb|2a^$AnGu_8y#@&nY?7DlN}o#~GUL#P)Q5Fu&7Kxu(DM<8*FmMp zRl4qJv&DfNeTl`T>t&bMd4EhNb^Zz-u$I}xCHDH>QZ#sDaT&|%dSmKTeHx;xMxuJa zutcJRZjUHA)BD8!f!Wq11Ifo(gM(c=>9r{hvKlKkE_I?$1${iv6^avFhmEL4sz*Jw zn}q8`a!`+jxY;-h!ZZ`w=pD}+`Fbed<&TdCP+iH=mIQoNZnz_9bwGRNC;#U4_x0Q> zLh*b8yUsit)<1Jf>GXt8zlI(C1t$y}^PT1!LFHPQ(qFj7a)}B}6wQT9x07ti$4C`{ zsL976y~+aPyHrd)m2KMw1wEy@2n)LJ+{QoMnF`RGntq6joS>&CS2+krna;|FF1ge7 z^a!5b^)IAt3nr4AZ7k{W0(@R{g3$&Wl_(Bj;<{+xM_nSVs7($teAa6?hoG+$6G=L$ z--Kzv=Zu7D&u^}5ma`dHZrLtZO-(VqK`xhR-x+fUS(;8YgO-`2qVH~y1Gy5)a#Zvm zm)?5mQ2+6xGhNu}VODao!fA}zaOs<@SfwW;sNraLY`cf6wuUS3YaPTdE>qSn=?lySsJ zM<^{{wMfC`>-!Nz`2Y?%TbM`*QOU`lo6QIh4S-gF$Hvt4;*`WZU)@`-!|jbh;2Hl4 zggNegPk48>K`-w24gQ1|EW|p2<%8Bz{RaC$VFSqqXdC;yo2-11gI?-o=D216M3!fa zR5kbQW7)n(Nk`R4b|zX~?d4|cU|%l>K+3>vo`{0R$Pks%6CwKODeAKc`xxxr-$eGeNv!^r8@A{9!)tdG+ zcDnu`s$e%c^HE|;xH+fPAQn6~xCQ>Bcs}+x_})u;eprL-<&W)unT-QH0vb4XoZzGv zuBN1)qVuuu53l?fqP^#bBOk%nU7HNRZr9E(pZ@eQW4~MeY%e*K!f(!7}sBubU;Gc{Ef?G zeGGI*_&@hTOqlJ!S+U%s+6#VMHvZUn_B6de@GA;N(*&Wesk3YU*s79Dv20h|6$yOe zZ2d(!?r;A zRFJI9e&xkS=4=(rIKi)`{4-PHEQPcL(J|w3=DWuixX<9d@V^hcUJ*vc0pMX(_)%j_1|ztWBncgZy*A40L!(YtA(UhFIxbHfV2DoEf7n93GsO}OM~|Q$weRYX6gWQB}Yh*3T>lHtz3C% zGQMFQ=%KAnz$}B#S6HWih>dJLj8FU%l3inK6pSw%J={|-%^xzQ+gWht&mo2g#ZK_>ygTV}=KC?BQjf<0E_@rIa#|o1os?TEVgc?yYGC>V z+|CS>8v39Y@ZumXXg05vP2CR=Ptc5q#_+^DuC^uRK-XqHzPOB_K75e{!k|jaCM2+= zUxPi=c0C0KxvTf@x`he*n8jVp#Xx zdr8s{i!p$#s$GyuZVTYU*OcHdimPuZlF%FcV1qC}cL#XUqt*BIS)J`9XUVmWTYY+f~sy&U7xk~m+swOcy3Se4f2qA-)woFa8-A~QV};|{)f%Jn((sa&v?5am?91j76$**T$w(SExwE=`Wj0D-5&3HiCbWKK zAwUSd*jf(%Wp1K0`*%z>|MJ?ZbbM#t5cPD)~-R%PVuA&C0dzEBlb7jtiVT_?68A!o>9rv=eZm-NpRogssHsj0z+t&6y9-nw)3 z7M?#?p=URTK?Ful%M>m%dz50ZmUZLIa5le=CxK! zb$raB(C>z9+u&PDgFPNbP5CN6!7oq4FJ&*(-#F$qC!KA;e$(0Bx+$>Y;jbR(n~W8x z<^p>yCGhwExV6-{PvBb@pg6(9XU}GKz#rZReu6oUvScg7oO#te2`Pp`)v}|3MG`lp zSq-FO34I;`SXF|;PUYMqJ5?2W$AldScP`@39LA@g*(dfmPn5iN?e81+S&2Qv^VLu> za-G9@>w?w-cVRO0=(k+f5UZ{Dt{S*-Xc|a|Oad_0sE(A4bgU}_AfBH_v$K{5iP5bP zF@sl1eIb%;@iCeq(l(oXDp1XbEAJ;8$8FnNwE`2Q8cOF z6tjm?hk)~8zdgzDH)vQD*iSZtx0oz8S7JU@ZOcwI=4j4bI=v9{8mgBpKJXO)8)YRx&!@K?}NGv%4C+Q|4ky~ zyz`tBX!6-_o|i0^j6Tz1F|`t2P4(R-U;w;2q1T?gty5uDrtYd~!<=>UAd-K@$U)xuHbV}L~Dyl1B2?MogF*&+cY zvn8X}Ywglrg&XVSuhUo3Unm^2?q1}%DH!p&O7l0_$|TFsL;xd%M~x4 z!|z&OE#ImY#@MtacRf17)p1RK90q~QT=d3PCkk?e`$}fwH7l2$EJ|N)IFW+6=>lVn zM`kcBFUR;AH+@ddsdfQ-7B){Qp{`JLSFDoTlqNfzn$z?H?(~y<#-|L;G{HtqY1k3M^MTnDM<@VD1 zdp@Q+_)p(9OICWzh`LEz5M`REoOPP%T!DAr^c6-!S9g_@rI{x`&VEf^nh({b`rHkw zK40hRvN3CI1HBon+W+5QxOYSA$w~S2(y#YZ+zO3IBDyx)~-}h(@G+`sg!U+wWf7QJk+eV&n`JNZ0J9cH`ityY#L0Z1FTh?nEJ>CPs606|rCe$7#HDJsHZr8z6G0GjDg zjJe$M+!S?^7HldN$Nh_*Y-Ra z`sZFqr8mn;7tJSGayh`UU5%elShCbdY!8vP1X;sr$^tU2usCWKIq`LJu(H&P<%Q02 zGW`yWR_s(gp~?gdepo|YC?UAm0Ip!!=eu3P;JQHIy$Eu`I~l&ddt%`g8Pz67z=ept zSk>R~Mkd*t3QbbNKy`@x36bRJ{iD$HO)H(hi(iiS?$82}{@vhWL$gh{WSOOCU!gCAI&=%2ICy8IV1>NzM|Im%Ql$Arh z`xjK^d-sD~f()9HVgR;mKlyiRKNtD`BksN9noPd9QCD|$ZK$9WX(|dz6%azlMa4o> zQF>7jkQRglLI+m`k+z8RCLkbPY9OJxbRmQuAqglo5J-Rkq2~@#Tz~hy@4uHn&`)?W z&&-)Kr+&{F47Wl@E*z7++&-QClPV`c8L$sN3oLHHcO}Z6kBTZt8Wki<-9b5R#Ka1Zv5C7UZ~_15qR$k{xDL_)Wr2&hy?IxI zx3u}0W1vW7_2regRcz^CZ}w7otC@8AcHfE z$JO`en?f(CnT0L@d%Fu{kFxc_bT?@US__=ipw_kw)p%j8P}izsIH^R%Tu;pQc)Ox( z&!LY%vyoAHt0gTW7PeKM);WyQ_M=TY)NA0om7CwC0~P&~jX0|vALgvT*>Ohp90ICm z;~>#jVP2{D3KL<~C|w@T01o^1YVXDY2i4Ym8Yf!x4)|TV$NZpRE(fR{N?i+z6*-__ z@I^|q06dPHN?d=i91DsD(@fcD0}T#FKQ}N1C>0+twPw(PiC!$T7AMPlxFZXM#ZPL3 zXsZ@ry{Hc+fWtw$4itHBzxW4x(>pec2d_%I^BSE#;JpmyHgEfLYN^0bLjv8<4>10l z6goiJoRw0A@FGym&j610KOHTeVxqvA-pKtS2a4Y1ZWMvmW0k<&q2#u?^BS)&3xqW(j^G!KycX#-%FknDXuL=_hQ0(<0+mWON6rI!}nKQjuSx|q8FDU&3x>z9; zA6AX^c#;+^cISEW4L~9Spyz6{wj*hy&+*&9xP&qFn%XPq-K&+ygah_fyGnO)uk_@& zQu73MS>)>UCe>6RX8= zYDpad&`T%qclqHj%qG{pG(qi5Qr3F=^iK_cF&-F0!J9+@`wLuW2NST73lF$f7N$1k z|K_^Dr#|jrf+&!(NEF^Z*T7NT*mV&0yegb*;j@IUHk1^s2u10C(eavitG5au#sWKX zN3q(JYn5SbnJy0wRKa+oR%E_gbBWk=tlnYU<^G5QgP+o2)075F+^%@HTc9WBGf#Ov zx;@3HR|iZJ)ILqvH5RY_c97Us9RUI&gNl+V(+Jv7d%opEtLnU|V;j`#2@p@2p1NwWUZUNRmnn-eaSOKHe7Em)JhbqyDt#D&{+a*P%3&8lDSe_pG z%Am#kr_o%uFsSK|tb^WO3tMpUrl#wy27`>w-OB*81UzV83 z+m=%A(X7tl(9K5yh;*{mo!1UyrvY~n=OF=WK>?+U9_M?Z= z$B}`XF)7M7v7}H%gaVMAI=#f_M(~-Y&B;28Zslh@I|$& z3veJ;9u~|UR$lqK@KLAqyO3@jplc_3^6*c#4~p<{nMi?DDN2-jPRFW8{caRj<>D-B zpf_v9w_hicXL=aFxL|9(oU}2#9@7|&h$ zH}rn~?UGLmrsd~!cHN%$dXYZMZ>xMgOPa6ifX6p}%iKv2p(R(x_4BCxFkNlLV7IwjFjw;!7`Hh}h6v8NKH%-8VRJR70KF;#OL6oE)o`9b2b32jCM~{_nRfc_$CTRwAXXAQ2CD8E2rXrm?giy z)|;dHT%H*UO;@E-Bd^o*$E;9QtDuh6fwj>CfnCx`t86AzB`K{(448@uD~8_4#1l-K(3l5-d8=}8xFSkyuH_!XLx!L<+gJ1*whEN-x!6pXp17G&hO}wMwK^5pSy;QA9 z7yFpIjzY=1G5&qJnlT>E*m$mdq$8^mK#q|AZKC@ATmb0VJ3d&*mimu_s$D} zZGs=5#^^JpE)o>iZ6g*h!l>)6D{RNs=3`{$i(OXQ zc#~Wqk;9qR39Hn^82mvmHnTx3t6~@aeC<2`SoHjC7k#E4MDe2XUq_gpetgMrk;)J+ zUGw^U4GB!Cqh`Ae?tfS?q~-H&GXNPu<=ADqGeSTs90mr&G!U%gphc@dA1H1h zYV!%8A`;aAw4?t{zVmn`EsGPCwoVYFkg)y$SuN%!+@^Grf2?3cjz-B1t)I*{)(23~ ziGiOzCM6uD;f4YLXQ9N5N~=@rA$(3!V)3WOaClH!W#Q;mu=cK?YsgMHAN_h3BBg~7 z?g8MZWVHZnA>nxv)>9d7Xi}SOxSaTN$ilbR4+#k-;{mUJdM6^{4`uoC+n1^&bu1jH zUP-CrC`E36kRzLx)qy3@+X5<;V|3Em?M)^D9f1{)Ax8%cJM$-z65G)qQ=xh3ugHg1 zAawZ<4M1bK*^Gp_?kr?6egiZxS#Y=YXh|F-8o2#tY$6KzP4xke`i)GFt` z0%%J)ruF%luL#`5GtieMBZeHdAh+S(XiYiAbA3K4c9Y!AiSK!m2Hpcq*VUmv)%rRa3jiZ>r{V#or!@e2n-sYa08Il0?bEqKAW(n> zJ%GGHIn#Yj9`sivy)EO*=ROala?HfyhO2vp;zY9ELXVL7vd`MR$<0u3mDRgn76wol z0L5s(fj&5@9n(3KW&@xWOg%t}&17IdC^gzpu1BaK6%p#yMXLjDnaV}6n@xe{d)qw5 zRVM>pu+6^x=!`#>(eOpgl*hKpQKJDZt>d#E+iiPKWH%|k=gH)Y_USpj*?Kh*3pECg z7nHYfe++B4XAosyL963gJbd1Q);zhB@^eL2LZ-$mFWYnd5Z}fn&1r){f%S~R>R=1T zcmF=B^2X%_g9mEA@&sTa-i5qVs07%ifj$DD&fXSJLG(?_@|{+cnny^F(E`B1Om6m& zxIA4n5ay96Qkkg5l;1ubRj<$?vWyxUDN1tD_@tKViM>da|H*Cqk)Dt1c*Pk1J|dN_ z1x6Wsi3DMT!H`g}i(tkIB3;}|%|SA7dRM`Cn*eAlNQpghz-JCV3CkJNTF<1;9<_~(F%^Uo3HMPS-bv)k9YAomjNAL&gxSKcj zmQ{bpt(v?=bSeX-wi>@o_yD>ZZY&hX9w9y<2r~L`>+;W!`a|ccx#z0SPAUuRoSDsk zmqA6i7YiqfXrhoDCv%J_I|h3RWwCA4sP=wxwMr9$9<+AI(%OhIQ$e=wHnsUNz#kT` zpmSPLiTtUr&UEFFL3#RjWn;PDlJU5MME=e?Kj@HD-23U3FAljrW24HeC?A1O@2%G% z*Vd3Pb{&PyflmGodS;zKX>=$XuPhw=lUOzH0b6C`*C#D5$ZL4Lj>HDwZ1)N<^g(Yx zh20am`Ng|;UqbsJvmm@8pae%xK*kc|9HKh(|ANf)DELET$6LplJnw;=Spu-G@_7o( zu3@la4|smOYzGnmM)Ca{fUcE<;BkoDaAuY804W(nM z#pweQ9X_aeD@g=#-WG-xsqRQLSBe^JpKg0M-a=>coIt#UhCh-3eeJSrbA1+_8Jds& z>RNI5iObqt^~HBjNYbFOCg>*vUo9!8M-HkFw@))UE(cy>MXh_zy@ZM~z1{VJ_QeN-PT z^at(y7;(FJyB}j5x~>YMkZ`i-VF?U{4<1)eK3pw9C(PSAYF0N{;~UF1^4HEPC*#Mx zH(n*@Z*&m6Q(Y7HLK&E9DI{?Tl$oAO;zl)Z?Qm^!+}i((oI-G+Tvsn=w~{{N(@$cF z^nyRe%whRbh=Dmy`-*qiX&oPlVs;fIAhLl+$g&Y5iU!(iF{3O1B5nO1=L?O|3)djC z*ec54LE)!N49Nc+xIe)e&`-uku&|)|s2`*|lJRX=#+Nq~_;@sSR1!YSO)Lc5u0bzR z?*WgAAPpS>Tnt=&@yn^16wP%_3S#9+)VF$dxE{6Il7->XdV23;^Vb_y=q`%bdN0AT zE5DW7^de!A;ECR3)L4(Ijn$YeMZq#J)8+L{w8KWQOenr&JQ^8*bDyzAe5v`Qnee6T zMCfu~t!cFyqr#2wTx@-Su=vXK2-CW2k8+mwB^!AqMvHO_^*O~hrjSJ$fv!^~SEL$_ zHTwXp*)J0;r@p&EolZP4#T&vVXd>3@9I=1!xcv8EkwXRF5pYAZ8<+7)t3`i9$Ahb{ zAbd8W##+>To+Ta$rMNked{~|4WFaE!9XZ@dtFOw{;sYsMwDKykjRAstt(MC0a!E_0 z`)C)EC^3_!{4_~23BUTvG|o_Yy(l?~WpFukb}hESBS9cxURfvM$|}ZCnHJtSLcaCPSavyHQ8K&qsL%8(#tJSTZF%K0oN^RJwR8!=IgDO*NDO>58SLttm@-q!)^pQUVbRzaQF4#temK2_U zG{DDWNRMA0nA2vBwf&M^??%Grvs)$^(lY~dz&?|sC&L-7hKwo6X^L1rb5!7ND(1&o zjNh0k_%`Sg@w-bi0^W6lEl9lK5b~kLLrdL*zsM+GH3_&-wsidk^Pqx*g!Nw}!k)}O ziR|V%uK&5a0F3?qFH!@$dA;N>N@vee6-WcS(9g1~ACq``93|eMH*5Fs(l774dWZuh zqI}_#t+RDWxu>eHc*EDJO;wA7{++5+GruF8~x3(uS@bgXx@afeT z?ZM&=Z>)Y@#p##OAaNaqUj<_O88}$+5XUbQ^YuGI1cD3vA?53rw}P-`fE)j@knLZh zIwTjTN4WJ1J!4)O``OKdG`{Jyeq;vy34eL&|MI@RXC$3ph32;_T&RaX=ybyF#_hDS z5$;{%eREJFfbJw4zubA(6~IE@$;JYvKg(-2pL$fJf((5)g)-eJuh16UdN^M28e};H zi2Th5c7ASe&CT%kuEV zzwFQ+w*Sk{=UDx!rLP_WO+%di*yOeNg%GH~FS2P*nO-vfrjSdn8~~hym$@ru{Gyxp zeE9#|vyG?qc@Y^pG4yz&&+O)Qdj){Eqh&I`V*JbM&kVMPYpxt#`2Jz0@mSkn2QBOn zE$JI{uw@Q^0b)1Q}RtQ z^=R8Rh~D$XZ?D8@8?bBr?3u^IlY71t#pcl36L?#&JPOK!qN!tZommG1h$zj2v2@R3 zGe)I=F2S4L$hy9m82WH6a6}(X%fX$_t4th-f>vNwW`yUa%rzvSY_&c4~COEb+ zMXj~=`*p`W5h#-?YaBkxbCBRfv==ZbUu@(TYIT8cv=Z9aq-cquBC-E`o5(w6Y_3#7 zf{lf6dgm!BM<&^$H>7D1WT>QW0@2Lt7<@3!lk%KHYRIYM&O-jBlhwBuDDQu)ee2gF z=6+oJBCkg*-_8B_p|R(zsWLb&X*#m5HFp{rYskvDHFY58YWU}_m4j8^vdfuhZ&7rNifj&?3Vslj>7&?EF$G7g&j^$5FR&Xc(^S(Xl z@*JpX+n|a8-ZwF;v3xgB(y;s^L}p}coV@oFs5Rp^q4rW^L|l2*cOe#56j20(*Okow zKp6H{V-FSQO1P4jo|jMNSOO;4?cDQY_(y+hwlq}u)c)70>;Dqz?8HH~2n{4{4U5$c= zQ1ZYLc+%Fc;r)Z4(1lE?|4}4+4kdH8T#*OH;27xA0g4QEk~y1`^G%W9LcMxOVioOd zZWjSnq`%=^68PY&P5+K0T^8x4tbOyOH7^Uo)n3EQ{)jn+D#>ow@Z5gWrJlK8Ro0$b zRTbn%{>wsXLp#i)$wOoK(4Cl;YUfjv}&H7DXE&X_C``6`;oc7$aYwkX_-2~kE)Iu|(CIWuS z^(I6kx^@m&eiP-nlicgSs<68!`E^N)_OK$)jLbT^-t*GweqMcG!>d9O&0nWe1A$i6 zSA6^ms@$6hjt($hUmYU;VA22Faklw-84b|f9E<}4jqd-!myX;VTS1BGhvBckg!;S# zmzY3~qfWW%kRsWch?~YpW%D?=!b9K}#jwW?Y-u2)hQQ3=0X!wb1A3?dzhGl2Ne~WJ zJ-uA8W|zIflCDGIuR4IDYAF3`#cayRNNXLE&gumk1>jz&%;;40 zVL}Kw?IIgqv)F$6|7-=xSmM~n@(U~WFzu-Wd1o@p7KxXTx^mvp zKzY6^z~5v&1xKund%~t4LZb79H4%9+?-;*sV0zLIBdE+;CS_F)@+JD)9 z6zK0R;BNo2Rza`<;Xe28v5b9MQ{Qjd+&+D64jUyZNTMwHa--I7d3Xye!(Ks$Jl?Mk zjKH#$emyjM4h(bzTf_pDBV{Tzw z&=BvaQ&01Y+5RF)Q}@#%LU^sQp`%uYW+Cmth@EW0kD1n72bMz&IIxPpZoY5I<`(9< zsvvpa(8?oDJ*@>Wi~rddu0M%-=^z$iT6_*EuPg&RuT=|DuXR=D>^?`Om5YJFjM6&4 zYQ`>mA^+zXYlic~Z6#Vo8Xy>r4rw+%d z@q-s^_D0qpt_wuvVsRw?B52c-0a zFg@?ZJ7zL)Gz>6Yc|xyz%S0O>$^T))B>yBHk_Crb_E(GHBtUIPTK}ImSptslVpo!A zKP^dz+<4=3Ahy5N3nNZDHEcN6OQP3TwHzv*o>sns)AebtAYVI-K`WKDSFBzOJcLrN z@~K)Lso-p#=2q_9lm{jOUZztXV{as5H?3ulaBS|%(-OBvf7ZNvjM$w9+nXC#14rgx zSW)5#uRKAyY%!%19~iry>;ltT^BBvkvmc`@g#yuoXx74LIGajRSD)2XP_LaDn+yH@ z5XwX8Q@asjVZ7A~x1kO=P|KE4P%b}f4#ULc0&jU!l<>%vx2+BPvnpk6NNwJ~yz}Eb z0i~yWWeoJRyL2Qr%w)JgN{#PV1ez3PPIH9=xp zxSENx0o~K}>*N0zn_ir!u9RWQ3;dyrE9W}WCNuwQ3GLa_M7b+dQO8-jaMPlFOhLN8 zT|*&qTrdA|#mB_cTMNG`ZYWhWR@tKVB4QXd_h?kn;_%?^v}P{YlUM`JD^sN!#NaHP zCmVgJ1mDM3a>!F_Le6)#DaUU>52^`8tG!5fv7juB6gt^Dz#|UCc581>Mc=~XCenoL zRGe(s&GovWxN#IFBalee{5e3UqJVCtHfLF%5KN1+I1T@d#IG|O?Jl?Vf-~7uKB#W) za?toXEkOVt&iPtZ`Mu_L>;9VS6QY^XsYeM@5#sBcz zwf*cXfMns3$!_pmDP*Nx@`ysy;eLuRi|q203MbGd+|S`TOy}K$L}-3S&g6^99ZN0u zg}ps5MKZ_|@hwsoP7c04T>1U$Das9>???Lm#;M#yBgvqc$?olUoO~+^H*|CFX&Sen z1i!S68T*rX#qe>yuq!s}Ser+n+^MbS&fG9PKgVza=+5A;!Rd{@kKtv1m%?G!?Y%-m zr;lDgXR4F2ecImtb7&z$EkO;aPstZ&odvhP@7tSv>w}OniGN=S92CNxp9|QyHG%_- z_a%%hsm_8dXAQ8U1gnlFJ+LS0n=&Ai^V{#J9*EDjOfM;;Vg zzJf|TDB_b=4oBizIZ)0~Iu-mp2sBL5;<;)5#lxN|3Fo%H@lQ7!lkx-;ah^)*wPmN5 zos-7aEfl=yAXS%z$X}Dj7$wI=uN7rY7Vk_}Ta!xCVOHqXW_2yg7M}SBrkM78Ar&;j z%o8rt-5qrV0w*84nFzmOXXX_a7V5!QfZiYc)zfj%xf$=OB28WCp28mEXehi^@Kt|z zqej&7d{D*N3U|{evE9Z7j?HEMP_v;@T95Yj%OeY3LMin*Ehc;`?sL(6W?h)o5a^oODZ$S|F+@jm3+5#p5fUg>IZ#2m!sN^p)IgwnwSmx4l)}?{0!dHxn6oqGKYP)^<>M!G^bf_7fh_mtn{l$oAl!bxA zd8gvR%T*p9bEi#vCbp#*`>|g6BI~`#kuLja zSW{^I=;yG;%f-kN99ytUR@e4{xNH&`^}Ba+Faf-l#)}GwFpT1?ALXpN25HQ}e?hp# zaa36KOu2y$JFHu8>oO2cj>{EeF7M?i$;7)Uv2|UyUH22$R?1&my0jWC^rq{&L#5wr zigV#M`5Sa~t#90>2l;jw-*gg$D_X1x$G(s+>UAL`!9_f6|rAS^B}%L z2q$*oX;&)>ctT{+Y*+gm`p^8AmeMI8Y^X1=B`STb{dZpJOKsPf1Y(m9N^42%tZ|oz zh9jFV!Q(hQEpJ#q)6mkduX^%T+9|=?;xjdSo1bg001LDT2WHg67HpDw8qyN2f_z$x z!d=b+>PZRXJmk%n9Or6cTiHS4aZA!o?eMvmvAx7c3Zu-ZK9rh}=z3E9?rv~4nz%Tm(C>h7&j<_GZTO(WMAP;l%?nA3T*Y3swo}< zY(oyb?lS~(-6sQL(D;7LwYg{k9hzo?ZC;s(8i`-j1A})MXIO8uJ-b$)3dE|Z_o2Z( zGopYgmBhbm+a53`^=AKF^6pitSaW;s;N`vj)dO< zhxbfupLq6T<)C(=B0lE1h9pF;7R(bb4 z5cPGa+|>_vYxRT?#9oP#tZp|b14at>{OgEeb;<^6qW5c;<(4}wd6_?u@q~Joli9x**FQEV& ztB!HLv^lJ;qD4ghLhBLl7CFbQC)E!Fg?e)g0oU$`jR*R8#n4~_I#QY_drpcNeg9whlxgp`X(_IrlHbK;hX?vl$9%!yQ0|J zyhWx*U&x`V%2JW-8mBJ@@rDov#BY8WGfs*Yg41Tl)pmRbUxf~Ehmhy2Dy?QHZQ>eo z?pt5taBa~GsRDD;<%;tBbvd%R@wfB@ekVg~V|Nu~%yVDoxveEcv#!*B?_%O;psyYo zj_H0R;z8mMSQRA&s#2d3aVIh-#z2mAsh2a@I~BrQ-r~kNzI*64Uz%-&iw-pai0;y*u~H&vwwjJ@uD(loYa z)W(5o=9UNwT|kzs`_rO#UB0V{Bo)ZGg1Dgs+|beH+hF~)!<67*h3-u;j`B{|E4Pw( z5Do~PS!VD08+q3iDm79;0u|-4!q=fi=WL)(FPu&Vr^uw%^?Kq9(4Ih#^0U-+z>OKw@{Qng2ch8m#Wbn7hEjLE~}AXJSZ+CUioLk!>j zE+7kK2RH+`PVqAG1}}@g9sec(Bm-M8k8IejiXJ()EgJ7h#Thd%wdq|$QVMHAVW3!g zZ*!=>x%6(7;}MM$b@X~l2_Mc%?+R`IxiGQp49zb z6lYyL8h;@Vt;SZ~T)r21gat|5sh;$OuYsE!hFth?co?B=;Mwa)7YR5Ex>)RVWrK;s zc?n&Fp~pbG{blCmcsZ}_q0M`=O=x+P!f)7$usEaAc1-C?_bWzmO2yn_haZ$^@%$>b zwFZrD5j5Eeo%`ZkUqbU%Zx#tNPpHXSvQx12-SWr_%DdGYb04#>xY~*W2iK~bG5Y51 zm#zfzrDFq;%&36X$$zD(I*|vgni@}Gmu=EPPfyF4BB49`cndYR^2>Zv z%S6dXYMLylg~mGb?9iVK53B+5rK8?y896Cf$Am-pyyLvTo8GsZn87@iB&T@tf z*9zgZ*h(+xvZ~L&d)QW}dG!Q#LJ}U{2u#Oq$fvra{xwL6No^TgnTunFCyFe21Xi=5 zFzImVa~#E(*!@NkPS!drk#qC0axG} z5ln2adZig4Pc zq|c|)K6Cee$x-ZAEE;OMMdFWA0;J9Mv>&yOkk?6MU8>KDc?io9+x8Zl4;q8<5?h3d$a3Eid%QzD~!0~Yu_4(Gw zwYh@&MviNc0=E6B9dSTxRjf_4Db+>~@=9i{<%pf$aM*n9-qPQ6TO+M6oiO|&PF+dq zU{FHqLAoAtJTyMJN_dOm&r}A0fFtfo7=C6ASd7`4hfOTK#JBzy?F3IY%m>Z7nU}Bo zoS!2PJR5mBxAM_L;*R{u;5h%0VYj>@MAPMvfEEETIxG3*@3U^D?eEsw$PubXZ`})?Jhm$Sa6gruDn8o#zodtyP`};Zo99eDGF=A`d4^1u;1z#aXZm+{W#Z z(Ed*vQ;*I=DK;9>{y}A#$ND=pcyqX~nDq{G7xQTOa1!5wo%RuSNnVlIda3UNrGXAi ztc*)aHoPNsXn5QRr(a+&NqBC!qK|y&i2oAvTyX-lK5NV52Ikt1qDcP(cvshQE59%1 zBpU*zxn}p5>G?uQx45U1i#M6aD5XsHq+Vc2nJfDBUln$FB?GW`9DdTzU{h+7aHmpa z`LamcLSqVc68LppH=s@)DhFv1{Ie@JES~X)ESuQm@C%qCbx*SlIW`_gaWq&}nC8RA zZVRlxa@XJ5(#zc7U{5(mJy@?!jCqbgL_DalO&h+q_+f|>|nbZ z+D(4I#fDMf$e0K*?7IHUrM*PeF=Z#gCiSCM2D4?^tqN;#T0 z)J*aZ<5Y{lvfhu=zMD7jO>WQNast?ljJ&7fNox;^$}L?qKs?9b9&66=MwG{w7iiVJ z$UE4-#~OSeD>+*iEr08i>K$)$jyRA=y>x6X#ly0mYvI$*M4!o?6lYQ&ZO2SadD5;D zK5||T@&GD0xJ^$as@WB@>ek@KhkQE!m-C&-WWA}O&tJu`|Z8TJ_#yA`0p@om%Jr=&haCs)Qlwp(?#qwkx#Um zZ}BB}PG7iVEM3pZ?GSOlS;MhunOsw2%On{#Y{ACIS-&!_VhG7<_WRL#b7kHjRjhUf z{Jsz2&$4qewkwY`6mYgf_Z2i(0`OdHQF*Ht;HrhL2B7GE}pD)xTBI1Y+9#~yI zOjJdFzCO>i(7i?SaBTqi$Uv!Cd`dHos(f4X5$WmYoo(68sFVv%Nd~Ti>QL#O#>P1* z&^n;bw#SlN2!{pnwm4^e3?;W1Ks>jG`8Fm5KYTNUu6hoeVFE1QIuNulADT^ssoFY8 zXwrDdMan$jxGR{rIb31J-LOrKS#qzEU>dooW3PbJ5BxR83ab!Oi=tJm8&5ko?q@5MoT?RO^)Ok7OKM;Z(Pbor65T$^kX zU0LOLgjk0w>_5~!Vz2Ny*28Zs8p?+x2i~9`sWY?6%y8lex~?QJc(yH8z>J0NMeq=I z&Wmo11t{HT=kA|_(sO9u-q(GIiV3LUWMl&|1^JX}59t|EAIq*G!@Zpq zsc{tq-rLb$VbR=3S>VO1cdZ3hJss(P@(;g*xzCgX{Y&GCaqk4W97lezCr{r~;M1p9 zVlWN`I8LUd_#nba@mc(g-<3vqSR4T;y(pSnL*eJL6CL$7Rs3xh9~DKFB4J$NTs)=ACuFjwMK2wp{T73SELYYgfcqJi;tKyHHQze9dt) zJlP;bUYHLe~xWO!-r!bmK@SU9JGzLOUL%)z_#1cwUFp z%Ny`A7i&JjKggkhAS6Dnw;mFg8y&XTjG161H93o91zudCjt@hO0pUn5u1yzQ@E`8r zO*8)2mGaD^^&PCbb0{mlbm? zr~sVhr|k1f>bm;%C&(QH1oFl7ST|R;CbMv4w*@pBD8*hoJs~uzzlZ^O1GytE&Ud!YR z;+9061pQn^Q2`zSsYIcJZMvqa14{q`ualP~ZPSHeDc^Bv&xBXqDlUR>$x@j5JMCpa zFyuNLouh-Vx8P&-f@+G+$1yq9Kzq116dTe%)wgNBDabrxcQ&KHUf|zXyfl+G*nAPQ zQ6|Pp?BER?P&yu92Om&vbCX}C1;K9Ep_PcU3vhn!q80>R4aO2c)r@*HKLK1Y>05X z%30oQohnU?55rs6?gFlwJ~+${F}m17OuBeM4L~qH9t2Z9uq3zRN4%JBq>4?Lm2Bt< zFGQP57f2&M}$K58br#N zw5W2Uj!<^dY{N|x)Oc=5XyNtmP2npw7yuZyBnPYV_SV~QSh24R+YCf+`u~LFkPxIt zs9|85{*{#rZr(8)=QAatEmClNUni7u9L59lx6e#AG`(V3)d@_sqxC%n-Fo)I-~mo` z_D~rIbBDXIplvCmZe!fH0ngL}y7op(4^hIvL-3NMF4p#E%oU!9zW6%PY%8D_mFsYefb6w$lf$r zu~B$(94zm>hPodVA1j|j)8wJQv>)J>FdIv}`>z6fK;~-Db(`S=kdhNdd0&1U-<9-Q zM_zyeYv;(Zhz%Mf{AP4z+0h3ruD!l}<-tJqp{n#Yf@0Z7|W5^>{eT{ zs*u!@tB@-=8m&kjwjgGH4(yo-Y6j43bZ>n5HwHXHXG8FUOUtJpK{>ph#9BGuGqUJ0 zQL1R}5;|h^bCT;|hsbU?qAM{J0q0znVb1=C4l)poEC}twCo-3IJ`KZ7f z$6mwmO3WW+fpYC?^%lkf#1AlQ4axpnn(}?Lh}f~V_Imp^*=xwr3(qgKsIhwK5!cT< zt|{Q|2E~qTB=T8e6Y8CgrVo4 zz)qr;V1$K6GrzKF|NTKtmgA1pC-258-nE=W$vQYV0Dz3sf+KIdkE3gI4{r zsZ8%tH|gkGM&YM3`#`HMK5BQQb$&x|jcvi#>P&~N4Cd8Yvf#m-TWn>0QN8hJ^>5F_ zj9xfpn6T-r=1=Vxt)g$K5Vg4)u3@xR$y9(Zg zYZZf+ODD}r)r5Am3lIR`|k>uURUTA-y8dI2Eh-*#wexd(0W?&x>osFaLQ2D|m;Y+L-VEPKePo&S!mQ-}R(+%yOm>(k^ftkvHFkc-;32TlvlO7*$>-){{+^QdQ z!vL`I{nrchayB(os(Z=3FzS2ATHdonx4k8`9AlNagsTMCsZTODaYM6eJ)sAG>|4#q zI{T5(+=lK)9K{!@E9PgIv8^a~uxGVX0^T^}|o`S*c3+-xxA z?HldxD0xA}zH3N``euF3`iR2cRvbMQx@mTI`a_)(YcM=JT0&vvXsXTm zr;@55Dx1O=?ifvj5nW1MqU83?V5vw4N%NVC4k%ON+C-As)jmGTl!u zc8r5HBW!43iLo1z9vP2y6^S~^Z|1kMohpfzlK>u`)4)H%WIt*+b6%#R zllP0|I)ONhaYM;iGFeU=Y9+Sd=%txJZ^AJzMXWg8OcU@RS-t`ej>U7{Y;;1mq~r{R zGWV@BaqbPzI9M4X_ari+h36;evPr{1rqD;`DJO7RKwRsUy%RvbjmT%XIhY@?O9g48 zaSi{VnT0%a*&OWa7>|DDv4KxAVzcFR;C@CHflv?e3B=`0Zdijlwnx8kY3W$Fnu z7s{$E&gy!|v4)fvZ2{wQc7H(4Y900OG>w_p-iu8N823=Q03Cb(I9`%nY9$^gP%FI( zb13Uos`z|;%GojQb8%q3&Ktb$N8T-)-8VBM`~1uStCRduSkRG(Hrcv>dl_yhTO{aa zj0*}=hGluEn`)0!mSerohxFveDz0KCTNZOOKFo#pgN&b5nU2ov`l-?9)UPZ!9~Za2 z6dyw+Nmsw6CH#;yXE^d9%nz#A{8a=-DmAk_^ImiNvZGraR_s)bqr~o%7{r;kmk}>j z_d?2zbGb8-!AJcaYQ+t^6`rv30>Qpodl2TK=HJIz@UPgZ6xqK^Mhe238wdC)!v-+_ zQ{UVi;=IFxv&7Yy$5)l);YI03`wH#PKcE$DT%QNF&rrPgSS7ScoD6dyS&H!lXFG^& zoxAz&hs;Y4bZ^gyTCqoB+c8w0Xya5bLXc3&_#47omeAFTl|opjwt<_Pmj29D2|JeX z=LSeVco*hWVWuqONoJ*gTXxA%X;>4+#D>J5=DiI z=uo}Z^?m>k(4U*BDa8ydX#2+$0Q)-7|2@$)sOsY?H*uu1Dm(5m!M?|yNkAnT8Gz^I z09TxR7z^$xv_Hd&Ht{6-D6>nM@W?8y$+Wd&Vnv-;Jfy;+t-Q7|N9kyg`K|`35|@@U zt-9cLsUd5(By~e?n;ZXfezL$z>Xybj5S&uo9yQ-zr&-3yAsj|5^RtCr3s&C3N>hZN zX-L3}_#nK%hC;R5TRjO_kWzN?_8M!SE`BqH2gt2(Iqoezb0)Rw>HP5ecT&E4ZCEOB z;=OU4!HLJQjvodudkeXQdA7}hQoon!@_B|U%BH7nA9%$Dx=tD1WI@U9D>0IO#BS)^ zcwpGkG#P*O->)`a*S0K!%Q+y86ng3f(Bw~S=$Jn%1fj5jANU`X#~UE_tVlqIdd&a3 zpH_!+kT6A0!1~8Aa?X?i;8VJWMdzf;U#^yU89No|`MYy$(fOa-xQi-~^3^-6+!Kl7)al8` zZ#UqRe}`_87o1b4eM!s3<+*9KCF56qBUDQ6O`^o!>$s@IGj|FVAR=~9_+CbAc;Z~m z&HCXhE)fs83a%lc*uq!9;>KgDENZDEmSW~4{$4N39)@BQ4dAddIV&8l@Qfrc7Q`wS&tznPhlW7hQ)6hTeg&YltVjf1TN&*lpUK4Li+}MF{r`klIu*^qx$44&oKu z?^t+wjl934yr3tZb|r8WEbE5`p)~U)bSRNwm1A3$^VVEZF4^8__ zRs}aL$W?ZFKGIoeYRi)5t$hF4b4Xj`M+P!J862ySCFbI#I zM)=wF@taiBoAbB9i?W*_9GL0tnJ7BuBdGvc@xd%YQjqN884n%s%@u0756yQ|Hx2*I z@OC`}b?5JvDD0nDJ zP4&;(GbBrO_OrVd(56ILpxM0IL40RoDwMFUK$N{7e0^9Rn#{k z<@g}w0Geh8JOzA3nBg6eZ3D2HZ%Z;>q*9PpKemHT^{rsPb6#^n)jp5I&-v1@6o|cz zdNlxeXIxNcPUtWNBy5s&?|dC2%7Cb7!PmYQ_foZ33e${zgiCLFiUj7eZDUu5H&wO& zyN~J`bS4KBu)W-P#qf~=R_pp*82~iKhKSftbp%F)+hL-mj<=I1a9#+>c)`X-p_acx z^Ato}9ktvr=ljkVA5Grd{%Hup?RHXvR%uslyhH!i41CVkcFGnr@?u^Y@%iLkOM}$iDL+e=Y zT32C1QfX1u#wG)5T8;1{&Tv5x#UWV0hEZ*sAd-YXUk&uK1@g?AjKApzr8CFbAQT-; ztk^y^6)Id)p+SxBUYw`;syQ)eFe_>sMY;?hY>h<-D@(Oc2Vvk{^|k{<2;YpyvTJ#s zt?IYN=JB_)vBPcxKp9T7=_B(BYoxrdL8c#&EbF0G57x5X-M1F|hye6^mU=QCoCZ(R z^G+bi=7!_#@rO#t(0E!bB;et{8TbghXVX#dK7kOQR&qn$r$eQ}b@s|cUa3;@K536R zapy*VT+(IH`(oRhF^4%7n-;@wqo(L`=TWtLQ#?H4fu{~Vz8An^(nkRhC>vco^cE;r zoz^2pX*{f_k0o)s()U^I$I_}N*QTagJwER782S5^gSOb=^so$3=tYmAzb9#Pg=&Sl zCg=<${nfM1?oFRjYLkqG7&S6hC|!}-*T1q-{U9T7FGzKf62y#*eG;psw3ehX4l5t! zoKLnVuY@40x$Kn0@THpgl3?$i<-QQd{ybFa{RQ*84}R3v5tnUr+2o9gM_EQ5!A7om zOyb*G%ErD=JJ`e}Q~a*%PwA*06f+f~_TNW*s$Y7I;=KI0&<{GKb_JFiz*>;3^k&A0w*`DKmq67SO#66GLWGTEmcD#0vA> zt2gt=GPI_WSzhjP(JJf0sRi<|ZHO_h4cqd&xWlCDYDZcC?dv=~Kuc_KT|R^*3B5=} zHAXja>&HgtYUY!;^-l}oypFPzvp@s}vNmD8KJH%xt*rSZ8}Fw`W5;V71vQ10Ejk_( zQFkPAuFTjHVFp5&73!50w}+O*c%mO#$RWpsm9u*t7H4?4rrUa{$#(JrG@iCnm~D=ts|$wnSfaLb zw!7QqdPPsiT69v`Crb`yiw)|J|D9q!RcPpXVIqRotjVoeGW!HfV}xt6Nv zWXsh=`^={sl(9GIsfK$+ELTbl@RNwo9n=WBY%Y9hn&Cs#E7g+e#Vi_vhg^omfH5md|I0Xb=;S9hKMQBZ7zJ zY?_x2G>`r|Av$tWKJA5U6WXF`pbdWE+YQ&-Jhto9&8kreZw123H!aE&VwO9CD{`nQ zsu!3k;Y`}Yo7A4t9x)-9G#caH`Q%aa#ObEv0x5P>!gXp2$uzXOYQiPB=$ys2JJghR zCXW{N3jWh(ut2z|7+mz#S1Y)MLMd+vUYb+(nZEJutumJWv*A``Pqp+= zF*IGT%pJp^uD?0g|F=zs!H#R2eHshGcK;Xl7qW@zr&AA#a(_(H>#J@=Ti)077s5}= z1ly&C=X{AT+QD?cEY{mIWNn3BBX}^%+OR zk9=Z|SC*RYN9i9(F!EHk9MS9c{3G9~I`ELvg5uqZs~0lkaN|a#Fmq)1R)0NkeYGPa zx0jY;?6pkKU;lY`z2q}sj%AwIgHiJ~(c^CX&&{Ks!lD8{@4?{pcK5{kzgTX6GO*B_ zdgotZn`^B{$~rJl?qjKCHlKu-e^E<09`5k_N3SFX=JN3)H>>jF)3o_ly(5N31JijI zp7Q2xuQ;cyyf9$DQfacWtl_%+WJoz4_$o#)-fWvM_0=CS#a=GLH_U)#t_$>5$o=mGStL$J+;K>8XtrH5>V6|!RI){~)GyS=# ze+pWyNYMw6r@Pc1!EfsPMi?F!u?E}+?jD8@wh|43a9uj7MNy#M_<9hLNte>I>fpE@ zpBgA;w$ER7+p*)929ASu3WG0A=R#V|-K^9*29#6Lxgha{FqFML(1@kIJUWp=%HLF^ zR?wCTmQ2o7=VS<8ZN?l(U3ktlb_;wb3ct>L95l!KFrX%}3H(U}ggUg|UFRgKA;ofz z6J^AnSKq!>S^v|`tl2OD7+5P_l~mq3=lGF24cdVBIztT1Gh@_0oY4GrqTbD9OAurg z>CAr};Z3++HD~AeJ`L$9%YD3|?Dsj_xh83#dp9XOKY-mVYWE{@1w8ny;fm||HMXCiSMZXH+swkIlriW>a=0r#4-BW9a zkin^|zkkeI>TMg$OJJQ}YHh12PvA$*j1OrU-MY?S?=7@ZpVdUya;7b3>$A2zTV6kn zDjNH!<4%t*nzsw6R-Nar8O>@cXPWp6t-r-kP}x~Xyez#>ym2G(JDvHU8uf$yB}CSh zT-QC5J}}8VWGhq*UFE8WI5WnL&-3iRO4hEW@B2M+4zts^ zl6(|@f`9N$d4xGR$_m4Y4x9!txv8%?`Ok>7j&38yp75v`OV(?=;ej0sBg})V8zWv5 zjWg3Hq=A;ucX!BhjybjFqkYA8Rv4)%;iM~`-uRyVL6OY)eqc>e+1n}R-LD1vH3D1{ z+P18e$@=*TLzkIZzc#o6Y4nISw@Bpr?=L|2rI6Eu5LUxg^Uz9Z4Tqj zHCxdj03L-kRm;^dli74U#f%FG3aFvzPrS+%q_xZF*qS2M^LsV{uWH>POpS3D`FKYX z3`DOkg1D+eLOT5sSl!_HUaj8i_*#JX%{-`u7s84lr^olO#<}~7OW-o7eoRzY;Bhjt zLh%5*hUb7B5AK$#xctO{jXD2K_{KP{XQl}j_ilIH4OUhUzhQXkS4y{_-U*#Fw7xR1 z^c=$!xECnNjjJO9S8_emeEaPCJ&!ARWF(`yY=+!+f`7k-I!>5!wkxRv+GuyUG{ z$PALtW~~ge_8PF|K|RzeTK!Z{&IMNvn6Bj$1&ZuQTJ0rc#k}3CYRL6O-h{hXo^(f7 zLB#6!Y;D@Uzw5k}g|4PQNR6`ObkcC_Uv?oL$s=dL&GPv=5q)XmoCx#!bcY297ZT#L z*2h9QJ*X@Sn0;#6RFo6ASs~4%j6+`@XPFGUf%@=TKnLuS-9BZCN5mIj4V3&6;bwUX z-2XhxbVE}0rhM?sx$FUO7fGmej}R`TcC?jlf840Tw|Hw;T&lxq0feHnJE5Mygw=+V(GhqLDNsq*y**Wk5 zZbzeikWc%=js<(0IN!gJdlF}XtN<>miK7Av#_&9?J%iH*^WP6HHoo=;-9aoD$3AtP z=&>mn$jlDISFDk)DNI7(_78*?S`O5A=DT49Dq{O!HTVq5Ro#2$mk|c{upRfqy1|;T z(r!qx+VWLF>RY{g+GQOXI2oz{^^&Y(Xh^$~Z#wo+7jHPWA_;RnF+Z;#Jaz%q%JG)8 zO26ObRN>4yO-r*VmW!Otb~eTPicz24{)W@+l+SHPiMh3@aDpk*%aNXnMJ^xKj!p5ViP* zk|B9~37>`AuuJ`PbcH*as~MnRk_TU-3$~DAVvH0hqC&0fLt$&l(w2B&H-@fh+(=CG zNc-Q-j2g?-1I?CvZMR*jHlFA#esnszxKU)Xys=Mu)CCC}I2%iPtSJm2=}PF_e5EW# zC>}RTV3dBPI+~@q4_bRT57OaE>xuIp)B|@A)6blfx3)$uR!%PQ+)J*~+dJgQ3PDr& z1=6FMny75zzWi`_y(+uImCcYbOL|E0#7N$!J?dV#GGEV#v^R+KuUVgljI#127z|YC zdoWCx%j*Tze?pH7oqPDdSgtsK_hu|8`1j|B*LF_Gj1-j8g>~usvJ!hj$Th@zGyZtE zyUK2&liR7G4{}N3dIRHGo1&$2hw0ACiP9E6FH}`du>~O5B!zPy4k*CtpWvm>w^_dc zU~w@rai**7^Z~!5Ow)ng^`gEIk9>8%WCVnU{yeYcK|T~%SZ@+c_|vM2nV#)zfgjq8 zHU|$`-4EsZ*@#Hum2B4K?h5Pf3ST{tpmQHQKd)1jqq1s9=sZAC}+PNqln z#M9351vG+lQiy6uID|L>3?q4K!vhx{{j&oFCleGBm10>E>SviaR9X72QAszDtpXzP zxH)x-Ul^{Ox=8`H6U` zS?q7|gWCMVn+?#~Rahff`Y6iYiKeux1TA5R0b966-V3^Wh+!HC(wN1k9Z=ymdP>jtJ7q)rzpTU zvp;S{zA`6!WC*#LTO=F8#VHHxr)wb|b0>sg23ZXWL41 z@A(hfb6kH1Pr}riM7QJu9|QOUtH(djEGJM)6}s)GL)Io)oB7|)Dxa zC2#4Ul8@G+MQdM~3{+H-Cddzw`{ zf^q1PO9jR_U$(_V5c0;Hn>Z-?V68ql^4^MOpjTdJy}bEuSQ(Z?_s|M zvlGj1-z_fb-~@bXrO!&6-|nSgq)8+B^~zlh{636>fjP1c97OegPI7hsBAr55LJy`{ z?V7nvOCvcqF!dK8T$7y{`zaVcFo-_p`}#UE2?oIzs+g|LBy16p`Aagx=Knz?-L)j6d!eY=HXwhF?*) zI7*z>d;TESO%#jH`JTN?ZQO=nl&RyN{5nNq7VZSB@r6WJwz?RobhOX%g|?!`~&& z+TTBNymM{U@Uxln!{u9{KmV+~fq+yO+lZU?H%HTSiaEnuuft<roEa_zuP33_EeDTxMo@^jvjj!^^T>p#DPw zNqt1LRvBWCGJQ8$T=`{~LBQ~rWq5~l+d7K3^zMd8t1!U%j8Uj>PxIazJUw#u@~V0o z=P%Y;omEwzC2WpAjr>eYbkObojV#B}jqF6!>5H!vHo~7n3IeV_Ox>^B?65pAz4WH9 zn_F1#RTCIJp-3pegb6K7q6KN~nTb-Z6Z?JWnm%i$Gr1Y|+Hu(Ke!cI~Oau?ZqI$_? zFG<^+1AtnOr!QPap4;VGxGU<7d|fB#t3!HgXn|O7OqUGmYvMrJ(BHE-eH3`0blee+ zyzdqpLYbtfp@3df=)zY2o@qI{ zA+_crn1HUFd@Zq$G{FYD)E5~UF;m8w!P;2a)R18gI3JQ*`J-wfJ=adHX+(@KnFgNs z=^rN~>0B@o-@a*-FMZY{XBT_hp7(AKx&j8lyV~?~yD4(Q=fwW??;LtlZY$5+y`&(3v$^&J3~`{kynq1~e!L*pynZuOc=0W&PS z6Xmj$eftDy>#IGv#L-%ltwCAYPeL=Ey$euTeiDf5&BmMY?W>A$8{xl!HLQ=2R$Vlu{!~ z-Wg*+Zd3OKaI%{8DmA)UwHB~i9V(W$bBJe$ieJ2LSzYPLEvE0-Ria>^N%W1wONNzq%&RFeATR*V z=CX(ThsV&1q)zAsWZ|Jm?6Wh~kJTm=DZj1v(iOK-k37TpnK^hJuLzAr&N*8VPuLJlslK_|0eEK^{_XH*eXvI?Y z)D9ZbN0p4o9JTSlgY6zkrtvYmUZW;FwRer;YGJrWR+8$I+=gAJH3 z7BN{?A}(Cpzqcl}+;=7EX-Bs=k5pHwG4)&%&kC~>o`Z33!L^pMYAw3xyU!V*T921w z?3vum{V*pv|Esj0q_uOiYHk01NRy6!q=`p|zeY%cWIB&{kPYDOoF8^&4t*Tfo3FSkR&2~S*`P?2|LRw8HtoJk)Oy4lQ&!Ip*k8%)?y(?IY2_oZ zfP=9xrY}{ebaD^nwiT$AlOAqyOmnYf7>gUNJ9`*GGYYX6Wczh&Hez?^(0*f-#3C9#F*#;W!Y2^*K>Dpm&%spO#o(x8Eq zbz=qr&a48?2l3fL4{dD_T?Bz5bNbWx)zz_(oY##V!Zl#nEIQ8fIF_I`El%*D+DrIc zD8=#rmf~nOYnIuT6fgGL_nCX2QChnq&5rfn+}?g?i*T2rVG7!YPDRvy(;pXb<2roh z_o#B#d)m@%(3Fd>5YVbe-c>E-~Ah%ST_i{>!a(nSY(_ zF)i`FKmQrgV$QV~o^AzK56$OxLTF)fwljKitEvK8AjzG;g($ z0(~*1T*XsptbSgq^kV*GR~bdGW!GS2sp>}7jOBCtkpBB76&7-p@s49@oLb#*R4gC+ zJu0_pU(*BXhEpC;5=*CQG%mZ*s-K{FDRxntZc0AV&3V!Tl~zXi4Ms0PuvZaKYrhYzm_{iqt4)VJD`zU!iUBWGpThO_*I?y?e zk8cThCk2A0M+t~gV}*og#XaYgR&QA#<(mqV)>%0@Tbu1;gaNt;kZjtY8m#Zxf2BjW zdtt+n7tl-2{n1qouYPP?mp-M)-m&%N77T*@&8SgV#%SOVlqqT$oJFUogyV@>AtgHR z=Oku}F5UH&$2SCj4%V%R3vJ*1jN);k8f3E)H;HR|cD#kIQJ*easa&$jx;hlyB)kpU$)qgrqdU*2G86phEfe?XG|I(`k3W|Ls zgfTK9*EffXxX!k+al5*1B6^a01dE%my@!SF2X^7a0&T!0yu=)X@ON>+(#Aef93C)8 z3}_xQ;qZc>!L5g}6NoY&Bi^tOhfvzXWEKTjT{-~6K$U)G&^xHYbY|pYdohuDYof+o znyr`EbKaet@)`;MnE{lz#gCZk%ofRm*{;j)aI8(-FBtQ zwlc~4B?lXt=Y{e!Bl#C6r)H;bEoYmH6az*bS+}mhd3~OjQi-RQ>gJAS#*#{BSRYv< zvHeL9y|hGrKut*{Sb=Klm!A~|M~9Z?pvOA|@0(gqm5Vv@jL{PL@?nyKYS!|_tC1IY zdSka#9&`EN`i4O+9VRofBzdVoS=J3a3g6jEG*d80Jnk3*-Nzkq5?NEUYK}=T(r0on<%m0?bqW<{=>DCB*PQXNQscC!?R`n} zXjrLANEsmEH0Xs6W)mgRC+KNo32Ssqwmcj*n5C`M-Q0EqhC8bO4{6Z3N)a?L3noEP z>#to@o0x8lNnjck7*Kqed0rnT<fVI<>h4)3nEDr8uN%~$4$_b!XaaSnR;S(1s+ zK1mPXRU2-l(@XY#lXwKrdcW6FAEGHxeV=sX)59lfrWXm=AmV<~BVR2IKLb=${liSS zWiKh~g`PU79UG)z16$X>Jvh>6r_iJMJZfBkwUv36QmdHltn|nNtZ|jb8kcYmIV<6U zv;KxfEWL#i-&t!i48)-isI^xztgT7N>gWsUqs-9$n$7T^{G^;yX{IQ@M26LI_iw#u zFELrCz1+M@O)8@U%$-ArbngcYv-}$zqNIW<$si2aw0f-k5EpjKE%|h+mmu<(SJ&r! z%Y0j2$V=VG`-)ZkfJ@LXXd58T@kpemEiD<+xfz+*A<7p7ZOe05HM2{elGs3mH=T9% zAd{h?u=#9lx1f}H!Vk)K>nXgmKy9q75NEnN)CDeNo@7#lhtp~L+rcCVm-4ONHqp+$ zD|jAuTs)hEQ14}rjp^W>*Js98J^2zgs9;Pkh}b&@Vsos`>P=65m?$ zdP$`UnQ1WYi`;P0{`h+V1V|G#za$W8eV4;QC)nNvRAbtzfpavQ_4;P-@J%bCX!B<5 z4S?Qz;2$Q7t2zz|bX30S1VAYsT^<$sdss@#B>m2<0$9|#sFDSlu-He?bfwm+_ZIrW zRNbk#FDbw2=^f}qH7p_G;zg|}%sVn;{uaA^4N|8K3|&At5_Wk5SN*xQ24V#ZzxnEf zZlWsQl3e!T8aqR0M%+&CjY&DV4ThaW6}+=?@l0RMc#Zw2pB#!uDm3s?5)WB%bW(L+ z&^oN(;9mM;Vj^${`(2!uL(J8v_}^r#-hjJeIQ=n1m#7jzmo5;ZY0(>ZDAyLBtKvb3 zleRf?q-$_UUlg#sPlC(q0Xk_K`frS_1|E@+uNANn7kLjmUeT1-WGsul06A-tj!y^A z(qpd7%9UeDcXR?8pvQ@UI<2$&Z=Lq-(Ty`%md81u-vt_hor_XXg95bu+s*ED=BmTY zSamA~KCNp&wz3mt48MBDry+CXD;q`=v4(w<2c-YM%l#Bh=Xr} zXKr*O0!^}h2audf9kD8BXe?S7dUaXwI2JLMU88l-Wqi+m7z>XnrmQz}WrOT4tSUwB zUq^~c=_t6}-%@!==aoaxVJKE-c_4Vq4{M4Gmhca?-4(ZM1p^mP-FkRyCB1QIx3R5U z|l{Jl#kD;F7 zr6|La%dVkWJoz_rMJ$$@S`%ZLQPdx=g@}p5JB~kJ-{ zn#JmmZM4#3(px!3np%y_)eO-;Z;Ev8=wwiVlPYRp#9^Ox-sEpN+69zk?rXTJ5R<5QMH?N1G=x~o>Kb;$_Zt)`rg3N8-Y_@?u3tC7*I ztN)!>GKdGk+zyBhE*2vX)JoVar+dAas#StY-e14KvAu_ABc1v2YT1tW<8? zg}zI}H$?HG)S8WqTMw!q9>OPQHaA>f4U5AfIC`e!>)0M7l7{)&b~JB$GM#~G$uAm( zczU#u%{uKi>^gUURho||!=8=^vub`qZ6NO>_Gh!Y64LY}GJ#^8^M2C)spgi}xzf}?vD((WrP*41?4q-qk#!Ux9CM2qTa|fL;A-293%rR z5x7?e7dRn5@8Mq=r8P+Mc76ryi}(klyI)xaoKAnByQ`WSJ^pA255Ck#X_FPZB9`h)9I4dL>xmAs?+rI&vE`adt1CAT zuf^8VOUpH_FAzrqct21M$&Kr(;qL|jWz@Pn8&Sr)aNZ!3UZugJD`z`z0mIwWgD^=v z4)ku^ibj6+`2N#>x?Kl5C|4MH zZf%V-rZwjZxz!&x_T_&|0@LG%YVz-xsdxXVu6v;K*GD&l^1mgQn=}U96;(9q#F7^u z{qxNts;}4gQ85tloZ%VA*UE(foy*}P>ejgy+)vav`(CM0yJKZDf zW+{9S0yqVC1@t97I44KZCnqpU3n01ipxNvaWIy#zar|IHx*6A(PE1R*qvJpXtTmhY4foxm;z=x%kO96Pv5gxAKoF`6x(Nc~c z78&jWR4yyBK}X;=?mbo^J021Qi)jEKeUcP-x8a=z-Vk!jL?A#So@VNfqo;8h$;*Nr zKfo%Ul=GQd>z^eDZuz-LjKvgF%{7Uxgi1Tm%MJ+>(2G-V{99ruQ<*>AxK@hFeU0?& zRn5g^7@^$*aKn-&?2DlPJ8FlPN5ZwDoTA|*p{<84b;K{)m7!fSoI*=yyKL|=RZ{ne~SBHcoBl@8XI2b7Hlc1(tMw0JI_MAUMJf5MwbQ1AsUAm)*=;m$YtdJ1j8h7 z0c>eSu|wn2Z{bd3ImxZ6iH=-QcZ3*j*GzNr-E30hQIJ?rLRQavwcN61z63s`jb;J&DrL>SeFOPbcS@3 zgl3~0Z^~p~77YTU)-4*|C*#J0gEt8+(`UWcO=ssPT$;rALZ%=$-fo`yMBSek;<9m^ zl4U9co@9v-(!M^)REzGvOPS@z$0#jd)w(D9+f( zc<8%4mbRo)1S&-pn^FqRmGgz5ZBlY=kOv5+FmBZL1=-Ju$HBN zE7ku^I^w|#dAx2QPcaTTg94;*L8XF1W*B^>(HAC#Uv4^8-b` zxiVz*obW#QS%Nd)4#%Qz-{BDK$40-vRHuhk`L5mfQ4n>U2n z+;YFPs$&N>+-98ZF9OaKj_v0wP$%0#eZbtjKC!_mcdVy`moDi|2nkqITV!{!oSdG? z?4x1$7YNs?y1`q=bq(?Lc@-W#ck=W*zfChKYO0ZSug+$1&UI7cTJ+@W2N6x(pKjPP z`>%D8CrSTyRuTXTDY-r&lH*xXzdo(7_#J8CC+3l zkriTKS}y&9I5Rt17JcEkVUcslG`t69WcMffcytvh{}6s!NrZFy9;#5zJX>7YbkFw) zkhpFIrOu6iO%yffPAy0XeO0_H72P+T^M@+%Balb@9(HYL=k4=`u}0S$qz>@g2R2w3 zv!Ci7NFx1|qucFy0sgUMpS;nE4Ab*gmvL)V9g?S&lW= zUzw4=^RkmEH7TCCR+i2Brs~)-j{qtUJGW#v2NOv!T9L^)Bf4x3Q0vCdUf+pRzYH!9 zEg^C-0zSjV=<$_fv(MFnoQpN53>#L{MBLw|sJa%Jlv69@nOtj2BknQCZ21UUzVF#3 zK;lZ`dFpKX#O)DLL8&ry`5LPP2F7(_{1QMh9u*=7yqY!_fzy$ zTTZb9D>`K<8a{gMhWM@(0@i);7T49ax4|VULdrV5=YTnK6Dp8XoPXNa^5v=%c+moY z_QpIb9UZhE+=#6`MYhvtR^C9{%~rK2$DP*=#A^AM`-KNb1b5))pUp5xuszNxc!#X} zDcGDg)KC9!A&#%xq(0@hrugJYw$hvX3=QMaY-h_! zQB>&|_?!&N8nRi3VA_CWnvScX>kZ)nm-CbUb!>@YrGSgdG{PRBzknrTax-1e?ZKw> z2L%uLwId!&S6WjH3~$;Z9$17z=8Przc5Ps;LB?=Ay|4l`y=bBIg;zL@JSV$pE>@Qilr>m zAb>l37JMDs_Rs~f%YjL*%A-O4z8j7U0vA=+Bss!ybWC4_ivmlvfBUZtNJ-wZ+YAl<@Zurl@IoSOLxf2F857#AnUU|j90f1xyzHOV z4art?!pPukTu%uUmAu^+A@i=R=*dEZDt+v>PVxRhD$|oScWhQ%Kb4Iu8l7mIe+^1t zl&c!t%iqzJ>5gbZ>`Ehu;B!mSJ61%`ApQL8p7zwl;Z+zV|tQ zxn9a)q&{T!Dm53Bxs;rlf1fZ@hOh-0ZtMM;OQOr(pR2=00KBotY^Ze|E;oT?RIrt> z$|Urj-yp=eX%(CHM6f$%y1AOnfFkHwV{PojF|!=KQyrMUL(grN!(D7Yr&nGWfPpcx zC;)W^vTRCByIyb^n4Ezt0Nh#$(IcY8H=Nk_bGhGkn*zwDO1^Q)^4Z#cxu>V|1HWfG zxqvbTG+wWKty8{L|uy5!8R4iy$mg?*3^tOWlA*0p-oa|Xwfd{{D46E2k!P|$9LB3_f@K+i*`<}$;QXR`N=ajFNXljz7F_h14FyYx znOvG5KYfi{56c!|yZS87q9jEFA2I)74L!vL`S69hL=hI7s;3~!QX^Zty7u36H-KG- z23qehCBJTG&vkUmQaX)e>^2=|oE?6Ei_c2P8nJu8unKj-T)vO>5PW#UDQ?InA_306 z5sU!cI6-_RDnaV^^q$(L9AZ>`_iYZ%YG1eaTZzG?3<fs|`Yq5tko1@|4> z)8U17|3&(%qBzUL|0$p5Ba0p)ZBAkq5X8;8L1hLvF8m3-BhVk613napc#>{^wGPIq zu2!sNowa`h7l#t&DPfwZ=dzFpMl`}kMAOm_q=L?>$f0h zf)7D*hGyi)yD5hh1!=OB*JMGY1(I%%gbztS8j5#Z57lKl6FXpyX#?uXVpv8d9rrwv ztGRHJSw9@^6=FTSaC+n4m+E4%(Qh=k1Wl{YZ?lp-koam|S?K()-VyDiNwa2T4;q6X zOBn5YyDw~=uzv{ng#v!Iw(;8d~p=qk^*avOJry!&j6M$RscDGW?`|T5{ypI10ZcWxMJqyz8 zzsQek8mqx8r6QkJn2H;Qv2qt2wXP~l@*<7yk}6^O6U33M1)iQo##*)RpAUiu-lu6o z`WM1^YF7V1lGdWD8W&PZ-)Jf)oOAng6c_B5{5v6=xU`HgSA1^^`0v7Y_QP-fH*%&> z85(u(Dww_7*?6Kga3ZzVE+Ky@(81KeH>XU{08zy?=deEME6!dhF|Isy(mCqrgkJ-s z>3O5tW_>q>s*27B-IDns56 zpP7*z{*@gQ6Mm*EQA@*rJ_OtIrvDq_F()f@LaYiI56il6Z5>qNe%%ZiFsU?lgH2RoSnIx(o=6QVK4RNoBGH~dqY>Hg4b*__3-HU7wcy3-LdPn zS3$)K_-@2ObDPsGHFJn&05dWoZZwwLal4MW3g$Vu(`Wq9T7 zwO$^s9rFU5yQWI4sm2ipUdjX*X6oC7@S=uZ?tt^^$Rp$~vPHeyv+LO_gASoMdB3F1 z$O09=%{trATGhKc3l$e&K$7{7_!{~w=j$*xHj3Ug5f~WvNp*Y|vt1nqs0}?)E&xYh zRLB*WCd3flSQxSbey^hm1n+4Bf2=gvZTX@^Q%4l1=T2LioDa%m#b*`6%PiENlgL5x zPC@=Kq0Ynx`|uu?WC(fWiMW}++afYX3+tUfDALIwJ6!kvwmyT|Y1IcoCxd-LTfnma zcaX?YP*C%6Lcf* zlHWCl1-ec!4!~CIO(_Rt{>Gp|c_FZF!o^o9Qz0Kyfc*@=WZS$J!bM$&)$8C3I&gm{ zo5YMQG1ad?4s0Zq!9yn(ANy=Q`|qd@4SfW&CuV`dk2PKIHplMG)w%=go{YVfKqo#HEF-iH{=ALIb{72jKP$?jGNo`m7pxSmK=i6MdB+sjH{vJ- z$AW1;Xb7Pt5RA^w=d<4D^5wS5?R()btlQNJlQ!W zxWlN{^M#&-w$av95yw7E#olCy(-Pp-^wt-ZjET#O*PrjM>n0rNxA ztt(Dzt_zID)!p(*o&JG>aT>Th3yB6UfJj>KmY~c$ocGrZQ+%(_9u{HfK;3`{Y4Xk> zv@pcazrPH3gX<=uX0yV?vrA9D&M}ox+dV>>smNFk`@wB=OL5#Ky@J^2;OFd6sJy!r z57Xo1T$089$}Q*WQVPGNY~t8i+n7G=SmXFdcUAKLsR|AVD?Xp<}3PT$XCs$gw zv&RZz{h&%!2=ac+%%lFx{Ra;2A%|bW+SvMZeF}`pW@WFDVnngn7o_|`jRo-*@#n?S zh#?STn7M0U%%N(LacLe4`U3}>&cmhyE`VrC;Q1UkV2aQD7PEs9YmtksrSG z@n*#5yw`+*(#{%ca`WhEhWst!&fz)z7TxuMix$TZ&4-d|LUOD^S!3Yt!8UJNnezn{ z@ck)Ie<8chpXbHm|Kq&c0pN2GRhK%c3MPNT@q`7-@OObOLk!F#uCWq<&1f=3`Kw0n z(%vGNH>s!1M=wF}{1&8U8v-SHHnjP1VnYr~q9`#)jl5_ylG-Xko!D~{prD}p#Rg7M7~9oIta_~B?$WE^%;k<**{HPH0$Q3o5Y zh5LTGAzv;EbJx?y@bpx|O6rgQxgm4nA#295FHt6acO)C}w{*ES$a&7smmE{y0)BqJ zb5@sV-0)p#*ISWHIx2V5bY}e$fZ{`gcICw}7mmwhIX51H0TF{Lkfg(LD8r#z#!V%{Mu~_XOSZk6lvGz6PPQ10@Esbxq+d|wpEU%9AjkfGc za6py`s^mCG@%U6RkC~Il?thQT9Iqk}qVv`1x z>w##f__kZUmu#X1D9E=_C9iHIhzxH0h)rE!l=?dVEfPFslvaw8#sx9tnj+C3$ZNtX zhdUbd04dUjefp@%(Z|j=c=H%LOlq<1^Am<>Gs9pQDM82nY{ufOI*6{j&^&ttWl)~% zYr*r$=3?_nqBvMD@broc}WvI%k7TjNqzFhY=9UW&C6sK@$_> zBCL(so7!wxc`EwHDFbC$(=K|#`j&m<#)D-8fzwD7-j{k$Oqdvu<{Jio-TTP^YPhAL zaDqQRdjgaq<@%J8sE_w*lhUJNBp{(iAj@Ko^+@$j*M7=x7KXA}22ItQGUK|@;ggYj zI0D4v4Vc3wy7rg`W_q_nYlSqJP~Nw^SroZ>KIQ5W*Zdv9vclGU!?Ioz!VttQSg$r0 zJ}fterV#HtUJ$7nsF`IV7#xWBZ=Kuisbv!eEAL}bI(KGMfM#%rI)3_kKvlx~@K2v- z$Yq&!@-D#H9}Vc>z{aBp#y;@=JYc26JmEKLm;bD)5Co9VyPJBk)&PXyxkxs{ib?joF zPXTU;`T38v6oR^GHmej?3JuD!U>95nGJ*3!wNp?Xm zVEm;XvJ`@2F(X#%42`Fpfzyyua0YR3Jg~UXb-x{h7_@p7@fg&Fc$M zsFSS9)>IpbcAP7!qX9@`NIE|9WbMF&GORzS6fozx9onEkpbBWM>>=uJngUF4&rbsS z*%U@;qeF(tS6|uMG9Nv>JH2I87z&#m*)z@A&;PQg7g2f;mC!1zd)t}t8fX%mF-^8M z-uOo?<1e^vsrc@Q&t5%zvB}b>x<0qiIR=1zGW5b3Ns)jyBVywfWs#~`vR)3Y`uY-D ztH`Zk=}!BL5r);5g$)v6l7fC<#u!Bta_l>$X8pjLK72$p&W%}l!sr%C>d1~4QWrsi zOiDmwGBU&ybzKNF6ZQU6@IpTtRCHFUg%KRK6b{k+9P)q$hx1wh)>vB;I_RSEnrbHA zz|pv9C+)o#4CdFPJrY1~Ts2;^nz-I;m7HhGtm$`S;v=x1M78qQ6F2>`?76( zAc(l;5Y9Gglhv2>+e5{g(ikxM@Qb7kP3VxG$GXI%jO?o&1Vk@oC;Kp8g^Cy^2W~^J zB^u+a_~@O@Wm3a)a6P8oZ*4z`XN`X7=j|LSF|{osDpG3N7WboCvfQQE{@+2ooxTck zArHsXn|uH~xfPES7uIe15-g^~v{ph z1X+1=9x$A?-A$Oll^k(z2LTw0!@&H!yR`3H%+jt15R)O~vk@P5fAQ=gf_bD<0x5@^ z92_-O)&4=0?eHjb;WYGei#FMB6;b_7t1FeQOq=7Vpje7j8 z$DE6BmRKA9c?v3oMo&m`rWb8=ZdMhoWiY#@TlBcYw~3*IP@HTM@;5VN03!rj`kWI6 zFU&qj>`v^Kn4u&1t2Hujukr&eYV#6?D(4Sxx?q!_c4h7H1oQy)#5dH|sq1KIO!+Ql zHGG#H2yT46?_)9Hn>s_E@{tN#DT=j;{yzmJzi0j03KaGw3APVG>D))7+uSRZi&Fz# ztnM@Te_w9^RnXeYeZ}!YtMmST+6F=;OIk!kxHEM!su4D&8ZXy3)**ph`F~+AKFtOnNlieV+=h4}^^dgce0i$SYhyHC5Vj&nJ>H^utGgzV1wvK-=tRnNWPDWa!zQ%4K_%ElPYzzFi-R+Nq)h$j!@V!?HUO|mbtF&fx7$5$k|K0%Z68yxwAW%t^axd zmzNevgwFN-uwN#jy*tC|q<~(qUJIJW{{w>iz*WPjc^qR9$ggok4rNt=!zG7FMHbc{ zN{IiSJ!$P3woJ;&sHn1y#-6`UY0M$6cvqQ6G=gOm&?g%?N~53+(fv(ADun>Hd8_C_ zbMikPwAs1AlPnJ|^98jzB)P7!#yH&H6B2btev)FxE~q&qYnvgvRe$4=mhMpOLUNzto9j^*vY)g-|nU-*y_2H!CvRnI?Wt#VB# ztG-0Ahs(F+Y#%yruT?&(WzrPGz7c#zq+!`50cDEEz+N|+GylYFSPNn{(vvD&tre;? z`AJinXdjeXlWRoN)`gh^4X4SzBu%jH15^GVFx*HLny^G6QB%{O*I)fB%vPOY{I+65 zmL1aSFdk9id#2}WRIeAE@Nv@Bbzsp}QU~y;r$B=VjFuk#WQ4PvUe@yX8{pU3Jwuli zqs8g~ldC#B!(fIAmU@`Mf)8H`33EK3T9vUv%ofabd~CTJD{28$-K)UR%{^>y zm1u6aygpIQ4qY7b=*PER2V`&^Iv#qcOzr@Ct!IrzfXj+((e@C5Z(;Dq7Y(`nDtLfR zZ#w8l#+1Nth*>|%4Psc6t~?RKaS zmM0ajSkQy8*@xK;VH^Om*-+x}wD(m!Ut&X5CT?D#Ke9PTv!xr6?|mL{%4ri60ha8{Hw*D0Q$~4usjge%%C^f6myezpnO8Z2Psmhclen@qMN1IJ%YDwyUB(;~ z7P3CJ9LvCW+&lCRP|vV&Rws2;+<{lVYq~)G^as*H&7_F8MLLCDi!aiWT$b+@2$ohd>siptx<8f@u z!ev9r8XML;^!gsV*wo}VCP^reTV9oHIylOy8Mg<9c4yZ{GzjA^^t`}Z;=<2Tr%dSz z`pJ^n_K)gG8);D$tH3(!aJX^s=Bgo79UKW36O7~?Rz=_a_H=cULQ(zuBrwR8{8wZ0 zV1eE*ikP+Hveag*H`WOuB){-oO8yH>ZH{@o=b*ZozwRlw<1+jmSW>KhK6HGKg95eK ztFpYGbLBv_E2RQPP^rkk^4QCIb7^6LW%ebZ;QhY*?L9OVqK9oI=OK|>GCo2%W312dP@YHECLP*)hW zQDxG>en0i#@kWiKi+X#mKxz?RgiJI7bXEPEfiR;AW-k|iJ+*1uyH81q23$0aW2@= zmB0ygyC%c$9-zkUt9;}K?*Xr>dfST(}~L>#^uSIEpK;e?Q4=f6{bf7=B4h=6-j=2-bBa_FxJ zG818FquMGcITerB2A%)^PbnJ1hgy6bf4F68r}AS}GQyno3I!?CqWPcrQkSYPI5?bA zC)Fg=DZp9YB$os{&Yl(d%<)HyJT)XUkWgho7UKcSa+9i-%fJ9YLMqVCA+&F;YWS{x z@A>Pn@W-{c+B3p4$&z3px^`UG#stK{n86)8HfZ5nKjmq+FYh8an4@>h8~+eM0WTn6 z$;wNeQg8?lW0OeiUY_}pO)k4tC}oVNo@HW3|xS-W&g*St(#P zhWKR*951L>yV@f2S8L{8gSopa35E|I;-$pf`+CFk9e~)XdWr2o7Yy9QM3G<>0gr{; zOs%NMf<+Amemi;d_raKtoNf(G-batFCBdVTFF*8z^wWjXMh6FtbWsExJYDQf>5 z3+$I?fAp^!TuFrts|E5PCmJ2M<+?sry zr7-_c!V*5@o8tWuSL*e&J-G-_tUyFqjmxz>Fn&J*xO6B0VMwz-FtG~NwS}cK++c|G zpY_e8MAz)ifWnk#x*vzS1;l)FAC`lP#JwM1U(z7GW(a`zi#0bDuUuE5Fpd=0b281) z6U2j#)Ilf>e8v3U8S(6}_k97|m?z)EVF>YcI8 zwU^!>GuYcl0&sQ9H$1+5G;5dw0@-CSz~-E*_Zudwh23)L1Jkz= z$0h-B27r~i_AI~u4n*dv`)VhPfHoXd!UD@^AV>5v`Sjob&j@n@(wnS>k6!zZ(1b3t zfmm96n}@f$KNz&Vxhdu)ngUSjUs7>G4gh;m8JZm)5HACZh2sl>2oN1o$K6%no$WnD zfA|o;P!43l1BbG$F63(QaXoElQI-`2BmT1HkpiMS3k*dX87X+VGzR3v8!v`v57chw zhAk)@^_{KA2Q7IL7t(Eca%44MC_oJutGiE!K@;JQ;nO8;R|$nRwJwxuzMCGIOFvrZ zKrXZpc~YiO$$d+7<|EKZ@GV9bV@XwxKuD}WyPcY;Y-yqA~=b@v)dV4&7ASsU4J@mt7Jow`N<*VKG{UvOdDD2HHgM?G16P>hAX z3*SB>-cbW`Xzeo4v!ssIe%g^+nBacvc^DcCs{CVk{~Kno?>LdpbT7x{&5jxI!ri6t z6{R}{|EAU|pRYb#@j8v4UK=2jnx=g4a$Tf5Msa(U;G*mU!a^uc9vq>l#P+k*428y>CS=zi$EO{JHl-TkoFD9yZZBo|i6S9q%r@v%kBN z^*e0urlP{|_*HqhpSsA%;OIahC{qU}|5ge62JMP)7uI!5s3B@?iv^yqgb7M)t4RMD zY;XHpAnuy#eX(`=v7|4?GrVEu{b(%!ga27MvPIomEm;HOc-*wk{b!L|1yur!U>~y| zFzf4!7v=;VaHJF9A-Yhl6)|}9Pr70o@?#YoK_Tk<-@WibM#!q%=(VH$$87Z@Or<7( z9158#>MmrLMjT$j|6fI@Pjiez{kdg=8Je-!%U>bo7PrquJdbD#NgXHWcEugBbW~~` zG&#E66AyM33hEZX)ik(+B(JkPmBX^^G@gY_L`{x3ju+M}f2S?#iga&r-K{J0+FN#( zE-9#60iZ!-a%4Juq`MH1>{=+Uo6U=B=B@Q;Tv?q4`5REN0K*u(ukw=>u+&Nc9mg*% zs94!{lTZj2sTk|rs;vOaDWe!fPq!w+9g6usqi25R)zar8%3>4E;=4XJ);7^#R@+)@$LRe1QVac-bo!57&tsPfmgt`X4j9g+Qt zHS}O%4lpTOhY$+uKF=COrdsYTa(5Q{_4}B+iWv54T(8JndOhOPua5nvn3d1HM5^um z=NV&CridS`|83%?ozXZ-Z(sKM-W&)s(6CM{*t$7}KdtxFbX22Y+$TpxJ0PW;U}r7b zoZAkxQ*N8udA%$~pxdC{Xj**gH~Lx2FJGk@EFvhbMoI@EbB`}2WSV2D(G`WK5(3W; zM`mGQ5mywJYIF%0pN(cyk1l1_#sEfZ2-8?e%I_R^AL<2btSZgjepXzhB1Z!!gcW^- zQ}xS*my!inYJi>9u-;QF0E0%dV4xS)4z!=_2_+}720a5cAi&^R$mAPHz43G7K$0&o z)XRMHMKfYvg8Cu;Akk`U*)ik~>t$GxuFymd^M!YZJ5L;^g_%lOF1!P1FEE8)zY*Ep zA!k+NJBWW}yhOD*6-~GHw_yP6q;>x#(XWV4^DKA0ceBpwE~8xR`w`|>@bw#MSRpV! zlcw~?2vmobVRebM$sX&KVf~q*gTBRbn9Xg-WQlrAiD?Z>p%g%meKdjTp!HkiBbD0O zx5(cJHK3Xh8(srWE!u~3P*mC2uoKYfG3 zxbHqP{hbX>c;Mnt+%uxq(S&IIqrRH^tQMf8U3t4pr|k?o46mem0K13q77$tSOm*9l;{ITHn{{7*6W$+>C_3J-sGVeq{|0cv8hhYI zq>q2L3_~|;)^H0JApUG*Bb%rE!C|Wd*i2_#`Q2$k_^8scoWenPylO_-t++%I?2^ax zi3)MrmT|9OUHLgtj$)}brSmBCk0~xZC{lb4dZiXf$;a>&@GBOlBiLZ&kCi*Uw>E#% z<(F*)IGJ?!J)!`eDE9IYsx_G%<;JR>Kt%-9=4ixjrOtuZ1i2zDztRX#j`F2psMG{A zAC``NR72CPK9HvAOsl@j$|qTEsdSq?b4B2sZ$VXfx5R^3)j|MP zNduZx5%!(6L(KO?#ljX`1%T&sEvj{Zf1Oa7BJdPxL+k^f$wij7+VJ4}U-!E=<=np9 z^B;nQ)ZTITCA>rWtx>L=n_BNGZTb0tk4;YpOF#isFBLGBK1+M+;VOWblqF&oW zVGhhnfzbe=ZaHNFa9N~FU8&Ls`{a)ujB~KN50AYL29DQRLz$`pVG2y&#lG*MyK*Ec zgrW;T*-=}(OHDS!oOSh|dy{LwuZUmh?NhwobgZM*T~|hep--v)R9&bx=u^(i6hV*C zk)nUrW7jLaz&>5a7P*C(ENzP6w&o@$cL*t907R4CKM9X`E;b?`SQ4A305`9ZL*whf z#lHhs(plHKd%dal2NL{rsiy!#ldx>qacjO#=x`SHsHnh_Za&Ke=$m=&xHLL}w#+7x z3k6re^9Zf22YQ9efrASq)P4{BYTRapP>%04cDoS|de5!x41#*_!xm!2(zM%bE@E)M z2&VB48377A+1ZzpW7Q5%+XrLd-OOM}(=*6>-V1VI(`LGHJ(!dM%G*#=kGE_>%`(BqQVL_+qG+1q}j8tlKv#P&C^a`WErXV?9S4h2+`mOPC z%p?D#ByM*Z{c+*l4;|Tl9TTaUfCA8L2bawroNdIT?^ZY%KVj(n3``mD$|*Y8k!-QR z^l(rLSg1b416OU%O?FY<$-`}}?EkFg-Aj*}dW)Rm1I`V>nfv}zfJiR`(Fn-uDtVy> zV6R#;%2ez%7co2v1U@ENK+|;O7&e8^iI*$>udxE?BqvLo4xvSSKf5jgtOr!DEcgMz z^hBRXeoZq+_m)fRGBie%*^hjbn?ancHN9&tEoghz>>LcO>`W!#U3lOh-JKlvL?`X$ z+b8GdtTzQZDN1&&)r8g(Zhr}9BWS-gk!kNd`5>vC69rnEoc@1d3thWev4C`3wYM7` zJW^bX>WnCBa@^UpQlBcO+_D3gFM$4z*UngIrNLEyU7y^w1ltoVUYLU|ue=e(Qf^<5 zbdEY$JmhQ)SeFE^_`ASNeh>25(iCU&|F(Qq90@|`ct;$c_NB@~NljUdUH*EtXl?!v zgxzfAc`>*gUlpL9j)mE7wlj;sxxpLl*}vOSrX3cH%qYAWVKN86gH}&$h*53a&OC>)2&EY<;WRM$(-R(~Z!t z5!paJAf4+Fc03EjNgW8|s>2^y3}B7|QAH3Io(J+WiB9K%Lz7yAGMRDyl&Kma0ejg6 zn&Ex^|HA1B@hC46Tkoh;m=l z{z!<}13eE^MZO%LyPOX^We$8G4~ruT3gL&Ux@ghyt!o6EQGh_5H)VT@-o5(}7!~b| zb$2ioQA^5W=79B3e&DBwb|rAs(zqZ3LwQIhxM0_%f-Fih;0M0kN4xBL_hh zquJcOTw%O4-n4iax+w432oP|(e~ZXb0E}k%ZmtWt!l3hn$sU&o0AeZl66Hc^RF2z9BweX zjE;F3jC(HCF4Uft27y*4=km0pU)$_4+}U~gT}6CO{`xmC;HEy8^c4=4kN|&!A6u>Q z8q2_uw3vEidbToY>t`mK)rGZJ03eEpgBkQuIS@ytf;|}|PxMrU9=MF>7h1CW$mQ+> zgGU{^@6boF$4T9Ev**;BBruW^#DfR_8pFB3bBPV#UD)hff?K2Cw3;LtKg0_#bU=?| z4A`G^(2Vi69{bc8^*=`zKVKdp+*{Y~tfRefK6-V3_5#@KMF5h0;6qp^^PD8#P?lvg z(;1rs?5mgaE|ROt1W|)qiQT^*jdCINt^<7gO<%XbB+ZamOd9DGr+UW$v3d6JvG3oi zNC0FVMQ^)rZHd3NApf(Z)$|(%q=m~nKo+F($AJ{?EZ2RrJ{>Ran*bJJl#Csv)@_`K zAyutb(sH|m+sL?tZ%Da>C08}m=5yqmEWxJNhKik6FFo;CeKb~RZ9sB~nW2?(37;}{ zXZBEEibX{mM{F85jTN!BEqY9|Tp7RY{#oV=jeE)F=bEE!FaIkqzdpHl$3)$ktxA<;IR>X8ZJ$o%dtshyvo1N>Ej{UM)cw{!YqxTl9!Ak1|oy_THDmhiC!U zz*A;ghWN_D)rIs3!PUO+2qC*BWnJyw55hMyH1!hanu4W?yLT{t1Y!c%4+e?5AISP z!tzHQ^cD5v|7rAv?cxtUbYqfd^KUe$_)dz2K z!h4D9l5HJaDJC=fcc0G*O0{B!ZKKt{-)uD+a@U;CRyQ(f2=L9^R3%)_egT8Fh7TGJ zuk>Ku3=EuaH*&gohfl42{MGX46ft~EzGmQ1uIHfk#q;EiG8Y_{Ic_@8&9=@@xZ0Y` zK}#l7e<=5>?0Gd38H_An3fx+jE$c*IpGRs1@1Y!uVEE^Qjn?)!vz#@*51gf(>UYAB z@e4^RZ8O`^zEd$_b(sN%!@p}Z8ou^ZMNyMVvQrc z9Ncp;3;5C=u#z`^WPtXQzD>vs)J3Jgg@#Y7p&+#T8^#Z@hM^{?c4z?;nf?^q&&e-V zPzAgZMibPc``YB)o1&ZkQt5Z<{Un>5Ssktp#K1qGTkfMo>Fs}t!|+-%+!o^*0yXC2 zH|!hgqsAi^rkA`<5<85+QxVj!f$>*`I|d`~$~cRibKQ+l6i$byPmV^tWwK$Kw$;10 z!V+|&=;(HSkq#|)Ra*#M${)L0;g16{Gy=qMo>%YQRe7YEYDkFH(kVEW{1*LQ^wvHE zi3)fOzvUa*#>v4k{2sZWft)@}L2*7b{`)hW>uX0IME$n(gG(`wDTZ4vOB!MqwR-%H zSNq(RH^!0bn`vCuAv~eT-u$LH+kv__`z~0~%C4N@r8_t9l zmgUud1L1d%6Ph%FMBXShEqHrWK+S(A=Rpol!OecB z|lr+b-hENmfip0S)?WynMz#tH9#El%qHb4#%y_v(Odf88|EWCJJ^`PBR(iDf4M#+`S2Lk1A zm4&BkL4AGBm~)OQ2LW9z3G*_eXk(GT%C_t{I&K6b15brlXHf>8Zu2#jR{h$w_LEiV zx)h9TVT(F`)#d~tQ&B=2lQV5Z+JTf;Ym_!|S=s87pBVGA`l*lh^oQ~2_t(CGxYYlq z$D45Bl0)58H!azi$VW(X+&Q`UH{`{WE^En;zZI+&6Nt;UlD7rcLz7H)kN@xgT;Rf=D9S;cgb9;hL!wo=>4|Nco#d!{c85FA3| zVKdOuWOgET#U34hW{DDh*5|nedp~`KSUQ9+br2F0OLo2Woj>{)R}g3Q#7ki8>UT+l z4}^W#-gOb&T|3{b*dJeES?zms@D!QPUtAvv;2ms^*xIkRJ*KA)iZ@}EtZG^!{z&7* zj8AAMs@)NRbKyu)HkcrjXl#;I`_d&<11^FR{yf4`j_`9@eln`z7p2_GKOaNFeVt@7@)=prlS2r@N4{Ez-bM`7Zluix@NtRDt^=yc&yTW}1 z2j{R@-42ozoaripgzGEe{W}#Rj)WsG8yKo;qNe=S2+qduZxh1L?8HTNMRG-WVs60&kehp!A4qWq|C=h-O;Gsw7fuz1O%^ z3*B91&zc$Sf`kU6o?Cdzzi8XDR<;F*cYnhq3|xm2x~ocOjalcL-;&B({+M5N{>2pNeI z$a-$CFr)TF0g-&T=BWOU+XPKH<*Q^<#*ar|7|EZ9vc@X!apE6oL~FcOaLHpF5i9%B zrx=K{mfZhT@j#%=hJzqbQH#TnA|5ZQ#1Gd$%o8E96DGReMz3(6RaY~1(o?yEcbN7} zSjJ|+bxh;o<}R<{QYMqJ!_un#?}ZB}hKu2RqR|xh3jcJ;-6rQm{4pB|&1*&d z>XB3hYk2=^CN|FI|H8{x!9MqWgnp&)4RU~=-fiyx-l+p`Fy1g|l3DH4Bk31*wWtC>EK1 zw2p~WjcTxuP;p3vc08^`b5BnCIB@9c-*FKTSc}aJQ&d>TFGEgbvdP-&UjoM+q^&oO z)W)ktI2p7`7(9)8cxtue~hCA~4FO;fAh4yA|=04wLh5DPhHpi&+x-(rXU zy#4ODkaHGaHGLnoHzm8h*dGl~qPROR)9T7mfimz9G}veX8gd>p((R6z^tEu-(8b~4 zfy3c}b}`0lzB zse4UrcS;0_)M1WQex-iC)d-4l!pwfj%s^I5`{-)x0pCR;qC)xmVY`;ao$85cMU)RB zZh1D>AYv;fAE6*w_QU|*mJZB^1Z@|#AT#Y)R#NaPnAx?JRby>_J-gNpgWSWaQ zE+3(vB~ST_lpF7Q-;SaLuD{W9Oj<^D7N8F)ebRGsJ@==t%Hc@!RCE1hi_1dECe9$< zV(G7vUphrULe&%qamFVIAm7H?i*R(xU5;+yWtbq%}CAIo`Xm)7crH)-wp@BpQ)s)(2_n}G1{O^eQ(7(uBRS9CbTh|6M62XY&Jzp8 zP7tZTb4`|Y)gx<#J;OOIb7QU$so&W7S+RuCB^U@uq+>A@iJiyaLsBX*Yxl-gSc_?b zk;h^7!H((yiX@-DP+8c^d+66*{$ou*l$V<>1c|lNKOD!*$4x~oiz%2(*KpC6cKlz8 zuA*%9ER6(=pp80c&{A-4lW8;M{(A#M zQ65yk!C!JMcllYNO09Lv>m>C%HS>`NVoatXy$lg&vj;{3LOM5IC-pieD@fOk?Z_(n z#`N-1E72TZkdJz9T39arWv`51|XgEN`<2dL9ME%rD#Yil77 z1CiQ%e92Lk^%PNHkAs1n^FFXDsdoIv(-7p(3&hJ8{<6Ucbr?eE99d zvw(tI3|GnJt}IIU=+og|yEq8=rP`bKO3*mZb2!M$g#Cwqj6%E zi29l>x@qC+namnT=W(|rZDYQ@_ke<7bg)>w8QDTSgOX0 zBc)|ZxGaT5hLU~XR8qL~EDi~8!hYV08_EK~dAFI1;6Nmd67;}3|GFH5en+Vsbw9a% zMG0EtS>&B3Z?1MmJerQL(8F3C<>>Ky^7~X|a6BSO?TI>P<&L#yLb(aQ^Rw@W&?HmG zhWN`WT8~Un@YQ|oo`bj69AIJH@e47=!Gi?YbkKW>p{^#+(>bBl{16-@s}T6#+LUE4 zL^t<_E12^JVaC*8pi!tM%_EX>D1kjw*FH{~g32j@Piu8lt7Z>U-q)hG7K{u9k2C|U z*J+&Ju==V7w{MT51kO)YwfLv5I;D0&J3j#Qp@1Us-9_kWHR3jJ^(zWS6Vw-hug$c^ zoZn~MCQzS0yM|&BsvKq~@xIdB@t+#DvxG8Jc`|M0#1>Hox;Poh6ee;J^n!M@P6w~m zZ2}XO*lZ$*DQ^q=5`IB&7qE`s_}R8`3WqKEu7s)?rq^|PLpj&2@%A(g<}D|;GY-<+ z(efqYuRDkWC{Z-4pqS+<03T1BxZOqnni4p|suK));NrY5gRgh*;W!Dxib|E%I-$ro zzRXvrFRO0IRh*v$>EtX2;c0@Vg-B!Uh;hOxA|k?pwVEZ6i-Cw(-6sfwm;2*zXI2G# zwU&nUDtRJxNkG(a1}%vV-6ox~i8$IPoTrih(vWajl^BB{7NV=evpJz?8Ueg-guYF* z5fPEl%)&5wL#LBs8>63C=tYC5AF+eZ2t!RQtQcKCGLD95DWS^vU=;=fKBb(5 zo+NO9fgbQz;YI}NIvFWm(7_BuOHj4 z3lXSpvl*r(TMNQv?HsDZwc3J_h8~ydSgr>}@)UtyL@>W5&fxlakS!#%nQ{|Fl4-Ve zF{8@ak}znOqxA(>s$gXEMGz#>aBQ|kt%hsA&|T}wM=UdyNlw8?k-_~#=|J$OZ^Q5p zB5Eu#r2D9L>fB&t8l(+vR;kIw+Wd}p1)5MO)pM(eL$yQzh}d0Zb~L)tJ*aSCG+bp6M z8Cv#clt$6&3=z@wE%C}qs-1inhD5PeMd{7l{&5J)DmfjdG0xSf+h=W#g6nKYu($Io z1jmeGOl#n*<-Sq+y&S1Hc&qneN9zx#BciD-HsdT*s+phgRI8x0KiysHCJfbBTRBoW zKdsi9;7ROY68dbTgHq?aJWM?|ZAuEW4raLV2nF}GE!@y{!9gmLHHn1^%vnF^x+v~x z-x#*{+$ByB3qL>cC-l7q1KJ&i;r6dGDehdlKu9 zGR_7gElOG!>arUr5$Wyp#H(a!L<&(b-|muW5ocpayQiUfl2(mJDQV%>e5IGR2T2z4 z{SJZ0fLPeN-0>r|nZKyY*Tc+Z?{F%#SF~s9&!~Po0(Bq7r%?{WKOVusi%AED>lbX4 z01A3=io0oA!Vd?zr6&boigO}L!(X56v_BZzzROvm3a~lR-332ZW~!a8vKa~K;p^n- z%kSO_qgF##4wTu5)CVb9ca7}yX~}G8Wyl#Brk(_@8SUkHH+E8Rk{v}@*Du=xK|~?$1;l!LFVm;j=G)=WF&WQWDBOlpnsfheP}mH zb=EXMVJ}=dKR-oxRtXC3qEFWM^1w8_^2{av-0-+U&)ln{)7>~o%8aH3cbavjQk1PL z)}YRc^z(r{G`nm2 zje#2*vxCkzWlZFE-4eK0_%oiu)s7Sr$USfr5re5$!k`I8bA>*OB{s9$KkhWEwq;Ye zdQDe6+leBiKwUauUA~vm8RD96De!eh7ZoE_*|T*Kv}_N1oN);l52}Vk04@lZYO@u$ACu+{h-V7^a*y^Af4(Grg;{cE1xOY(V-mNY@ zb^p0+1PHn9kFC=*<8mm?U&4w(fGmry( z1eg^%@=2T7&BteW;SmvgXna43e{fzI@vAFs(u9n2@f`f1h|&Q#4Zhvynm|DB;-74} z({G9`)A~c&hMB zSm&b;mI*>cYP%eZ8;evjV-Ewf?*8k!Qn_rnD_O(4R@*+<#t8$a;p{)AVf>0Izn)!E z;_~ut)_tv%>sQI|VQj=@k=>eHP)d_)l4_^GQG21P1B~e;nvarvZ%>=C8Em zT?z3JD{c8i4`TT2m!3R)1^?%t?fNL0&qL+90+qz!NI;NCo@Y!5I~2NKO-qiz3?FV% zbV=r}H2f8Zr-$P{p+Lq&P3i0hD>WeVKn_M4#ZV63Jin+1Ib(UQqaKo5A0X$Iau zDX49NQk?(n<)})hBki13{2CtZjvk3@0e~s(iEuAd9BGKF{K_CV z={6zm97sF2%KP{T6VsC{=Yx^&)bns8&yNj3qg!`XVfdCOgVvIgG5Xq|KaG*^fS6x7 zq{6ERK41eCbU*oh*P9VB;tW-8_%$=jg-_=ewu~p4S;~(NGWL#Zn#ZHo+NgZV`-h_) zK+ns|n8`*c;e;|Hh}0}b+JPtTvL#Zp5$b#`5&9^fov}o2Vzq(_P1Fe@VnG-OVEHfm zm!-$w>bk0HqZ*lwt);Zv5eqLVm;_4TyUGEZfn=9dL6}tO&t3l9tc$@&VUVZ8DS=WI zE%j0m9F{GX5~w&`Q7`JaWXYagH`8aDeLoBlT7XWHujrJzMz&yW%dOaYW508PDY3xS zJyZ#5@?1|HDS4Z4@}qi1%JmUrkmX~$k6}=AiJFKHDr^GAIBcK1=`-ST>F_}evdlxi z`b=Z5gIkvqo`C)63Q4Ai;gOavX-SjKP}Epee80JS*EU7k7^!FzyEN+`q2K?m5>$8` zi!2gd3xZ{Piq?{sgN!W>rNvVCyq8lLLD+G#;@}OvJ5c^KO+Go~QQfr2%Tv$3EFM&u zqV(nxQzQ9$*$LN%mmjP@%GBTqMxNFg7T_XqCX&O)ptt{a#iXf)rM*1*z+YOT1ciCl z#{tOw9u7E|Po^+Yxzee%3CIztMd@if^A{Y>DM5L`+h?}_2?FG^^*J1TJ}QJFQ8aRn zNc|}RTn}kJ*@EgSsF*h?T?YkI{T!)80S*D8Tfb|%@C#@?O&t!hTY+*DVKxizN@wh) zJ$sPoBQRW?tUsc-<2?Vbues0jftpAir-|Ety@~3K5q0N8 zXs|6i=t+BgEy?-ZI)1*)!AQMGq7we#QXy-|_0j1JZo+c1-QiW~Eg}Xsuza2o4&yO? zu84R|VO0Hp0b#(Qo*)W%079dWcW-HMKw35%J>7ScI|$?SRg(seqSG!ci#%>h*s`1F z4t(@2iHE~f+dVk|qy{;HdvG{FIgl$qNgTk{e^ET3N<5KO*I7|pIB-xS0qRGU=wUM> z!9lMU>$Y%E`)ry8BV9jJxP)Z*SFBjL#v4AU3v(n(YztGh?s`*G7!my(Y%TSCUMgH3%N%{x(B}`o%hbfL3nN<^{&)Tq z_xw5yj`;oDG9e z2kBhd(~$W0rmv`@YDT*6T9Ak6$(`Ahz|N=7zyV||LBC_S0fhPZoB&?!H5P=a&E5Y8 zMHMDc0xR?F+rp2V5Ni(I?$}a_yUV+yaBd?~3&2jY2S=RSl~C#oeUbUm-B}FBAF}V} zoLSH17`??LE`ofgi5j?>*%f09I%gjM=<G9*MB!vH3XrxiFjmy`~nN8|f zNwPxVx5Jb`&)(0+MN6iP+S9wPN1O(a%7%?!zvr1@DJWywvOXmk#K*0@ShxFaoBq3@ zz{)C3sl4UM_4~JXgkp&h6czYEQ+#`m)z{eMtoz z!zk}7bNVRJYWG~w2>}U0bA`%6?aBFauhh_(VOmZ=QaoJ%y=>5&mg)1bNR>MT^oZPI z+iwji&vTD4AfnTQk#d6Le$%us*(MTGWwJ1XfDsoL+WvHd<|vMkgc)7uAx!+aG-fg_ za#>TCsQEiJvOg>YA-R)8L`Z%Kc(Cx|bh|-kxd*tn@$O@{{&Dtxtn)h6%{kPAp%M3y7fwQp_WTUjxS04r~u)iZ=im*t5s_&AZ|3+=mviE-`7V)rm3*(4nEd2&ON z!tph52}5Dj)H@-^?O#Hgk3US(SGR>qob~Bme;4xNw%xy$(}}BbpBowY#xmKS-Xh`h zl(t7HOn^Cy68Q1INa=mV5{C5UVIn~QaF@2V!sR#QphwVKG$~no^iiX1qJ&(M){Xz* zV^0?DQW2?DFaZ3lNS_e`Di2=v_zSUDJM?Z7o>~yHE0<<`90S(Y<+3W{S4BgL^Ugp) z`c;}JKZAy4Idp}B) zP_WT!2(eNZB?F(><(${*JO(5jdhZZ&V=e(c#$jzVV0ik_A!rzlYh1YI^7&Wbk4yTf zjb>2x)8|kI^x%7gWFT54&F;XmJKX5HYOks)A^FY_H3ecOx;Tl^5P-?vFY1;_ha{i$ z#_Dm=0e&IkD8$shHxzVVcg9$swIP7cDiAPljGfbHRH0Nr!`DQBeM7E|PJ@~zbrJhI zRsWLHLXvUh;nJU$Fl73jqQuMQo&Vmn25ycM@HcLr)t3%5=!6L7-adxg)owEv~n0p<19E3KpaieX>X14nLONvAVbCUBerM`NWd%H7V2Jf8W zr7u7b=7h%jxq;&3+}wxb?=-4a;1UwVT0WzMA~kgPgkaz_0+mH~8Vyj^FtCWF){>EI z|1~`B^>y+KIW=U=8N6$06Hggh?RxZCHBFRE$;hm=DpE2UpiGS0t}Pdi%S6-G)y+_( z-GDT_tDq!c`H$%yV)}OmpsO|`7IT&$#&_A{Qy4(=mv8@7Gs4uh@xdG`Cpmm7gLL4H z8odpG0?|M3f{u9wT*rMJR->l*0OlnDHF?3OLDW>C(nqDwyH*vq>tdNd5;YY-xy>~X zFzOdSta%Af1AXhaEjISzOQt2Hl^MzB&Wt{|QzZE5<&1qGz98}w^ zM}-GOrnKJ^)a%o+snzM;Ol?*9mUhHlah(QffPVn~d623G|dtqXm(Emd_f5x_cp<*&Cv}){xp6|is z+`AANJp2^^^)DEU(5l&<1B}v<8N=S$05%}8TP)q1{m}kX`ZV)4UQW>RcPQx~fWJB% ze1YckptPN&qbFT#9vZfKws}fW*^~p>K{db< z(d#9I+|`^w1u>hDia|b40qtUP-ukQoaFiL^7h|f#u^Hju<5|ijy_UrwaRb)r z3IG<^32jOFuC;T2y!RrMLxe`X?sA zTUuP0s^V^A$1ocI1UD&)N)-jsMX1oy4gGcjVxMzf{^HNAMAe=2vOg$6`F(gYBn-j1 z+>APrI=Br9QNriT-{Gn#iMAmk3Q~j!+Yol@Z*NVHUrP5gC#xr~F>T;EoHh=AIw3a| z{_5WsiV39zzDbcukv*l8Ws1T+iB-LWBXzv^51RBRpFJYH5bd=i*?QN=TOHyZameQpQdK{*^%aDVS zOe0vz&(+~j8W6Q3b%4XpFo~dGup%Y=*Pw4_*^ler14qY%O-Il@gA!vQ$zsmaOn^WP z2}XK0D9YBg$fInNmy1LhQe>tUL;&>!`s6bCH(kSyuL*Ez zNl$mEH#}J@e|xX0Fjff~D;VUH(swcW7|&e(!_O9v5%o?^5jn1UfzIiQ91d>gTVLqs zf3&?Tg{A4l`4&hxD z&Zi+NlpD?}}&|Y0E)#Wb>=$thl}FiSD^D{OPctAXB}hxH~26)Ty)=kV<~K>tjZ8!1aNHOD9=a z9ei&?Z*@w#XojlGmSGH5mSoCWyi9aj07(D}Z1?&eV)3Z5$?8ox%lW>|y{cP)d~g!P zj*i<~fsdnPsuzZ2sYubzX_lzAKtcN1BOm>^2P)qzApJPV9?@K3FsEsSf48~uS}Whj zA&9)8Qu&LkwJyxeR+mt)G60%SJTzm-FuQTV?-suI>Bd0M%<-Me*qcE^c`HEhdWOSx zZ0JWex+ySa@k}L>0-UoO@e!PO;=KC~W3+lZlblv$IA?ju>xBr*4exPf!P9qXclQt3 zH4-%A~kJH4IFmeEiM{_+(Q&2D54r$o{!yVW-; z8eH$*UU~)|#chI4?%Y&6+YSv==lf%Vusef|Kpx5&;bHbsPl%w_mEwk2l5yeZ$KKcc>P@&+v&2qgbTuSs748 ze%LGDC4Rb}`R%w>M%OA#)ycII;5(0jnDjBHo8RcK&(u)@nUjp1ih6zPF}?ik4vVqX zP;#qg-@w`X=2OnEZ%P@c<+ntuAg>G_CHaeXNNV>l=obNAbNYCErghnlmJJ6(?OKS zsg>=LiES^@FNH&F+;-gEZu{AX<{N7+4g*{F6i2mLX2Uvme88Kz3zS!(UZ1i`4SN7LI?ZVD&YRh*RnSz=Q1)lr!c24H3h#)w6edp|2sPJc zX)VWl^QLjLl5>|;le%pv%PDYVZQl>ixt_l#SKo@g%vWvCatot*mcBh1goKF8W2Lec z7nPxk?ohiKK>@+>pp~+C%NY6x3LM&L@_y{YZfZ%7DL!INsa-4Mi2DFFUYLrXywhgVuV4Z1}5!Y|w8W&EgX zs#QEY>~2nk@R?&ttq~pO5PabKv8%tLH?OULvic^hGw(>n_s^=x+lnHJu%xiY&wfBL zF()~B*ZkT%To8Rrsvz>AL+B-5fAdG0B~d3Ch#CXCT|D{)Nmr5{5&bYT6iJ&%ZjcK@ z@Gvj-q<+0JapOF~6^@MyK-gxpLRa|3n6dnq`7yc2bM6XnQobE%)ZU4xQL<2I0-V_|wq5STd`ok3` zivCvsVHw!SU`pj{Xw^4D5RzKX!O$r11CyXwLz+c>Qx5=j*RtOSNKm;9Rv8R zYYHM?+M~G3r;j+Tg!OX9mQFo=Ad1h3fm`7XJd0S^-V)}t6AY}g0;-2FvVxlb83Bu} z01y=@;j;yoS|U&yLID$3roR!-K74zz+fwa0cO9NJ5W=ZveXoRn;@aHk(hh9{iE9dp z$kS89hu=TT!zW!Z9+)ln-sJ?pBb|)Xe@6EcH~$5_n$Yl<+rfxu74~N_rE_B<{S7bU z$G^OtM@hQ%;O62r&VzTX4B@D&LIBGmQ^8H6OuoEF4iAwFHXHENEx|`1W>-a%=eh?B z7hRetP|3o&V$bN@vLu2bu%hcopzhThnRb&eF)1|v4@cAam6Zb8aSreoW-3MESrevB zi`+zziIUBkFT096vZF7X+3W_5_pY|XL0n3!9~nGUNHH;YO%1sfovR-TB=FC#zG3yW zleQQyKBV|lMy67Bx>iVCe8SD`bU{FQ;dbx^ZEP)_@qH15<*<*{WlUv!Z=p z+FcT60c$x+hC6%an73viFcy?-_t)vE&bwB1{#hi{^fUi+JXM8)3eLm_ZHLpHeeqg7!{}vg|(341zO%VH;w_X30QmqlsJ}Pp)XOo(` za+d&#L$`B!^CLm-=jo*$gjY&*wDZj0{Q3)j89=g@gZeM+ky+AQPkM@?kIaiE+sSYP z<c>lpx@QIz8i6+0W@qz5osv;_JE^xe-1gP}ejs6wZ^2?{% zeL4mxB*x&N<*sprDZYj`veZ@{-l?28;x?9w6SCIvlL7tIRo4_Htv5!iY`D-DWv%3F z@8e=ww313=b$hR6hawWVkMOrCuydf|Uh(N<$@v^IEX)QMc}UN9o3MRl&g?LRt-jBs zW|(8A<^J|qO@t=2VG+=IaOb5JBPHDP2E__ZkV74H+Y$T{FBzB2m4Gpj0FT03p_uj? zwwZ1kmax&j4dvbg77HofARTS%l5IIhh5G_~C6N<+csim8@gnKQ$k~Oix`i#@cnJ%m zlc=$^trfvaaACUU8{5RjR^r=~r7SspyS}U)pBW!Hycj2x3&jYg6?s|2>YZo%V%PiK zTnDzBgqa_2+ex@>{y|+PKZlu>bsW-OAc~oY=fgNvKc~KS!6jc=ZsP3SOGG<|ZFVZ2 zPfMOJKTv&SOl5yb$#7n@g+XdXo2!`6&_6bvVwdpqmCuwg%X7C)_zdA&vQu6d z`4BE-Rzr>Yv1^{+l`J3Vpzsv>PO%eqBoWhN^&LF@(DsJLT7eeh-s1-icSVB&P}I{O zR_0uSV|Xx5mHeW+Hut_Q&T2jn`#!s|mgXzfEE?g*Q?T2ag|&Ns)KU-`Io%Wy6rklU zc{>(x-#1#x&r~PO4Lxa4LFsFk^~EuNm4PQNr#Jf^E^!AVni>7+7T*B)`LpQI#8$U# z>PgDH=G^8pvMeePJlo#Co`oe01@CN|yzHi)R(<`{0UclJ!K@2tgGxHJ<4khqbdmQu z5fzE_4Du%H098HWdD5`B{&ImHhHIo3^xd=^>Zt_-f!4RYsdH<327O9;ezOd+oVkG> z%kBS>YC3!84Ip+r>4M8N+w5$!xwXs>|3$dIW=E%)EKYO+wfz~8_GPn{f*--alDOr4 z@`^z6Si*Qo2V&Y)QGzZ5r$F~I^)50iWjJMo?Tir&iz$>o4KF-d-pMkc6?1Pe zZ}A2>pRrd;z>iqFHIJ{XOAODi`vubErL3N!#1TwYb2_eakvKupv_)*A)|wOmzl2j6 zMzMu0Gqy-QEvohXjIh`V5@s~%re6Y7S2l=5fL^7&^vgG9LMbS+bk^JIUmYfzqp&8K zZyq&Y^R#3`5DaAYCO6bME8(g2=7%@&^r2X7fva<_e+q46Ik!9D{TxyWbym&0n38Do z@a&N;RwbC)pxeQi%IV*y4@(%ud38)*smOp&LOJlJeEcpZJo66u|GvdcZGT{?JjJ&Kz!ip(E8`R577mVO7pB;zgQU_{UK_! z2*v>Gth;usk@9a!VES0h1@qvg<*!yiETlY~-Y+?foxXJ2|FIP#&DWQ;$F>5d<;#mS zKbIHJeXkYz>lZ(v@KvJJb>0nSAeFC-^f{{S%673v85|+ISI9Hi{+5=BP+W_Nt-eVo z%PAH)L9kHtHwh`A8n=2`x$B@t00mlVv!>#Kp2`3@_9YaN*KK7-oDM9m0NZHY)Hu4Q zG7_dI62RT7dg?S9=HsQAa3OH5)q6Je<$ujPos}YN%c(&h4*Y2V!~0JDWV}b-;4QPF zb}&OID2V8edXyD?C$$}|H#UlaD{%FVRBJBCKwIT2sc>_EoxFjQdE9BT&!c!Z1S!qY z0Ya?$P47tQ%&+-c`8cNY3t%k?$Xxi@dZ@jlkZDPz50t)Vt*MLGXq0;AZ3Em)cy z=t{Vn6ZAZ%Vb-Os!3)2#7IqMqI;x84VePajvbupb1K2_M^VSsIrC>`f>__U(-+XOf^-0!9{=^JoVXlAtLeiaE+bYn^wV zN={H~*91@15ND-4m$5X@i<;2QqK@yxJ1u#Qec;RKer&k?_cVFk8czCgNu!e#Bu%%@ zI$oAlv1`T7RwI?H1!#J@2pZ$iSY6;Fm#3du)Xu?QJ$Cw8h`N4pp)sUxZPXR<>pMKMlIg+W5m6z3?DSI~;6fcQs$);$!F2r}ZS z9FV31v#SqQE+Ivfb*(1{Pb)0c1zz<7)yZrwo(w>gK#1dk3|K+sIJ8}Z4#Z&PZm5$e zm*u{8Nu_TPG>oZ6^XM>eqCW6i0fF(F>M;8m7Id5m0!k%E^z+c`%_^8F`#RlMcVihk zu2Y2|meZ_tB=aT$$6uFS!8kR#xzD9Wq-cB$|Hq$5@4IQ>pBw7;lFlU@Bec%9dw4I_ zrB;Kt&Asj*)YqlL+s8#5AW@u0~;Qk)MPy22Tg-VaXZG|!!O2EZc>#KZ8U*! z6|*0*-j)J51&$)DnB{$SH8_=c{`9GQQ79Eg;q#3#PWGD&EuKbMwm3X0TJ zlKZ@SRfq&s19r*hRv|wA9Ei?M>??Rwj}lBz-;w*d|Ned#qe&&0ni(+p>NQucj8`*B zs0PYVzLaPd2b`hcv#|TwmreczObUwCPo!rHyq7|?0Q{2%{jy||Wys#8Ui>sI@;dMp zeWe15KQ(aXDsKH3X{N0yT5FgvO;Z1n1APsACVK7C=jD{gj5k`rhfp2&E435)ZXM%?y;xgGWCL!XK}AeLllTaR zcRPJgFD;z-1>SdG=oMC8;^WbHR+nxbe~(|XZY$Hd6sS}tb)K-!$yalVNE1XITsJd$ zZdpA?9D`@fXgI1ShtQ{J)m1v|5v8sY7W?SOljhpN)p$3H zxZViqFm(?ub{h;Su@lGzaL7Kr_p!&n)ngqYD5S@{Lb-qvn@Xd1A&WXnY{h-Gop%_G z06i77w1)PAb!}LURlcZpCd)f1owmqW%guujQzi4xF#N*0|NHI*$)fntxd)h1EZfc9 z&S;j;2w+Vd>NGDi=1*IhKoAJ3xS%1PUrBWTiG6hu}9iniKiBTN)|nabxhkX!rGgz6!}XtLC_1}vK2z=?2of(+=!arShk z>sc$I+Cb2i$xnQ+>qr^ir3MN{TuILK5U|U0q1>p4Z;P)f0ug2|Q8CG9R_sk5jL0Ru zz6G6GXu_3?ado--vSHSMd&db^ZK5Wg@aYlY!-Ux%mt$W4-t_4T(C;pR+hfj+M z<51Qs`Qyjg9P9VC`H`%jWa$fO1HejP*f7(*oAkLDKW4Bd-+Wd-TAn3O4w>S~e&@MA zA8X6Mglc+ry)g^xHpJOf_LcGqjxkApLu4)zUsC0zw5<%v5$~ti*MOMfYxThT3TLB( z&@u(ip_Ov2v`K-k@U`bsQ*r`G3n_4qjiv7IOZ|87+~1_arL&@Bv#e!t?Yn*aSdba+ zFN_>U>-Jywp&ZeilAbzHBN9Y!N6S}rJr7_N?7_!_21l4do&*U%n5AC0q5Ys#&$vS z_nDvj=e6U&PG%Jp=6>|VRJaZvfpjy|(nB(JcJPFIaA{-T~6YKN>9LCzl-ljI?CxYXYKNPQ&pRss)PGD0> z00wG6F~sgqJ^O~G+%K`$uxmLkpu;WH$yPhk&FtNF-9v{^;s*NdWxZ%K+Wp=B#f?8d zam=K7-5(C}uiE__o{!2goo{Dyik#7&5|5bJ5X9-Y=6xq!EyF^YQHpp3Mm@V1a z6PKvK&3G?feTE948WWcnZ8QoZGK9<Fxmuc zCF-@h&1i*?qDVz!-@eOcu$4l>*dYUOrzG*6jLQZ7vJiU&(IccotB;?`@Kh)&ip0QC zu7Mifk1YWmM1KN))`eg()S^FX?`~#nNxXF@#Xkbe`!6QEOAoaxK1X)qTf7uKaB8sl zAk%N(kBD7eB&E$VVJmwQwB&0P%TUi!4Ag*(shiZB^l!s#htr8alWwS%nR_4 znC;e|JvEVGvHjkTR;hBw&oU>y{Mz}AQnhHp)mnKPbWWU^{O5o=Ck;k?(2Y{jXld3i z+?@we1=R)B?qxjWO-cds=x6rNm+d)?S1T=VPiW$TLKZ7T<& zmoKCZYIc(qtk8mCLjl!rH!2G&fE9_9up_p!5fcYStFe^p`=qRvwMsn zaH+il&lunlNJ}-R60p#< zRHv9V>x4QXEr2R)QV>CgTc_#wuVG6kRSB|l2nKkEHt_h`;4hb?`+4TjC1}i-uaH8y z4;;`)2`%6P>T&xnFr+?ILx^f!!hr((>;RbMh*?0{FRIju05^u$$?l8t4b2R!?^+2_ zR0EJHW36&mnfCeq^y540n!-X>+lOaYGjuHOfk))W38*3>yB;8#kx)=K$(gSVv69d4 zQQ{22AD!44{we6)y3(Rj_RX*#BcSXc{Mn<#Iu%5EujwLN#^{XbK$&-yzxQS~z*X8H z>>gp-4xV6T10dr2mHe@9!(OYXHdO>CrnJ29yaI~mZg3X1!n*dAe>9)&h4M0=CmOC{ z0Tj5aM)r*_C)!eh`)FBGZWdnhy@6g@{CRzGtMUs#r6SfaW5qmtMTKMjG%f8cSg%P- zv0LRtF?tC^HZOlCP-04lW~4^!t%1}79M_CuH;K18Bkn@jZbFVRjZ!+qy0k9r{euoH z_rOZ>Y1ZI90xp>Rne=bc1YX8XtUlS&|HlB}(^e`mY72L-vP_dEO?$1?9$*Wxf1IP6w-_aYlst zC9urz$ynI3ObiS3N3>~pFg%a`8>*6k;>#7tFWK(j zE$Tej2yVfQAxdl=le$y;M$e;mI-o%9S)s4~t$?z$-oedLED#tQWgU!DTGe)s_x`9> zc@2={BKcsF=S;n_I3k{YyS}di8e90jXN8|`W>G7qbh;A`1KGpwI{XM?!%r(_Lf{f^ zyk}L+GsF0Cwp*J;$d#d+N|ZRO+qA2>_ju4BUn6AR63lpcQ)?Mx?JoDhi>S28h*r(u zQd|rR1aHJi(92nFPbdeyoQSpK?jt>abT^MN?Bg^_8+C`*K7$T z;COLuEeF0LEpOK<`_%tR+fJy+G4#R-U$VUho^z~lRb`AR>zy2-MfRlxj&&dcf`b?4TR*jK#}N3nR-UCQQfz#_p5WQZ5Zn^!_wg~LvmAzL z1a(GHGA9KCjmgV`VlqUE>)S|rH1z!bjF}&aj50}tv8gDdxnHm!5Dzj`pVoK84?&y5*Ui=VXyDQAPv3ecn>zV9TGC;1hQ+5EUvTa zfi(TAU%)u2sYjcFC$eep%aO`J#a&GAs$bpE>Y-QuP}OUitdtj*ajBEe(Y&^4Qa*>+ z^7jW%BfIyvxU}xGsXvZ|-7jMa0Z4)$Tv#oG5fgpDY)#92^Q~~r{l;n=JUf_fRDX>C zTkPHoc$aqpeZdPy;L7{Ma0qh=XMuExo5)G$OWdV~tGMvl-zyqEyw^I{^0qQ1{G+sn z5Ygf~2(U7^tgRVoXp-jkL}J^S)X-TeUk&{M`dl}`?@eZuTm`~W*NC8aL*~C=bZSdj&y(12mBOW561w8BSb3BBp%HN#%N zWsqTSDR8&%*g>)mpex?uCXgtWCfxrhha&`0|HKkC?5hOKA(f_i`%=#DqOWlp1;Np8YUqBpMh=530(aHN0TQfkGDJck0w>T8s-Rr2C>~5VE`GF z0VTv~bxVK1y<-_#w{pSfE}Z<|M%+W{cxlL>iOBDjNy5t()E8@`)?%O{A(pn z2R}_ZrF$JC_36LRGzDRudKE;!MJe)1!Zc?#w-Fozx{E}Ttu-Aw>I~BmL}3r-xj$Kv zCzzjuLtj`Z)K;S*i<=kJy$@^q3Ve2Jsp8b(19aKdNdOpbCEq(hE^+M+H>OA^CAq=m zm8WtFDx7YAakxP+8b2a1^&+?Cs|Q4KaMn$0z$dOuu$xz(pLrf&!vS`d690ryyvKv+ zx(CN{aUl?2@^#Y`IaR6h)s>ny0PhhkM4k)fIm<<}Y~1ZM1^<^@uz}?}JJ;NWUKfxxSxrOibk>xQ!2{HmiD*4Y+v^0UJI`uD+coXMS$&k z?or^@T||V};Y${mEB_iY1}Skbj<2w#MQ8d*@CM2mc@Z>d8?i-rk1CFJ@=Z?#+4*A% z1MTSFe40|G(qX!h^6JQx%n>&RG;{+EDN-3aePIwc_sdVfk#N7Cct;?T={T%sVy|@<`KYP>yXD+QC+t+~NN6o@!(F@b)q(9Y z_Dg3P7&PAv91MIslSj;5u@dD_e^pVW`bd|n(bdD!qrq5OL^X1Ds zdy`?i7z^q&t*|Hbg>(=PmOXOU?2T3mRv|g;#qTNw*nA8S2)g9aoUW_g zr5l2vJUkL%CC8y(;wfX9k1t%@&5Ew{N|VUO>){ z0L6X%YWSKPZMeJiWK&s}p}Y)@{kLP8K<@ut*e!uth5^2A8|34$ZPLGpKE+Zf0;FG0 zW^x4Iq_BgWw4{+>$^Hf18J-G^IiD`!%AARgx;-u5g&EN=zU?4OdvrY4vhitLw-*nQ zk@ky9qQ9oBI{qx|fZXy>ZtreV>#GbQJy=(!CEV@OP4&6{mDE@bWLQq68#Ezo9rLFY zl?agiIe;5kfWprP9rMa~o>CkfktmoSx@XYZiUGB)HUZx#c=-4+E2etG)IckeKp=+# zfz=t+zfJKD2-q8F`+JUACX@zz9{bDrU}#Cb@0{VA_o=h6RoJ}}4sh>9235!6PcKqp z)f7DIb!YE%h%CY0T!Q)~0%B*&XVAT3boJ1)et4@9-crkJ$l$0OlQ>N)jEbe92m;+# z_h^_Ie)pekDfdu4{%v}Ls$*o(cOO{09e+Hy%)^O3f3!6>IB4@`@z^D5(d=bGsVFAgm=6hhVPHHdOS@dHUAfSm zBt+@jor0a=S#DrA5mV$sho9LC`0lDIkzLF3k%KtXLl!A`3HIkPa_Ow!TeNBX#GKXN zE-;4&?Li|4--R^W7pViL&_9@rC%NxLe?$me{@EwR4 zm%3GE-_+E+50NU{>=5Yzxp>il$V%36{4BS6|7ST>K-IviT(P!OYh;5i{W(}Na9$@2Z!=n$Fw^Sy zqX?2P!z0F^n;0N^zRZ_g&BoXELoNqzem?L_MDoZjzqj4<^)F4&o={LF`1k=G)1Yfk zePD{=sROe%#79W49lv0%diwywsfA?f&VrlS{mydjbf*9BJ2JnLvLbF5&{36@+=S3g zmvpU2Qb>yua;cVE_dhb%4LQGge#ga1XmLY zA&9nqOnTWGeyzuC8+jjIZCA;jHE^@bx}!KtHURi-!yb=ePE>_7~`Pe?H&Kd)Sbn z)y=rI3ZY~Bsx@!m>a5e|K`Sz;A}AQEj9Rm;Yw^cLx1kws0aSvypfMw=g(zNE0W~{c zOCQb9OAXz(wRkx@w5Tb5V0;`?gKm57G$#BX5ObNq?9GdI7o%BYFpC&OYMR`SGw&y-Z#Y>@ zT6X|Gu#W12M79Jg#m|xz=HW_$6CM7GvKH1ZK8RVR!sY29v*(?Kr<(kHQt`r;L<%S> zy(x%rc)NL_`k;5msKPNt?=UT`swhAD?FphwfYyU%9=qywYYHbaTJ1X3fL?fixWzLw zxmVCPfu3%3TYj-mk*FVoeM5eMuiF0($mb#8wx&m9P3ql;A5)E)oWCztLu zURjHD`$rc6)Rf|yG4dMG)gQY6orzdQ4}T<$aTL^J``jC&a{zOm(JHCd?#yTbR%zBdVqMg}ov?5^>UXR<1Z@bjq#Uj_KM+!-@MVH+{@GmB8cn z8>z~JYMqJLpHO4`38q(%sWo(3lQRk{Np&ces)4*mP$``}BO`|)*zz@M@NIkN&Pt{~ ziB<2Qf~d~2&4Y7u9$C;(z@;T{?HkEqhWU0d;-$nfF8W3@nVF^FBk2q1zG;T%#53Mj z1(l!d8rNP{zK;i%lY%OZbetYVSUm)X_wBQ901277w~t^sew1 z@{nnskBFa80gI+nlHNu+^j1=hPByLUwM)ZS&f6kel3M#ll7=%_T25ZQMmW}hVS+_l z{kUzoj~|OCz=i*FEOEHur|QKZz;8C#jFBNRVI`C@n&D`?FfoTMARxTag( zH24#0e3X50JR*DhLx^I0GfVHa^ebGBJK0>0K9LDyWjDbb9sp?^5EozL+J4C-Gsx{T z%nIBoOFo2y+mCd6c9gK(_B%q?Wg**ib*b9NqrLNy5gD#hwJ3|aOQhp*KFK{~>?>hH zu@k+L1N!8*D6g%wCEFF;Z?R*BFYV>i1-p>jL>)g`F+uTpI-U04_4{-rzmEctxW^>t zkG$kht}fbf^H${CB3L4Gwz6EB7i@osWCE;(xkWRBGIzd2a_GlIiy@8tXcz2{EP4Lu z-Wt8rr5&^KizP8+Cd7@p zZ@~YXl>L8x_Ks(|iXx<)q$}li%>J(y!%GFZG(!|nv>G3Il5r6HsAt6`u5u*Wf9Nex zEfWD`tX_k0wClANJ zuD7yNJSw@+9G0XpHYB}|xEzZk%O9vXm0Sg`hHMX6SQ>BY(8pngamr}jOkf)oJ38#S zzDNo;7GZJ{uNmE zL#9J+beM4=CRDuCH0GYV&Wf>CpxMdsC!)q|t)}t!lygUX$)%lh_Fl}mmb&Q&jo~h_ z)fUDw5zyH^ZDYrKpk=(xT_%}>h1%MdAZJ4xHCUXZ_)?&7rWP;;;oZo@&EytJgFJFo zWR>Xgl{EkJ_QGt)6yG&XSmiqw$t}CmR`2hzT4Q=w{G^v`wD3Eg6x(Ru{=c)vN#kJr zVj@WN>DlTu-{MEsw)8-~3WbT_txGKdKRxxO_s%m%7tV^7d*5fiEbA1tm4A3~#v9T) zh=1qD@=}xW)A*hKzLsgMI}{2ItoQwiSzBDSF0aM1O@vyupDJan_OZY?CNL_0q&>vY zYGg^GAR-T#FPNeiezX2ey#t>EiIQb>8N|PmA5*g>%V{AGR?l-9%An~Ms&*onmR=*y zyxGu{T@a55VV%BN+%!3%d#2`z9{0N^G*_kv0yiG73#spX0>nYl>)wr3=^Kk+7KFIA zIH&d(eNHUHWH0>EXl-f#U!Lqq*pfStRh$&-oXB?S_~mds)o}e_3IGY*t^9%}{vIS3{!;@2$nFm3Y=F=jeIOd`_AMI?T!sZ-ZRZy!eTn61RgOp_^1Od>Eel1Up#8 z_@R%$kGppo>+M~5hQaCeMjh<8Vu~Lh7xryiPy?>T0x{c05>Gq~CCXc^gsnGO&=2{Y z)F4*Y>$l;iG3Q5ctU|=+XT7k+tmEE{(;M-Ir#fKVV&q{$vj5D{jk99%Xw)+J|;+pC+ur_t;+wS%fL?=ie z>o@Yn1ZM_*A66fYJKG9*0%Kt;MfR} z-cA>bYi&&tU=#OkiG3Mk`*q=}gqC$_!#<0rrp8*4A$(e~_a&NCMW2A*ljZi6lvDj( z`$OSvV#MER&-H>&Kh*fwAQ@rIf4{pDJ3X*y=svF@bk<+FD6dCB^npbU2fVNHRlCRm zWZA8^!IHHfl^hagan zB3nE4TRqU_CRWu=f9@a2V}sncxPPjDCOTqhlKU(7GTzM%A5L zw>_sS!m?hzua&Z|=Wb>UZhh}W>6e%SMN}Uitz7dZ0zOq+pTX3-2zKLrZ!kpD)!X`- z`c&g>b|;u|9UP5_{x$2)(jc;Nq1m7QF{YJ zN3)dL(x4i_5`G4iCaQ7vq^IaF9l*y5nB;>!<~&P%>Ena-Uk;1=9X!c8 z)gT38qbFC+@Kk6Re5YD*5x8VR#0;jU3l- zpUq6c{ps?+j=sJmO#t5JNk40leayj7EK6^3B6lag*OmAJANkIz_K7UclBkfB@G_BHrSsdp(SifvK~oxnCi2!tM+EbNSdMoW zjj5wIoY@!-Z)k>3-!4CH10A_JLU&t;i-L!gUR zxjT*_0l*P5+3SfU9BJAKdGv4r6JAi7uxHUicFPj7FdqMEML5g+sNS;xjVaj`9NKZR z54iSryNnrshbLbp$~jtvGfe5%>R(4LReCp#*zfqq(8NRm7PUXmTfg{dMR@Iok3VF1 zn_ZY9`u_FT4hbWAJIfC)x9{CcT)b~^x__!Ic~ z*7irXyzH9kh}7*d3S8Uu_mQN;2bLtyHS5A(_R$;YLqq*Oee`Lw%dM;EIBV+145&${Kq{Efc@s&_ z*%t51oICtIrc~qrNm}^V;Ijb4aJ|2sT=^LQ+LAce@%dq`*s3 zl@r>@k?=DPfFkqM_^JL~`|t}zPxP;U{)d?o_v5udT~iuU?_BuEJOy#rdG1PD?dv{5 zY+qkchi)H8h0XJIt|Ym_ZtnIlze}*45fmX0wMyMR00$U)M4R2tnd&cJWDSU8Ct;ll z8{5Q6odT|8n+L^i9LzP2If;;V$;-ZTE1*?NJQzU;J{&A%Cp_C=v42Zv(MzPTER665 zND#;1{WZN2KN@b-bkY=&8FIN|-;ZiEkTdWSt|Mmd93+KCk=;OFE+jo?R%{`z4V1}^ zp6K~nK#T)VeR}j#*6($Vc3MdY!cd0zmw!3WJN_=iZHqCP;thXK&b^qp+K%<%3WM593+1q5X;tvgH8pZQ^dQ1 z&i*ZenJ_w}*6o|+XG0Oo5X1r`oh!LM#U3%rH`d_fp@L>ia;rxkR05~!7nAh|=X>A{ z5N!R2AI=P91ZwM$n5TdiaJ2=3SnN6s6p7hkn#ZnqS#_DdXayq&E~X$B=2-27THY$Z zAfZ?hV*^9;ke(4jj$}o<+~-R~F-&Qf`;Vt_Oi|ePI(-2SyMhTtI7ZMxKjhaW8xUd~m94uo z>j&>Qa7D2fOct0n8!DnM)NB86CALtGw?RG<@mb8?@y8%sj+L}h#tv12I=3TpLQlcd z5BazmbRZW0u5Kt@vbbf&eBz<|v2*^gZ*3GL+NCUVl^lu!dx1`y?1tU$49|JF+ONk( z!5sbq9-g?v4HIWrISF_gn%uR!il~b2`IePFrGq_u-`DA_M zz@aLE7$>5RI&v$$j+M=<$vHj5nC*9z^NqaEVCl7UEgZ)MEmLg0M*Q?P z)q!Mt?)2*t)YM$GtlE5qc{jj{$v&cTXU`uL^P2U;vvD)d(*<#31BOfsiNjO$Tt`-*$t}imv_>s&cMouerp-$2}OK zbI?>=kmk>n5KRFg0H;rhU<{o7#g}aKRaKE!ejT%dWLeb~dBt<-@a%O1HZxn%53M6c z(|aZGyvO;C{?={>)favJ+zBsoZ}F}ko()Ef|8Hl0@EQ>=E8jHxA>;k)<>Dh|-*%U5 zRebC+Wd@$&;EMVQOO`1J(1O-`TfPtI)ePNXARGv1e#aHK;RAjOrvZkWroYDmP^>Lj z>DHo)6jeV_;T{XXdw63`9@}Pf@o^Hp9DZozsM*49j7gjUv`DXif&dEe7PZM>ncKM*pGAg?H)#VYqSzF==l6Rw>oYc0YeqU##iZxEglPPJgT~!*u1>ZY-D6ptK#hBs4055tLl1 zZhX4v^cbB|K3gucxVd#vu>H1VHZ>+k;5`c4Ze<9)Js*rH3_+~0j)ql(gpq8dXVqBe z7Q8q@-A6EA&$%Ko_S-+gA>!AQDMam28yU_H{Ud!1;|_1($crhX%i-r`IHJ`-IJ!8M zOEH1Z^f*q_4IeBvKr&Gg{i2LgSEYg&Aei2WcS8t#B-vu3cOewbdW9cd8TlSl_sLvxydeZPpfMIA@sR7MbiN+#8z)JlE#c~S1 z3fDWRLnxuR!`;K{E|eF>^@9;lbbYs5#f#`~ph|Q8KV60XJY*mVFhM+M0JFZ$b>(gx zB>d1xHVhoeLg}0|MvBX@FxD1InS^GOVJ{Tal1gM#lW#E*>Sl%vXCd3JMaLt*eEp+b z^6G=wTb8=7oH92*_a`#BK9Bgz? zVv+Y_bF!!%_&CvGjs3BRxmUbFvpkX)?kkpeKRE&1AmyA6_&9e*EB+DTbUF4Mv8iYX zVX3yyjokH*G*#;YW7*kLNA;?su1a7EJp0eF7vYU4CJfJ26Z)$MvvxEd7tcM7j2IcU zT{&!1NzTHuFURKTywkP$K!v-06&vVHVEF#8cs5p(Fk`HnR6dP!z5cQXN{Jh-8MrL{ zx@~tOMCl=_Oz4bX*!N}c_PaeGN`x$JvC9v43j)V2n$KjIS@I=6$ zNNppltrb12k&cOJ@Q1*c5g|undz_HORyi=Cgou2|p^ph?K}|nk&@|2? zL%vQ|U>2@{&C7r$|9pP{(!}(~%$ZSwPJM4o5OFLbFdc@tQ9xYHRWyF2BHe#$Z@UZw zw+qLz*>3bgR_5jlfXY;1EK3xwTD}NES+NAoGSQQ-6+wWR*D~X$#egb&*;;K^$po1V z;mn++sYwC4$<#fXu*Xh(< z@;spKpW}t+cKy9ozBNm+|9a9%b?H}c!O9zdZ5U=LxFZx%s*R2>`|gqnq94j?n9~<7 zl5G0{h)d9xg8c%|YVw!o%k~lH>^4}kddft<8<8EQh%(jrk(C0-Oh<*)O|bw-b8;k+ z>M!d5Ujp|%yzmv;CJN6vAg$N=e_h-tg|v;--l1X-b^lFD2CR(%FD7A}1#4^I@6=9v zi}6DIIAfNHRgwa-Wj}SU7S@jhQ_A-K?vK(b=2f!?kO=j`e(&kZzK8UK@#@{@Xdb9B z+B^N<+rabs4$^&|2jofHha!kIS|B~WsR7;rB0Q);ET$lGjxuFMqcA*Lo|tE}1BeXx zL6(X8@uC`UHOUJni4MhNSqkyBpN@p;&IA%(f~)?OJAeL7Y_a7>>u4(6kDgwZlM=gi%SpY5( zU_JShenWSnuyXJeEMPVEeG~9TU1@6=1oPtjbs$kB@YKY*UGT90T0iod)*<8p+<7+y z4+j`t0xs|$c|xlRaUMbo1jL~e?x^c!$M3k!I~hLdafbMSB99vSP&u8p6uHyzaG176 zAhql7T^lNRCSae;Nc(0sR;%uUapZ_C+nq~m7{bkxnfcY#r*$#u1$CExLuy&i)(}@I z)R5B<7rk|t6Z88r;6xfc7spZR{{M%ovw(_v?b^QGBBFu_h>{WmN;lFiEe(Qni~>WK ziXx4GltU+9#OwN%0uhd1CT0MPc{W6p z{)|;HIW8L(m%D{)II-#C9Fpf$vwzWo(lSXp6`es{iqZ6v#mMWECp2z$<$5p+DpN3n z>BaBqhndqL>w9KPC5`C=HCj{Kk|W*7iqmWN{6^;Fy!HB}Xh~__ywCM~9iO@>i0WFp z3L3WJ!&64R4%6hSzQ>BNWY zcQN;Ip%Y1Dhb)RKgD!+HIgoepL1?o7tI`J{R-!qrCz7n*Nj{B!oDp3~iB}sDzikxc zG_<%=B?*l?;GiCkfj=s*H`)DD@lm0!j{^4)@DC$oFm+pg!BhQ?e-2(Jh6k;C-Mgld zNJb-a_%nMtV7DL&e+L>Y6XKPZu1BL}Fk&g3bD>w@s>XA?>QE3SSRJ zT(|~2`+;GF@vStFect+Ja-4#(HX()MyscDGwrmC|D5-C4G51A?*Dpn!Cm-aI#_Ze| zyb+OP+oF>6;muvX?jH~4_8S2;yEEZ=a2l$pAcv@1vJT)|JoX=Ltd?NHLx_+-jgsh9 zMM=HP)q>=)2cS9blGe>;sEg+2`h&93f;jQUA5S1|_2kM;8e*|}E*Ku;Rk}Q2rl#cW zkt#jadFgZh6(4hy>sNN#RXha`uc(_$52!tW*1TFd8((9<1Bk)4E|L!J>J-Ca#A}M- z@ftT{hd`h`7l6?B~!}e+0uVD|`j%fyJsh%CJ-9JA+Z&RoOS620RQt*Wo=#NCX3fl<}Teu*in{~%MAdl7xrVXCUE^>S{pq=~N6NRU%gYg!u( z?HgzB(lsA*!g;uny8a6YFz|dvU<#gPOJb@5wb6uhgr>}xDzrcM!9g2x6PJgd)GL5G zq$FXKCjA`~K}3@cJA~hg%Kxz%wnV-~`3gF?V04P>HyE;TUM5IxWPC3LNiEZpUVsJ- z_%~LxP3-4P3giL7O($`z!kre89l1CU8d3#bqih*|eJ8m4B)N{CZpk=uUlGPeMr+&o z(M{UXz7ezZ7b+0%d`--3u0}gRw2E6xQ>!EuKG`hg*#IR3LVP)^`1Rso#93QiWqR%C z6)S6YyIp}_gC!vNfFktkku4)VH8vE^fv0}oUf_CY%{b}8!nj!d+UkY_^zz5StMZ+ALO}jeMBy!fJ9_>*KL2~fK@4B4Un9Mfw&7Dj zwoh0fN6o=aNA|{X;pX4dq4vSZ-~@cPvlu1G)jls2aZTO1(*s((t`5UPQ?1#;4oty# z&BdjMY7RrKM0^U@$Ma_0h zJvTOC^1#t_c~9tyl9S!-A1{W5eM)qqZ#2lDjMYNGTw1Bxkg^8>LrXtw;Wk5x9Z3nu1`fW7J zx225UK%eYC^)e-*e=kpla{|%wDB-fsJ!7Cru-M}|Hn?Ab^7NI)Qf%xjt08} z%NDM171Az}X7yerW-3$V zWS;j)MOzs}jO^;BjO^bgHq*JF(R>%od0Q|Br+eVEwtMNrY6Yx!aH{e|Lki(59z8Wk zn%Ow%jY-4mOh49T$)>~~JD@4~9D7$2c<>3c-GavI!L}d!)*QR~)ShwQTZp=F`j5mY zAAH}it5xYEsUF%p+Z-C%gH!V{BvBL3L)f{<{&VLFAh?3Lms<~OHY5A^cVn2!S38FN zPeKfTR~qIIv{Mt$9IAi2NL!gKjgqSMEsGpJ7Zr?D`NrSENR;Rtd2>EF#n{Ir5r`{+ zcA&tr90{F28JsXW4c5-LkT*2xTb{&P*71=;M;>`cSo00u98#UHxZ>6KsYJQ43JFHs zib#`|?nFqa+V$;~Yw7+8S1S$X3W8Z_7S5cvh9e@_giZ&pv!`Tas%2pg5 z7{SC4TIAlc>zG55!Rv_NI4K4P?5g_y74W}>nBVMlFrc$*Gog3tA znL`R1Ep4Bvjv%tJSuA0jnm@48hkk5zssYpcwP|RoelEvPud53=jAf;gQN=b+yM&cg zUhzAY*S44}rG(U#PRrnR0TP{l&;A`6zAf%xAq6unoC+WY4AsT;uBRHH8&;WK#W%`h z+AwdlRD*BgE<(!F(IY)fgHV?h)Eq1w7dfo3_O20b&QHIZO9%+xCP$POLJxYAm~&WT zCQy$_m7kT5e=EbU`0)I1eA>pbHDYrGQkjlx91VlY?->$AG9RSJ9YYvxM3 z?_vZoq=*R&UOI(Q0c7~Hu8(_&B%0#fn#zUz)|ZFT>Xw6x!(5a zi4^~$ndT$s?EnN?(syspB>j~PFFUs=(+<`G-!Y!GncewhkD26mzMPyRqxJ$!+~wciURStAzwvpOw6ij_23c&{m+6>0nOD_2oHVFuIurMz@?0P{`JPV|W z@z%M|o;Saycrj@6NVp`xe%}K@iTL^9;E~El7&~9FqP7WlrPo6<5>5N$8<3EK!QpOW z85Jr!*6jWv&XNyInnCj2O0c2gTjc94XOt+Qj)11=A~?#X=G!~-d+*_cth(Z(VZC1R zF(vnB71*(YKG8-Gx}K=(k+wbiBLs^>G2vw@RTmp32jI6B-?Si<;KlFTJu!FukLDYa zkG>5$V+(k75s*mS>RQgs;Cq+~m-`6R_-7b7-e(ZKX}ow}TvfJhMj38&FLz&$JUnB2 zqXo7L%5!J@qksJ&I?o^!>i=qR2oIA<{>~SO)XRJeQtS{pPn|4|E{KUu_Nm=5j66YS zb8hd%V1oB2I3e9(6a>G%9I>ydc4}Gc{ph>D=Ws2}S};K#1!)_zSp^a2ju~WWb4Xd# zj(B@D+(A@0d^mxz){6uL`5DGKha|myJtyqT#qu<)>EPnKXyIR>&8#5ZwdDq_*brlE!GUKbCv@LHV2H;c~3N>1vaPCpwsZHBGVRY zm?XM3A3o)ousScYWzZjmhKA33T~!V&&HI6VFrmr(6oh?%=sljWu)L&X7ShmoCuI7! z|3Fi-nt7O(4CaH}&G3#%*(`R)tK4Ob=VM2jxyX0%=4V2P3oOXVAaL~Cr>9P@c9Tke zWG3TOT3HuFiN10o#WnU^0|yp7Z8xoRo%cWC7b&alHg^P@5zXe>Y zWWMpzZvD|tsWs39dPU5L7OZg)(sx~WI?Au+s_EhJY!;CUGB-HhgrqUZl2QEfn&|NC znoVmX7dY^!x7d0v7S@h!^Gmri@uN5reVw+lgsKu(OjVYo;hgW})j|b7Q?^7N?O^bi;yV{w4SRp;%)T3VQwN{(uGi1LjqY7&uf9mvmxbmR z0qh~4N12{bnE=ec+k36stZkcUCYBl$KpVz>5U5GtEVzUyG`0$|j|5wxo!jXt*qw{& zP0u;#s{^g=J}M1{50)^PgW-#;#jIoJ!wQbxUGSu5rkGLStvS#}O?`0bhURT$%Lbi+ z)0*^4-r~wwEsGbOX(p(;!ip)el_8rg?_fAyqJV+=%P9RL2b4%Uh!4OGV>nrQPY3+n zSFYjhe`&I}AjrFpr8_-7z3{hb@Fa>5YiF8$~&Z|eD-{N#Kx%~?)ZomNIr$q z`z#Dw7N*MEj%SOpLHWa^p#p$CswAU6hf0SeAuUOT;%xiKp`u&0V4Dm$FUb^LWWn*nmxB9neiP+3C|NnPFdI@`{vA8Es zbLEmi6I_VJ0&c6xeAJ{@iR6^OP^I^1En;B!N4Ld4sQ!_@A))F?RRw8GL{!Sj%tRxM z&SAAa>M>XngMu9hLLb9ntfsQtEPG-NycR%+?+3_E40rlRrX2W)bw|gS%&*6v%4~yg{?p8|a7F7wM zk*t3bR%dPm`*{dkX3ZYgJovAUqbj&jxjXNq5wG`9H}?M9QanO{SG|m~%`WGJk^?vE zwWtyBdx_JFpS~X8z@6(GRS0ID*wG%a1rf?qa9jqd@39%+d0_+v{;KTS@iI4DlmW!R zk5#ys)Hx7!jQ)nf$jA-2=sexz2`{GA(U)H49U!TA698Cs9>X59iiS9qA7U zn+%F^Rs8Eaw+C;YFZ51%p{f5*+D9SGaHU*o`b<|tWioi!voEXXC4I`G!70? z*Pv0wjcuU=)RnNpliX+^5zje!9)vJv7e)oZ@KdJtFl<^2{#VCCzdVaDaqL*WwC+*i zuNM~o|O%Pw0>Pk=b84&w= z=;vevN89_RH6*b*nQw}N2Xq}|t+PH9nr6M%9(dM*HaGT?E;lwTijiA}13MAQb0Twn zxgK7(|1qs^ljEb{`kMr8f)<8Sm>Lsz>LXYM8(EC`ZKsjgxtIR-V zkMUR9m_4(G;ixi_eFy>fvEqgN`Py-@%8#KSJ~@gDgFuhfZ@FvA%T_=UVz3DV+uA+a z`)!TVe3(`>(M(){?7_ENh1VB3K4v z^1e)j$V`5d|5*mp(B~)gyJ^(F!VUM*?C84e@PnA{=sh5Zh zkJTGsdno{UoR+(^S7(W=lBfwbMR?^d-GbAe4=y+4N`NC#R(1GMz-cfV!igR=(nW?` z8J#9TLsrz&AYqaMAH}E%ESaebRRv8g2-85@U^uy8u+N+?P+cs)2H|g~lo|g}{#tXM zwe~~Fq27Y`~*yQ&QRMUL+=dri2GS^8?jd#U< zC$rK$=XL~98(PNs@l}}s3}RZ;o>9rRaasvWNr?U0`VJ-@PX-3><4c18V0rbYe2Yqo z%6r+OzX8OdRS(Mip63tw`#Q*uKY?4J1-POE`2QS+GnO>G*vVl>OK~_T{%3gz0P*zHHZS9P_uYA^dfOA-TwzsMs$H-ZhKam~o`NWRw^S=uKA;vkXxAuVRrQT6# zem=0Hc`Asd87L+cC@V!RqII^E<}B&;e-4()&z%3RejW)P`HN|*SuLOIpU?9wnOKVz zD52Au^_b+7aL$91oCb(UVz9 zQ~omiPXq;x-g2P%>&Zvy;QEk}(zXHlXcsYzd74}XmrC;=@JaKZr8$N+1~1SY3w@q# z&%$aM%QTO+r%19*x~&HBu=~)}=CJr!!Hz}N*1vAy;6N-Kw1y)DqUuA!MLb|<<2oV- z*Q3vK0q5{+%P&bAh|@sniq)qpqB;kh5nLh;@tX47DsGFaP9k51^%BdK$ll3Uyjp(O zjiP_=vv<=j0tE5c;toM9Ul?H9jQ7sq=a^%!DDs5+Bh@zUBS=y>^+*dG-xnGPsp zTki~Xd1|`E3^lF*sKTP$qwS#WvAj30`hpNE2#e^+Q-3&Fb4iEe^@!}{3@u3Mu3L%x zzh|s~%6)2hrLE0G?p^4M&F6$hU}ESFD<}6ZSq>I-y8uA#iX7w)TD9abd|n^0Sv&Yp zH;>POr-S+qeNZW~o{8U`gd)$w>fU)Iq_Yn^-eNK5O9NNlgTt;$nq2yMg+7)IoGkGBUhWC%V^y_JL`*|ou!Y`e<3~pdyY#mdIY zo`Y@SMXP7VsuHNWsR7R4r>{j(ojbT-XFu``a^qUGEQk=Zop~Qx>I+Y|^TbXl_x5 z1wmb6R9g^y3QGl&?39teyV7Ouxr8!+v*^?>tAPwqF%h=}<=bd0EkAQG`KhL&9FiZp zBr#UD&_PGyv$-}EMH#$;d|~zp>M=csdx?s!ou3Y-Vbz#Owb_kWX^+X@!76;^F1Yt% z__hicU^FMH?iZ~&_opymin6UAKyJ4Cla0u@Upd<=N?Te5bW(9(yLy~vfI@3Fap*8G zfkWE*>gjhk$u1#El~N>B*w$h`KvnhLc?2T%yx8?+!DwuayI8t}ulyn+rRv&MJgN%V z{_|HtkVRk0{32&UAVVm|KLp{JvZ46;xKi$zEQIqyXe21EHgC+!CHBeATsMv#s;6&r zi2jEo#NnVHH`F=*7Y-l1$vFlJ?$f0BZb7!Bi*tcUtK7sZx=)35W_IuminCljiN~}e zSg=XV5=}MkWsUdzwKyr^17vk9>L~@tOMDGP^38H~_xRzJgR z`|R#Firn}Y+8p%;$-ITj{%*;rBq%MP7Tu;A2lliDi?=qw3N*DL#oT@s+cPatz3XK( zMr-1@qs*QV2T}m%;2{`YAMv;I^}9&k2iFU1T}G@OwVTd59$zX^TEU2wry=FaC%Z(h6B z0UE2^7VIZUU<9GTsD+9zE}d)fwy^%7(s^()wwz1G2xKTyAi$AQa9AYOLp*pIeFc)r z5JlehhjeY%^pVm2oz5#ij_;uztCgV=2MSw~Lg-b<7CLe4I}moHJ=e zo(8kteVLTO-TlDn#-PDwvJhK$S3V&}Iy7sc&_Q#Q61~{?7X{4j#mUaHN=CJ-5;0r<(O7?beLzk5O0a`1caHT-YL3F3aYh%L5!4Z}=1a=a^EZ=c?2H#itV|1JdG z#5rt@zI*a3L35YQ#lstv841@dLb2!DCs%km3hQ(@lXYi1u>{wrIVy`ksp`4=#Z+)A zbkqlH`yuU2efhU$e@HryDg`RTXBECKgQ}x8Lhd)?xN@JCv^xdBu?}~3X$)~8G;W`h zYZy|@de1yNSa}dh9ZL#f^PLr}r!}2eW$&Y$9}B8z|GYdhFY>yDl;shS-?Iq;jf-(f zH;TU&691O4V-d0t2Z$wor?X_xi(evtavE4x{#M@f+AcT?XE=~X2#+p@g?H?8&DC&t z+8+1ATez8k3>>G%Wk83^tD8d-iVDTAy(0?(l|&l51b8YU@LO&5spu#1TKzI{bp|T5 z<5GFKGGJGjwM@YuxN_~?4{~f+=HJ@h2LQZW?BI@fq04?y5K>w)gko4;cQ=2>Td5_D znmG2As8!wZUca^M)*#I%uE%sP<@d7AALopFK`L_Y2kJfhiO@|Wx)Mp8Mhp68)Nx_q zk^*gxJY5u=aMV?O5Av;P;J#J#suV^4e(j7II*G!odW8%P2A=ogaRHKvHh1ovagu%E z{g7xmiWU6ti3^keycVQ(pAeQW}kV7J7_TGq@ z=KDm$n|~LTX3I|-ZNEM;e97uJeCedpRzd<%6OMXpZs}dt{^_0c?9-?e#D$~DE)GqL ztq#gK2Ul&?OxSI7Di%6H;sI#OK$r`woZOMd4C{H(X6I_eH8GE;qQlt(r&F~_nQL~+ z-LZ{vE|3%TN{afhbt-BxRt?p59O}~3^x*BtYs(V`Dp2B78$w*T;@eJ_`Sp-s$b24V zkL9l}>v08ul&e{Wk3OglX9p?aUZ}BSDg>_1v@-k9P1T*FuN~s|}5c!Fw5=}!V|9HGY)@JE6bc7K*r;uVR45Fpdd(UGlclQsNcaA@g zcvA;$`RHIE6}Z_y+d3TN4X;eOpa;AS(yk}pW;Nim1X*AXo^7S1Kd^lRyJF*dTKcY_ zTm)f&^GtET3-1`Lx8ih})|KG&k-88oTMx)`XUw%Alb|L&v7&X6vjqu!a1qF9{P`bs zFcUCMIMkr+#5Knm=0*+87D>NjZ#&)NYhPc`k)4JtbE>fC<%jlvtw>+4uI?=@h_8&6 zw02tt^kv3yGf6BuSS!ba)OiSIW{@{fY+<<}wp#q^!*^e+eh1;@Y~TANV`E~utC$4v z%xYA+4S@Fn4O!SKl%Nn3;e+X}OYRoSV?*51Z!WaEd4-Y4`ui}*V0*=aVR5$3Q4!Jq zNqR}#Is$kyIiUJI6)bF=zP7e$!rC|F5AqTm0c=9Zpk2exSa?n_*y%-&KJYGkoks*ARnu zf+cF;IWBSE`cPxeu$8vpeja(ew1O8Jxqt@GY?`R3t()8CGrCDp=|(^2J5Kb5KALQD8^12{0pwPL_v+X1D39Ag z$m7{5JLZaE`k=`_=Pz}8!aI|)pR(_D$b~|c%Y6m;6K_6mc>3RE z{I7oKITaK=S)8TX{(1fz$Hi%$Tma)scL$M5hO+MkI^beh=8tV_H81`f{xxXy%VoCK z-gbA*A3-fDg@>P?5N-B#p-NWs*?Anc6w`yYa*kI z?+b(Q?iyS#LS@b&F!ze@lu~P*K5uISBtV(sdb*p&W)(>y=K{Wh5!)^|X|j;3QqofC z?G#&k3PXp*NjwbHyWUK&pUZ@-@eJ748bC26_w*2`!GDEP5R!aKHx;c_@Xaxc$DI;1 zi6b7dqm2(JY$W;PKGK*}=}wVNO*J0F3m9icDLL6r`48{k7DSAReHts^2ir_(0>1V! z1l18#<8491ZMkJx`h!W1eALX5@fxDr(Lh%No#@(7W_PJ3+!bvn290`RU;VSjf*v_Y zt-6$sr<}y*jirD#(~~+`d{WPJNmI<#40x~N4dA(5rY6xGfkgLARffW>$ zGIxJYmfkh%+;{>LPasdig~{7{`djepyN3ij>AFvKb2XSlv{%&c+1n-JytuF}@!MfW zWUyaSF$)$;^9$`C8&vo>PZvpGI*sq0>*?s^hSAQ^ajVzAt(1=+=uDBd`vn~LhOa*D zibeneHo=VVh)TdRHe?dqhxx@L_dM@j-(4ctlL<&Iazq*85G-b-Ud&iY*d)qI#e*RRp z)_J4QB1ja{fuXOOuB9|2R=oOSlalx5s&l~Yp?j6{+(FV9Be#TuNUi<`4pMxkJSuk^ z1&gg~pO?0N0~)I2_)yt4@3nA&3YDaji+5oR3ig1cZ^Ue0K5>(CX>iizgc8`a4oP!Cb>C75U}BL~E)SOVdZ>Yupd4!C&x5v6hI2+M*fEeJ|PIt!Ym;d?pAV4xd6+!=?ph^1{fi| zGfzzxUH`=IrcbM*l-^J%gb*kGs|qROIddjz_YxnrRh?}hX0}vy;1j1(8J?h`ffmcS<{H~4Mw)kG8 z&vcnAD_OnqTz=dwc7-s?KJsEidio9TvH!MYM-gOCaO^7-7C_PM6~8on$L#xRW=rE2 z{3oBBm+%$7UroJ&ufMy6vDITIHl~Ri$SnsDAsAP>cy4gFYKgv%HDl1mO7jb5*?Fw| z5h`%^&QncrDU?qUun0yHyt&z)*jIEov2E+sy|G6dZGWI~(-JL%NuE_|f>Cb?u|3SJ zjVeAbjbXWrH^vqqMWJY2>)B_Tvw(5+O6o{*MP|ycBuy)EqU6Blu1k?sc!m8I^&0JF z=e^o8&R2^`I$ImD9xf?#9o9upYKGciki!1xH47{|_$vs4PTeKXh^-1jDzQT%aGR%- zd(cLUlu}0uL&Ss5yD*vDSBeOtj}WIb2DaKw&IpPzecF7?5pc}p_?+XBQUtRtKs#qFS)_%OxI`fvqED5 zFXBRp^p6ZyETc*+bz;(e;kD!o+T?}DrCauX^fG_t(pl@X*c z;Rr%%dD!~_lQ898%wROJgYa2;V0r7(lrt_eBCQQ3gz>&(hddvJ+sOtA>)frtDMq}2 zi_x7g`>6Xr7NdXljXk+={-6jnP^bGE?N}I_{e09&qiV*lUwCT#s;^N|p0eyytisDh z>8Q?Mn5sm6^}FRsAbpOYbD zQqtnfALhqh-I)rL{ou>h4t2a^8jAp#C`ErPmYr<7Dn||}b-`<#uSPvS&7NPO`}*hM z(38t?^W;F^1hUuxKO%(jf96N#F^JxeKUq#-u1aIzia0sVpR638{`-75qmieqY`nqZF}1e+XGbc(Ji6KU@f78S3Egq zl~5rJ#;D$Ca{$vIuR4v%0; zzhLmNjX{?@q|4gpNK!;~1SNYCV<3B`g|IHe;~3`lfcvulT|8-{lz1Wg4Vniq`dE5- z-6Dq(0fQ&Np!v6ktkN_+CDu_6VOLB)Tx)yG{#+SuXvAIZhN7$p?-k_2t#^15R; ziv+#vlnD9a<*5ezLaxrK3H>}RP;xJe;Cm^_e- z_42p9nb=E#Y-)FKA{9-|QKMX(e-#D{o>ng4EkYMOP5fDzZH(E?vjrh@HB3=xyOzw) z+7C}$8-XUhpU?id;Z#*A9L^7Fe~in1T$l{*ayyMEoq(vV`RJ;!UpW(SE0{P^u(00< z$%LmgMU-w2o|G7bl53TlwAVc#p>UFU(YlaR-Rx#|CNq1SHx7(@V^%T5r5qE zu*Z#vv;X#Si9sD2xY<>A#vPlL0r9Je2+x7u-QOp!XGN4wf|O~`X>C2&4%e<`xe)sC zw!V|n4LZz3N&ader+5Ct(c30|R_+nI;$TBs5JE}m!}9nwXUN6C56dx3`zE!+6kLo%J7k9eGK@%%W4d}x8&}GiTJnS@`U(qmU#o8P`D-7(J}pf+1v%4a9Lqwe`r6 z`~$V95@#)MF>SE{5mGM6^6d1EMrG^NW3ca-SNz;KxS-^q%M^VQqYE+%IvnER%>Pm??vb1V&gQ^mm_+F8&au$p|Q$f&l5Y4=76@9)6U65&zvg?*RTF* z+7a|?IubcVxC(G{e+Gj7ffvK`zB}C1(}$Xf{EKN*Q>|o;CTfr!{Nn47@^cl{`75tk z5-k`-(n8P8Q>C#(8q|MGy#YKI*5)Hm9!olSr^-DoG9~g3;l@@IO;%v%+QJ!Z?Ao71 z>%F+5&8Al_Dih5bPz6J8DR`CUwX&ED(HPlcYtrd1@cUNIjep^1cTAx&)=f_aE9M0p_l1Zs6ebzC@>>lE zp&{C9&SkTV7@_mV*2dAYdMbze+UD(2IG%5J5tv$#(q_HNQ9=}@k_xu1<-LkUl=z~{ z0J@~GOX`^3B&Q+jKPd7JYUv|1u0pnHoXS|2ycrc7H4^)@Pl|OlcA6?7{aFBr{7uMi zN<86v6@I#CJrcY%BXdh%c8ejysIp4@?Sj%0YeWR>a8VEv{XLQqT+5D=NAyYLl^(DZ z+@l+;TdHqe3AOT0tctZ&Lmw*KT)9)N3D~Gj${AZ6Sl+fklTIBo%6IigvP@gk=@(-W zN;LA{?%)06sAtA@3WwkjDcJUXe7D)h>Q1w2eUKfYyu9co3&f*yU!68K3$}03ND*)> z(u;i|!}ZYP8_ek^HEv4$V~Bt84yST%PA=8_?i$)O`p3Jzs1fNjwUT84b5KRA1RTet z%_6yeQCoj%s(VfqJpuOMf0Rl0&#tYuW8LhN)dgGL4(ozR9q*hs$>>)79ot9`L^8yy z*pa6+vBW@@8E%+y>6H{cc8$rOI}H1lKMiR)mA^jnEtQX~kaI1{NUU82^lfo$wnJOn zRzJ-N9O5RlW}XJAEUxnh7UXSlF+$-%dlwOXDq%9FYtRS8qKYu<1TISDlfz@hZ~EC4 z#ZN1M0tw_dqa>g`e*<>|8$NzA1(a9!=II{gPI=IP*dQ=_;#^fH6~tut`#PKYp=(8o zH-qwXU8re4YhdJ6F~cltqFqaViJ-Q_;coFYLe<;$*gLNd=6X0d?zlSNUXfH$Hr7ms zeFnwR@p(QC&^Z}Gg9#y}4pSKo!=OCM(uPntV9GJ!O5Hv!sR_5d7KFn4=Qg zLA~bd=M(P()5l2#Vp2yptKf&;!Etv_kTGn_S4VU{`w`()`&{O}g2wrr3|=Q{W3JSE zDuoHCm2sqg<7#T8MG2Ai3=Dgc?>=0#2$i?fWeB-46a_m1Y250We}P!Z1afJ=l&zrI zkE4_20eigR1^(*D^&gZAgdg`J@|iE=8~M*#G2J+M)W}P{cIr*bLY5Nxn91W(PT;DA z?oI-ygm{jrO~Pbj1CQWlMb;}22lHsI9V?X5)jdkB#HC_ZKPBIX_e3hA0+F1PGe&pZ zw8ECKxwbTvn=i6FfT64NE3dc~Wr9yESxo(hX+BTU*MG6r2)Ua)2o1;Aanq)@65;OWYS@i zjGt6SplWZ)V3HsC3;a2`?uBk?yE?>kQhfE*J0KhSnqy>_V(dzGr^VigeA*rCD;D*aQi`i{=7KXepUO$iB=i za-#D(YF>Py%!}WO73-2yR?Ld^c=^YNAt3~rJm@)E(=aWsf(k)qS0l5mE>jx6e<=?| zDPze6xBi8t$kvKa3<%uCnG-^rRz#tuldfbRsL*=}OXfjm9lm8f^|JP1mBCQ7Ai9M0 zQ%3}q?k}Rw7CQB*V#D9wqJXjetuMmgd-NInk0PDaen-e&`7vqb8M^uTCZT@elZb-@9TRGV|Y5n5sYPWX>t>?`v22J*N+(ss8( z+yxpo$cZYR%FUGKF17&6I0(D4m^I=xfaDjE4$WIw-f;sAMVkXK@B#ZgClc*WkU+ba zb#j)m-?a+{6x0C8uLL`xS4E~-96fvL%PHyP_r+uJSMrbtXD3 zKXpaTH*fogu$yv?VyN}4ZMZ)Y26o=h7`%?tmjgV+<$f*$y9CjEWeAlbt{ue>Dr_Eb zg>HJNy9tDvRkD9nLP?EE`ql;~Qw{inuHd^pYzo6j=DUvexCBXF#dD18OMDtn#O! znX%zJo24YL-A+;d{M0-1MyzT0Ex@%uV>8`^L`<=vF#z^?9=0;01>P~w#9y520wP<{ z^iim;qQdMmPl1hwc3ohS#=a{As`qCM=zp z+u9X6<$mbwPmKxYiF1RLvE@Ivx>BSZ{OsaqpU`7Omf;POcQ$vBIPd%^{1!>t z`yz?Ano>uRb#HFT`-w3EbLgb;3Y?ntesOxLa7X5<+t|Bgy`tAxOW(S>I~*3Y_{mWGN1kiOoJ( zlnroYxkDcLY1$H&)_#emS1W(+S)tOVdBL+Z`{mf0WWbk9;nU>$LM>0nogO`(<9D>FtGze41wBpxaWZ|MhU-2uKiOa52Q`Tb}l=6QB^qbbQ2tKIIe{&xUMWN z2Dp1^_%mXY^p?pu`@pE8eRHMHmKpIGJOCCDYv)n)*4Z^_pGm*QGymJl^pH!LADvO$ z9Uk10w~I2g`h%gpD_@K$BojA4CxcOgI-?KDW=QB#{tzbJ6^eAQj8j5jadTR6dew*b zNi2ZPUTzJubExD(W>5AgUxi&^1918V>;ywgu6n`a8(s=LYIL}Scr%9ge-g-MY!QVy>W99kMsDuVDHQznP*vy;K_0mdT3F<^(1{uX2l-OjZ zqUW8nC_|7w)LXnx*?*VoaxI$Y3L`CSJPp$uN5A?dkIu6|=La`8>s~m>CSP2YvvslU zZ0gc2=IU|aD$%o4_#LjaxN!k>k!YYH{6hp^Su=^t&2FZG8!HhP3`l3^x~N5#3Z-A z_Hn_=pNHKVql~kiHyoR2`YYW!@=GIa&$+he?}Yx%BuCVyj^y?U0m23b`Tmi`?vpqg+UbBrP$En1reQVTvXSLQo&-D=^AaN3k@12E}Vnt z;ZKqfyO)dr0}g_!T^Gm^d|gB3T-vZKKOCHdhe~X;G;1dxK7+vxeF%s{N7DgN%7S^U zLDhAq%@DPqiEJWvM5;>u$92E$cJ0o$lQgBn;{y{F2lji5K=L*a$@EM`V2Y# zvzjY@rbZ?Nd2Zrjf6ym-YhZsFqUt8!1?mQrOXn%UAA8Z!kaE~f5nzj?mzOfZ#s6k% z%zwUyG;&ajVD%O*mKW!{+MI&IGDjvTEM3yt=%T1jDcOiUaIg8mial9(VY|A{dRzH~ zxSO)EIDB>idfpleo4E^MlljR7t#sp)M0X@YyBL1+y&ycCv#!#2;AEnmD`~OtUvehPxu|4YkxlnB+?hPUH6!{O`nPa!G zVSRtXL;K$Q8Q@YAjxaY{vA=bZKq)bRlx9Zz@1}r*TVm#siwCm4A%6OzQ}XNm8F$mD z{yv~L3Q0-Mti#X=4gAhTisx7!)>f-=m`z-DS`}6vhKFu8bRHghK<#Tk{DIuYAYCez zlv%H2QL4e>ey;&axM=h@q41ilFE$uS<0>wG(5|^xq47GM+Sxv4`@DHPR}=`$vd-gH z8V0(eExDtlWiY+3G7F;r<1qxWVPl5eN@4}Y<0DF}&aSFIsIajDG%29y|Qqj7n}vs!4J4 zRS+|_1!6Ct(M6?y5S}l$DKjXV{FN&I`?&aNkz|TqNShn%tGd!ZPIq~T)csUZE}sMZ zw@<`pw`Blm(!JmkIq%4=w&3no8{rikJ9<~j5G85?ZV~+8#hnT}Q;&|eOZ30Fly$A! zvI*qTa|rCkfj>8Ca=sR0SY-I)L5xQUFHgbWOyR(v%FlJ;e*KX8dg*~xvz%ZaY#{$U zXq%X%Vz$_&c+Hi)@S$t`W|u*~PA~t&xo+`Y?k?B1C{rH15QU4-q~u&1Cfh#^Nga1} z4K=4o)7X_aQda(0*vVr2+b$H_$lvpG*W1VMIL_o`aF*y67??WaLi`4o$LWMbM`Mbrw=M&3e4C@i@1Kr0K{AU=E4XuQ(4L-!uNo+(|MWv|5Xd}N*POKV-Ad8_P z*4dkG_YM$L&zgGWkUk1MVE?bdGOp^=k%DpqC*S69Jn?lzvqPdADdLbaMh~|Y&3}$L zEc$2)hKaRECW9}sovag^ zR&%OcVcT1Z4qN!v39dPS!j;~JN9gm!G>o~efn82HvTQHoncEw$7eRJr&#OT zeIF0)WV?SJ{v;bX5??4o&2S1fA!!7h;z7SHFF5!A_%4ZLQy320sx6c|6Zg3ETB*UJg8w#g8MNa)sIO3y?F?VO?|$ zQ|Rj66<)Yry$oqMEzf2Ih}3ier4|b|r@Hwa?*jbesPneR3=!iCt88tQu<37k%80&% z6sIZI+6d}awB8#qN!VZ%kh*7uUbTA$E3pKL20>hL)s{0_E7|qlEOW z%(hB{6QvtgGNP!P@2HSlV`#B)IfX$0N0VlADmBO5XE=`BS_U6SK%lk1@v@tOcK_&f zRVA#RWA7Idxe2J6xY*IFf7Fa>*RN%*a5X#b+7u#~s0XD3c(MRIrQ5UM`sa@^vy#)= zBIT-w4_%#aLCBUTeHVWZGu9)ai@*DOb!)!rnH}>HQ(4=p=wI8X;Jat{%{glYHv{JX zKIv~o-wUe2zP+?fOOMg|Cb3mB+c_oC6PrRe$~Ro_$LH+-z5P&;O(r?F8k7bi*F%vS z6M1`=rrq9^n9o+VuHx5F6#dft!9N>M=LH{1K*sh_X-p#AG-*s6em?PA%k{3zmA#Fn z(bw9)X!=Z>SW!O;n&7bYGe0z|E4akY%g(4G>tz37Ta+wF<-9bpJNa9xr#(FgCOyO@ zs0)b;3E!?Jw7t7oTpi7mw8B%syJQI^dqeD@n347V1U9)=(tIHuim&CA-0xM7B1vFC%2v*h0uUjIBtv&>&(A*+-I) zWdEJ%-sgFK|J~bt-OBg-`JT@?@9ju0%pp`fNB*28bz(Q=nD9K>_N+LuSYhe6bKTf* zFQjsg(DoR0uw&oRlL>;T4hg}EyU)*UjYRdFoRs)jeG8Kf@aj{_ASa1YekieOoLHw( zGWW4c9h4j_7K}q~hEhrqltCBIojC6NRzwA5Ru|Y*!?|?JI??Ym`f9{(g<|Acj{^>CxT|>(f?WaaL zt!k<$S-O5T>C-McXB(Pg5OQQxiPkhX3tSvqK*!|2QLE3-YgzJ}xZZu?Jyu?F)>{ulO@$ZL$>>MSeUeNb!eQ*@8wc zw1?-KfvJtmt*kCeK=XY?O#ewXQ)fq+diACa3c7#G(`xm`vZ7?=UQb!VCXz$h=;lP6vf0qkzu-5c~p^X6f9cUjn5tRNMNN95 z;UYqzg}9VKNsl`J1eKK8#P*6h;01%o4CBw#Wcuu!5Em<~^Ft8GcQ7{wXP`9DI1Hl6 zj{Yu5-L8=Igw4&WJ@ty|_k&pTBN?l9s<5rLZ8@4sF&T9zA+ zX`TpU&ZQ`MC=ThQrk0we?J0)PifAxsVUABlwY!Kp&rH5T`J6xRz6h;IWG=ova6p!U z7H5`8Y8(H7h7q#Mg<^gTWHWE3u8#h=Z-uxkltr+`eGB0hHC1O_@$H093A7jjjuz`4 zSP_~+KUP8EpI&1@Ojb{m#R2nDHNUWO-yK(-`a|7uM}j2N5j!h30yfs~Ew-W$-mlP` z9;4Z)@lptMC&%{kUWYtmpE)(fiUT(n6*Jsv4%a8X{p%iGz=IaE# zm4o*b8)GI(%~`qZ|JFiYZbH=1Mojy9*l3~F_zsBe0=Z3yZXDBA52MM#Oug?V58vly z+3)1{9t1N_AV`UdSirLJSmh7ARj337 zh*}D{b%+|Y7;}}gKF=OU6yD>#On6~ia>4YKRpb`Nr@*s8yHP*f++MFf@7bZ_s7ZRy zCjv*E8iqs?YQRZu5^Uw}d~@NDHM8YmqF^%2JL(UoVwf|fst$dUzp?^KdYw;26b; zi|=Oz{WE#b3QC5AT>^u^!XlILqg0i;x6Bs}IAO*fT%g4TK7q4)SV|0gBEE&m4CA#6 zR*}SSo)7P4TPw<}>zlv1p7PZQ-WM|`w`KADVY`I0 znQ);JNt#e^gM)pkQ6#WVzpZ|IoZTzL701Evt#InO9eeNi9UdL-rkbeny3NG+v#H%iN#J)zC8stQ-@8q zINBBenWOdW1iBIL`jO^lc)uO| z?G*(-7$t=xD`ZSjH1WMS(u{MjjC5ploiontDRB(}?=ufl)#Qghj=SBxY-ydML+qa2 zIpD+tEW*XwaBrfZn(^)9!c$kjcrPU+20Pr(<`x%_nV5mdf-Cchbnwz#&Ne@OQ;RF?Qt&6!U*R_|g7rW=6zo z`IAzDxYTxNh-_A5G&^Au_WlJPpkmDLLJ8^ANy&4jiQs>MoxjnE_Er zmGnP@-@2IFd%~Xy({qWJkUs86x|~Gf0$~Fnep6xG1l7SP>lG7B%ehI9X^HtFBrjxZ9~3jS>EF*t)_iqk3@N)(vybS8?xlqE>pPBo zHn$rY)3+mVoFNNfjglZHo(77Kjtc7erON~hKCdT3^5Em7#V%v?>twmr+^${?>9|J} zOotc@_B`tj!Ow5j3I2U(Mf@iV#S?eHfv-}6oo6Om87t4$#(_g5V1tcNd(s9pTpd-0F)v52pt)n z+TaUo;dE%59!;0Go&-fG4o5ODdvL*j+jF*2JscJA@IGctxa>}~vEq!x{eZr3RELLM zE&GeZ$HCeZNYqg8H;uQrOkjt?m0W{k4PhL~%c2Z2y_|abaoyJ%&|NCL+40GF4wW~m zWJ}{!HL^VC{g^!L=HdTr)G{1SmjA07%?MO_E@&E`f6F@&?{ZkM!Ws=gnAAD<`73q6 zlb+BM*q57J?KrJnvzXYuIZ&fuhQ>SsMDZk$fC@=PBd2Od)l<6y% znr7~PdQO8glNLP>=~#!`tg4?3Rd5n~4~`U5>Xim}uN}dfJu8sT24F{=_os}PY&Z(< zT-)2(#XaBydORf6Uq}T-c_Das3t_40+Rtzx?9M zVZ`^qmeswu8{zO-0-8;CgsU|EV-Zpw(`EW=7NGQY)RTbYg*P#rQa>C&oq_%=@T}if zs@05^tiAQOURZX#`7^%RSF5vhC@PddxEy)-gplZmo-@s~h3o~PC}>la zV@k!gr$3|hq&A+5!|=Zd0O3|a)q5k8t%IRoLaeOArE1^*WN{Y8V_3!^fZAU zv8&g|mZmhbyl9bJlIj@|sB3?x&4rsg>iyl+SK0lA$&Xz><|8A3(Hge%wM%+>aws8x@Zrf_*)aRCqT1-4f*_R2jYqs?YYa86o;Q z6-3Qa(Alr;!cgefzw^RomfwIdIoPYs?qI7(z|zD_NDw1x;H*?-^Y0Qn1fG*WYMkqW zdox^2a2wlPuNw3THBg3NlxOiS-NDlsW~3f$iYR4BIo7?$>3`PuxhwcB9VCr2WGi|` zZdf4jt3Q8WdUoA?%!Fzu%8|L%$8WXu!M5#-re2?JyY~qY<`+Rd8m|bLtP^HC zobmHCyz&JRnY{-y5>R#ZFbZuSZXb1XhHv350H&y{8CtyA=f>~o@o*KCF`ojm7_5;m z(^FCF-GMRr&oIHv`uREIi(?Nr(T3OX$4)(r@@QEw*iJo=;KE2op~r;Y?;fe8BX0&| zSe@9cw@&W9kTAlbz8{Xo+zve~+60vX+1qMR5iiTshX2}vOZBi+I{#3`3hd2i1waXV z-PW}E=ZVAqo|*1hrD69v5R%1_13uWm#<&<9>t2!74!7)*u^{79e|nGfIMeSjcAs^7 z{zcf1MxcHN%5R}=6J2e*ZtgF6JR`c|nGY<<3V%m9>fWv0pww8T!;`S?#>yL0aHw&K zBzCKf#Y5wPwKo~5Bk>yzW0&|>pH!&@~ zcjRZJ=*X2bZzc=1z6VvNkec{9T_V( zQ8tGTSLbsUPTQrnUEP`77u=|)FotE47?V4JbOW4f_6xsgi zVma?-cmkD^se2_9e@h(++by#C8_N18jW5X^g1`mW@9{YVXYEXW$GAn7s-8(g|Av;` z%ZvTjOzkms-&Zmi5CCo}a0x($@WC9CK@O{D|C~oXci*AMp>LFK-WlhyVu{N_Ye0Zj zZ$(&{)~#wVut)o88KYB2ajcq6<7=t|L7L&~Ct=AujwtNW`faN2{CsxATZ0I#=iM65 zi5g2xc6g*?LqE?<`6YqoyCcmu=1_nf1p*#3-CE9sv2~|pB5VDcV0tSzWlMPbtI`UQ zC(Zvf`ThP;v~TUj3?0&=FV8}{(t>xVh?5UKkaEIu{%id^NE8#0`*~``$xzj zDV5i$r;J|so`QJh?c?tMxzHb8sqoU=AXorI$Bkyy2vNi@#;}Z!T(cU|>~iCXTICmt zbH+ZPD7D8@s@>%cU@K#X!=6opk+f~9Wo-5I9UT$T?9}$qt>Zkho!ecI=iG_SFU}}UR2?cfpopJVluV0X8G3$9H&vCR24QS#ziY1I&{I-z zy^xNq*b&7Jay^G_j@oDSYOsJZk)y3HAB!RI5IN zw58)4+iau%DYCRiG;jOs838gQ{&C_E{X@uxZ7>{ij2T|51N!cy<9T=foJu>W5Jjsp zHyG!Rl=O4T9D=Y#b4zrn^E58?3TN6e$MFce=NJ301Iub_Y~NCW4-0*idZj4!0iGWe zrsT!>@FT8;K9rd+z~`LmJE$=q!A>A6Djty7e|d|2qc3z?x-EcDSDELf^~b7Rrjn<> z7EHDfKQ^S#?`v!ewkitSyt&jB3+=MdDe|O8|6JfR8gkANf>0^Y@1(UG3Met(Q4p7fwr}%RG=B8c&AO{=b0BC3N=NHoO6Py0 zOziyv=rltUN1c91b|ORs2-c?gV$Yc$C?z%7B$Z4=+Bij|2?Zq-05!pdO?e zWh=(t-?cpRKAqPvS*=}J5dNTfMzVf8jFbK5cGrQm6YsEt<}oL^5M-rc4L|+E7GGX0 z*U?Q41z6tDUXW9PvtxsPK{V8*MyPv3ccIAbPIYTeinHmtXvxY1lMJSV)Yh~A1~mqS zVcKtWUt`NO(0UWV{ADhRNoUUY$z(>|Ml-W0ylCPu;DVzxbfrN^ZhWq2rtXz%2W|Xu z&?7$>6n?QPN3zAtboai}j1Mrxe_AUgGa88smb5-*CtP~*MC{=K1l}^$A->+SG|GAC z>#nG&EXl$91N+l=k>(hN+SwzIM>1}9Ig}1twA%Sxq+p8LLL4V z`flK95pCQwe*O&kQ2p3_v~%}75|#~%ep$Z$_?K07tGK-O>U}Gg>6)icq^~OCQ!R!3 zW#7xHOCa#<k4xdEH#4jNZUJJ_W%@2CpP9F5%_RtPD z7Xy=(Yj$r3J(-TI5V*wsFy(V(Uh)LXcuyRQ-0B8IctXpo_g@{rMLl+BTxvZHdED>4 z!o%9>U!CAc`-egjaq2VHUhWG0!h>Zex@pPJTma<)rgu9$Gqx~}T4u5+JoZbEzK(-D z-59VR@%xZV)n(eDZfKic%3yuZ`%E(Bi`FX%esI2> zi*NBk6c|Pql^t6P2)5?gsNsYgDjvrwUT2mFl_&4k>M_jsQXIEsOeg9YtVT%{(KEov zSlN)yoEqjU&`{(cxRsxC<*z!}Ta4fSo0(Bn$nEt`gSkg`t+w;d1ziL2Ib<mK1J)WE zn7WByk;g=_uV zkP+>qEA#}m)Ocj*Jm`hZ-@MA~lL}Lr+U?#EW zn2uSiyKDO2CY8#yukiYUH~xUKILA!|r{{)8w9ny4**p?IIH3 z`wzb58qZ*csk2*IW`K_5YbKJtqLl+y3WX(vEXBsiz`TxSf~~7p-4X^EawQl|PLn+} zU0((Y*Av9b(k@pwUdn(gBHL-u4%QJwM7f{gmM~DuUU17zybwEadv=t^CHa;Ie?&>< zxE(9Efx+Xidk+~$6{oSRdBq?4G=&gA0$tSOh7Z2$>x|!MU}HZnKuNL+V^$nAgsL36 z%aSh4t~5iR3iw#RW78+InIKUok>cbOT&mfj%M~39SGXi2&DB>A0K3+K@q^!!$@_u4Y0d4&ls7``a>$rl0JV|N74xD}y(-CYKB=icJdx(@O(!8D=*dug9NohLDEq$5>V? zLs4f<6#N+tnJHZ4+)I88ulFCsng<-7U76p4naMmFCvG@ze|ZRJ zWtV$Xsi2+b4EdLEA)9QC_V^|1IIKcP`Pnl4@gT>7xVG1d)tdLHD`XNyn7rg5n-*O9 zjK|6}G}D;LgQVa5j2D8~*0hA+O*7zF8`v0!wTCZHEl(Bww91#N?tD$n;Igibdi9vX z7%Y`dVp%<;dL!|R(lrCeG{?(g_=~%1(=7daocT&ykuhS$;(L+bB6LsZ)_&Yx%o7jU zYG+TuAwaw(VdW$wwo_2>u{_aS*OJQ!WTDAxiF2QzwTK#=stM9l#T@UQwU2R~gV~cC z317Aof0eAN5F!o}j!L2|ikLZ=)!yYb6+R=K2EF!UN8rvF-sq;Pqmcl44aiu%SyYTw zbp>3ru0v`J<>Bpp_I%Tlh?HUcY+uH_2q>{X8{awhI?{gq$&AE%0TgWPkYBk`5RP&V zT|?Exr*>$lTfH($n)J%L17ZRyUHmd?&%VRuEPPcgr5ZUMmG*@orGDIV^2A2{3--+X zIPRLTtOYiCtS{`#3=;W3VPtP#c1Lm46>xUCDbbP7 z!c~;k4+(X8G0EQP<}R+_<`dK4aETP2SgjWDtlw9BQmNA^-0qe55|eb%RZ~U$tW9O+ zE6HNfAb7z&)bKB)%PAsIQ-aUe5*ccO;$aUXpk}AK-t9Dd3prpoZA{Gy)=XW(*4kTj ziz;dhzjjaSp6-D4#!Pp0dKO;A97)#%O{aV%C|urioFW!ykE~q^gMxq5?W-tZ_++fT z2n!wA?(?Ysg+PN#xWmWY(K=E40ibK-1;8F54jAvXRI{@}=Cj@>*Xpio#rAWhH$s^X zNgTxj$=YDaiZo{c%Eb5j;X~JY6JeB9R`GJ`)jv&E+TJ}3rtA0zl2cSReq?%uh4I6? zwN&#!Q0KgSe>v&#LhA#@UhKilrv@d#s@w$j5SN`i8{?dyPK0qO`IiCi4GU9<;RqDGheE>k~&_h<6P4Vwzdbi)Y3=z`r}$IvVi$) z&F|hBN?P5l;kh^!6u>uVY=aad+0wVB6VzOOcjXNZmPnEj_`f3xg9O4|H!c#+TfEv+ zhdc1MvuG&~;k>acp9~-hZ(TioYT4gB8@8efj z8!k?ienQz-lO||*E)i7Wl)?4IbLf0q*|Y?Ushv!f>E1>jM@5EE{6!`*UH);}lnb|c zE)&v)s{PZ=)q3LjiN(3^mKi-IB*BXKJdu7i?Go_i;n#id&TFZx+w#D^p07i_Pc(U{ z<=wR3+G9837CKuI?_D10y0B09y<^BHiO<`#qxoO9OErVJX8(XlWSK#{xxCs&bMv2IZ#H`+L z(n#qr&VxW*%3R8%3=wq6$r{&u)hhRv8lPTn)91p+ zCC!D}9g?ll7BWdr=aInG`=j~V)c(wM`tLb);7IQFX z#i^p6v#!x@zmsg_*w^LmV^s*^wxA8<_B)`XPw$xBN&z2F++8(P_MlEsbv#njEH47K z^@wj&A4we4EEXT07f}~|$W0JGW5UK|F?f2Qhb;_J)X6xUnb(UM(zGr*BP|Sth`v{$ zh+nPzSUvXhqunX8spQD9UiV75meV6IhY~`ptXQZ$#D^h<3}NvmWscg8OJTwxRWm>g zEi~DHo`k^XcIVez@PAI)oge-s3QM2!4KNY6J=oassm|Kx?-IKwC;b}4r63rlyXQj1 zv_xD12xJonr|&?u3iVJ2(Wf$O0>7qw|5eXY?8GxJ@G<6-cPC_1D;~ovL`8^LWKVBK zu(I`LI=XlU5KUOOM z(#9^HXgQ;aga=*I6}8q}eaVM}^gaC}diW=>mT<78FWkr`dAv#OTaB^$ zugGN*D8j!Ui1Ka5vC5)sDw<3hwG@SNK-_v4`-&1W7{q<5$0q)#=n42z%0$NAbk{Si z$oa}lH}Nrb{1})0cT}*$+LM?HcQXXbTdng>2sbIEJbY;fjHeN&E=c)&MD0MZ(Iu|;1two}wx0a&q%Xy_XdUV%SkoXb=P`jqDEdeV7fj=$C%WOK_#PlGnx81=b8xJhmp$KX} zfN%B9Z~GRQMRwd~6-f)vQ2-jl>jrzc>+iE_&bA;c;6jzuk>{K`Xc+>73-mE9p{2Zc zJo^`=R8!Q=LjHbuGHchhcEVe7{9UPH>n&D!AwtKIIAP{bFodUCMmNpQ{?>FbMt4<% z?y;(|V0?kC6-~OSh)!jLv7(dfjtPX`e-F97L|OMUdf_#>s$^H~55M$L%F0^RO#ndB z3k3WOmKAwDLiyyTg(a*)dG@p^(0I+sCSB_@td+gr7#B%-zxUNBD9i!da*I@K+H?Rq zEa1uhJsyo#9~)V5u1cJxG1Om#Lk;qYJ;`89NKFf$0^D1we&3&LYqif@W!c7`ga=B! zw~}*)CG^%qZ`t%WtDoPSj9f{wswtfgaCY6v?`z`DPp*a)cs_QPn4&Bo*=(VJxPG8i zXKk*p7$xq8R^JByk`-T zSM!HbWP$yYhV+haz@aXV@^rOOKc~c~#7@KP!T|PzLUK0VVff=$n zDVrRERd-X;=|SHQFydC7ozIF;1LM$CWjo_ZL8?NPRS(12(yku!cBhdFW35c()J*QO zzUrObj^``4h*xt{bN#MhckLqGr%{hOt$r-4QW{aiy!@SnlqC6kl4?A&YSYlxBRIl~ zO^S_n`fz^VnT$G8Pwr;DgbpfIh>E9$+_|%#`X~=ceZPTD7958@j(8D&`(3Z6m}7lU z^a20+n>0jPtHXjd)*)r)i5GXy1s*Ik3YSukY2k0j85hPsLdg6K*dMU-an7jHY5_UF zp(KJM89y-7OoE0W#jGmr$5Nu*zy1(vZP^@6?CP>*@6_x7SaDlzMU=1+6Iwoe0HJs@ z9tKga#pKVEO_!6}9RGh&p|Uj_=%1> zjB)V=9DG=gAZ)LH`vie^kr3C`MvscoIoV0 zh^lG8o1jxqmte(`kcS%h9ImTPBXuqjllC)|24k&b2Y$+QKs@F zLqRG#Bs$EkA!Z~%d?xy3)tpN~)Cs`7j;<%@Oi7ns$?wwV+|N$e97HG6t}kNW@_x|g z8UOPpCLY}5zmW)_Pehq>QDhQh-7|SJH}-+m{VGBo2O^5=WD` z68=@@K>Hl^X+w|jrw`)dC%ougj^;~kr5ioK!?LX^N5#*ZJINy>_qtlIN|g$V{ZKYa z`Au>>&zYztcA$iOY(rKHRTlZ5iAYyn2_e~Bojk*cCO9!cgD&bPk4ZhP3Odzl{k@~s z9-?V~BY*a?nYy0MIw%>(*%cKo5(iwqqR`hHa1UqmN4*6nQcPj?p1lBjG}yr);EtBN z=0%YIBMJ|91{A9MQ5#}N4~Dod*Zd(C;Y>^0Z_kpB+gV|bKmICyhWU6q_Y7CPL}Em1kh~;?Q)T_#J2tXfW17&xYHC zfj;NMNQY62Fb_Z@B=C^Ejt%+l4i&|(Dj)+~E~fy>kRODZc9;QRbjL7u5}9Z2B;iAk zHaK16MZ~U=ZMFaUYwxG3qP)Iu>b|E_WU{@{YtrNND0(Pls$SSk z^Q)DXMi8mzHeKJ3-rlV4es=Ma>g{8RcpW)1&yF_2P;eD@Pyl%_t zzF<$X-Pwz=&uhPXyT?bMU?YHagxe`pmhHEk+DH%*lev(GAb9u9R6%a5gcJ_!R41>j zE4MdLyicsXh^FbzQRRRV6D7&tD;csq=J53IjD5B3j4|*QLORNO&m@q6YtxQBeuCuTFKf~&ObI8N92^FFJ8!p#3KFN3uKMJ^13 z5yhf+NgeZf7J!9fcV^^xo2GKoZX8V5gR#LS&1&O9jx%U8PC+NVXr{g64`W!Ba$(?; ze;Of~*RKnwzHsblS(&}Gx=7<1^7xMQhPs<+vH-Z7O*I+_u*>>&D9vF}<;2uP*#3SB z8gA=OH?e1;^Ka@uKP&g?^cbVMv^q9ZqtDmz#w#TNDAK}eZS}_+}wNzF!kK>Pf z%96yA2OX1%#YH0nvan9h8b{cM}6J=eV9Z zXDFyxyV^!Cut(rncL;s^O7jCgPHmiH#;PXyKuevuaI-6Oa`;nwteu!~o-Md-o>QM| zp_D)!e7-DJALdvU#CPvhK1)3MgT^^-@j4T^*#lwcLw~}V=^yy*XBg_Ty6Xw9fPXZA zsT9Uz$B>)idCltX?AAejy%5OvudFO~P*-NWa**RvOsk?oR??_5)kpJZhR^xa-Q2Yw zj)IdS3>xX&t@l02Grr3#Gw$+|su)?v)d=a@nrBjWVY=4mtHi`1J5)itQ*~NuOyf8T#IXkkQ`tIU!NmCCIZ0JO zwhJjro+aa}sQp)!M|(HZjoHUA5nt{`mFH3lt~NLc?8T5xd);;-9Z zPz8oh9jrJ>r*~Qc_r|kl8aO1)OM>jwTuvJ;P7EblDi3v!2&3ayKX)YAnKBq*QlFIa z=Vn_g;a|y)-<)!RgEg^%N;DaS5GQXYY;o(hWT1+!=r(`IV%O^DS_ICkj@j=b-6=D z`*kof^)EMVx0nn9XWrnxCjK4qGaK}xc735JBn{XjXAnPLxm3bu{LWc)yb>54r7w$$ z2+7^IAFa+?IEk^DS^H=*6b(ob`hL(elDHtQ@C43m1Z3l{#p83IoW-T4^&{Sgf$ein zWk@_9z+MS}yA<8E=m8@7+()V(E5EQdtS%&)I}PTG>WvE;=9P=V&e?uGf5^1nB*@LK_XWIDBRmJnS^b8GF zkl?v}q#*uk(Rs^ByQTm+_t}QPWO%&CE#d;TjgjX z?9jPZ@}9);6Hy(cPB;34pD!CWOKPP5Q5#V8OH-!PTLXXnJF?jzztq7|oQ%eRY){2B zzJ{XIVIPC+`q#R_buwEOcChT6Kr|$eK*$ad_@Qp1{1R~`>LcI4D{9_{Bc-j}onB8# z198YLLq&Y&UZi+7sVGMOSn2-cXdLNb@TaEhuT^@Fx5GQC1zte=oMmBBr(5V_JOS5z_RU(v1 zbt7gqx)FJc8m+VZAa)M{LWn1f!qdkgpmAneBwiEluQ^HMAU+jWQ;7br9AM15o1J^o z?SeDeuA+)H%5%@-e#r*{6s+^Shw)Dn={s=?aBl#t?1$Z?Dd!<1m^68XEfe~VP#1;E zm#6#SST$gji;?7m8|DKuIg;|!GXx-W5MO#n6&a{FQ<(uCFHp?ylVluiR>_rol)4IF za|+~E^YEFt#a?;i>0jE_dk<@r`2IAxer!*1uK1RP@A(b1x*zq`Pp|Llo*sV9rvxwE z_Y&dYsh4sq=$|HOtS5Y$WY2ockyoSSo9^wXd|aQ@esj+RpiLXr#9E4*2F{E{)Vzfm za256;804d&4rAn7rw#VO=a-Xr(x_qV=I5es_ z)igd5yyE{}Nz>Mq;i#b9&sfQNpP=E}IsSRxL^o2TBiYRu1@LQeMQ31GXF9!oQa3L- z_4KfT_A(Mgc~9w-p`$6-lA+omRys!uo5n4)=OeFN5azeXlCOgFU|$64qyb9dnw4+O z*LXXhzLbXJg+UiU{1BtRqyJK}8w`kv`i(LiwHjatW;@JeB&R4O=WEg!w3 z<|Z&1isEof6_C4_RB#Cx;3n9geRh=5RP7Cp#l#^TwLZE^sHX3Fo+JC%H4Ft36v^kn z`U!zKG1hf1{O$5C{Hh5^T1ClCe+WPB^6t)eH+O#L4|3onSZ^YKUpuYJ}7u#Hfbmz+vy$g*=j`+W= zsz_@#P%Lsj#7#-dG@bhjd~JO!aYK`Or!4ZhB;(H0RQK|Ys}i2CLkgG}&0Dv*(eP81 z+tEK*HB$Pn;XBLxEV&s6f8XFxG*{RbF31CJ7n%TsWs}E5t;ao`$rJvj~z_y1ARBy3nN=^}B%m{WR?_g)^9cT%$Pu zcvNp@;D<_n-JV#IW1ld=Bzpld8zve&%a9)-XytxMBp}6HcLeR-aL27nx=Zhrgo=}; z!)Cm>eVyx1#X+6)Bh3d?CHN{Mnlwi)@v$Zs+BQr=X?2*glVHtbw8nl zC(Ufs@M8R^O$2K2)3k{AjDLY!(Jgcf*7O_<5eL)1M`7>J9O1yj3|}qcceU2Q=Fl2% zEi+lI_#THYtF$FYtu;nRy9v{b;G*&s9eH3m+|Xwr|8UWk>F%ijz_wKkQs&amjWc~d z2jTM71kLr~>n`oFYJIl%&fFu7YOL7$xt2_@rJD6G9S@MeM=+9X9*!J>zDOT+|9X>N zJXx_UYOHa7#ghA}J@<~~QaGrZ0x^Qk1aotRX;9FATdog!Gv`KG_tm;6ork4JoIB$G z0Q>oQ`!s(040(GLoDvV){6zp_+Eym66cDA|b$ca6gbAKT?YaM(q4^1)Hgx|Tp@j(> z->Jt18~Dcpl>iUIC5DA-rmW`t%Dq@KL5KsOrABzfo~CO5R;dn^(ZHZ#fAQ*WJ}>2i z_?4Gmcph;}Fhgfkaku(=U|)BAv;5k>_w!(T_khl>J;yqRzX^2tdQuyucoXeun zh}hvsT_+9KCYY_-ujF!HB$SB;L&kgPU$w95d*f!_^Tr4a-D`)5+n6wEl~Yj{e};Sv?nZPH+^nV0M=#ZBxQOv~(Lgw%C|meS{qq;e=IW zrDC+UBS@i3f^cGngS^v&lWrcUHm)=ac;x?nB*_VO{Zu-o5;f8_te;P&94n42zmix3 z399s6if~Oxp~F((UR0QicjXidLp}PCms9l)onQQ6QvqG{j`pk8R~+kci|5tog>+=X z_n0G0af;Nh4%@}kyG4rX*;u^qcNqF^b=YfOWzl_lWZ?NRTxzhX!-KXaNo`($HDPA& z{XXW|{XIiDM8uv@+_NE;bR%Og=36)`req3&3uyJ3pmgiP>|EM7zkDtciNbxBxS0rz z?)Qr6kFRnwr#iLwSlkKZbo2{BA+#rL9LW5gw|H>_5;x&X)U&|E$0fmh{Kn6o>r1*A z^tg{l<2eJZ+U!n~b4pLF@of8Z2H;YyC_{pkr%$buX+4+Nlm6G*0#B1G>Z$s;OSkqP z;>i@#vi4hB8B>P{F@6?KruXZicFn?R15hZ zwaRR#=;cxjuP!1aA07re>xCN97$ga_IMzJVFJElpI$-tXR|^PS@MkkS)0P z?90J{s>fe^fio!{lLvOwxoMVF7m%a%ez67SX)&?OjS7s=EeMDPA6LDqfk=cUe5p#r zMVqQrljvlKJGfYRwd+(RrMg4JBQSe@N{k6pf{*J$^63)0FMnJpn%UaFW_>H>M~HH@DbL|jxJ>r zIS3Y|k&npH!a}i-oxv+ew?hZ~z?PwUm&r16YOf3|2NRaXtI^t19kYt>TI$ z2)yjmDZ$DCxI8k#P_ph;P2+M-AZFdzS=T@jX_I{E|F8ieJzFp9&G$>6SVxR1EppwM z>iZuZ$*|U_JTpW8H5VF8t=)fa92C**5r^*J7p;F$6Y#wJUOKiCP*$@wvw1R(BRb4#r*mYsWY9-1@iO69$Lu>` zIZX>FX(V3+Vz#RCIK-k~E=`Mw<=3`vtHSmO!29!un49>_Rl=QwB#gNE2^M{#ijrsn zMyO<>dvI&1ISt=#po8R2GrRk8dKi*pyj#)hOEh|>$U~+W{<7~JNpZS8sPe$Zs(0nW zmkGhOmUSj{qFj9}A@pOWk|yg|dk&&VwwX)89qw8UFvq_BjSi>Rrjm6ah{CtE0B*0JwFzK8Qhv}B9fR1q8n+37A3x4^wn|7SVy0@`4!p-1MoYe!W9UT^EonX8`9D$_V=&yMTev4YL;76j8bO^U{yH9AZ$uJL}&6;ZTC45H5Lm(BEb1gT?zwu`DDcp{Y z5s5Axxw+3o7X;0~xG&ds7oeK1LjzhS%<*tLg11f^t`@vH)Uke38{r#P&NAV-67r_; zFH|x7Rs6d?&)p$KSR^(1QVqM%MDCx)+MKt9qLe81=d>+&iCP+|#kVp84n05^_N?lf z_OI^$;`7{mGe;xlQ&~yZq<=N(YkhI-sCi&xQc;*1N)@ahh6}0p-AZ&27Ps)9xVP*3 zSYU;{qIX?L;*;_95sTeGvu>G=+*=nf&E<6kBy-o1J^V7c4bY5$EiBD&k&Zb!(LQu= zTfiKExlVYK%_Ck%_*SAKo_*N+>UX{fn?94@L#>Ijft@Q+%aS?YISlK`{EZBK=UGz2Z=LlxF;n2>#420 z6>H%=Bg>dW;C*Beo9zfgtv#%rN)3=xyyIrO)>wx*znqW@+9i#2E?{D|?ZZ5j7<3_y z?U1SqmXUlGkbJ7aOofd{568++vQG?p$~ZcSM9uWM!Co?0!K1D$#G4Bfd6_PIZLU1V zMSxF>VjU>5Vc@xJ1zK-19ANRDAwl*}oboe4Sqq_|xKzH{V1y)DTtq)!){o&dRVK8Z zZP(t11z}_b?=YwXB^84svDo&Vbfiq1VqAnOwHF{* zNEnM$<%>EQvRmjIu%=K`d}R<4R2{@PI$e#_GujE~0FzrwZ0op_o0dr5mfu@~A0(!Y z+odRbiy|a9KDZaU9&33vIKX%H0-|lOfLKmEcO5UgoV+tF1)^YZW`gnuu7yEUn;VZ_ zI+5(|G}>IGQkxa20vF`BoP`rdqOBC~Hq%XL90ocq2#W&LdeX4d?KDITrH(c`X&8+f zB}s#LIYVT=S{l^>ns0$h0L8HY1+-RK>h!W%ELC4yiY-jR&3wv*G%z&UiB4q%O`hM* zPqkcX8ujqCIy1lSlUDy}lSh}^0m$e8l-&5l&2cUAw zA?;}$#PnBB=^IAK;-^-I5;}n>!w&v?+}clTf!=&k^s+q<4?*V&crwx}Fb?;61{%&K zNiFlqbwje|!DVYC>dbae?My^Fot;?SoWbr*159eZjB=ssqhC%S^!QNvTe{YbC*YU! zY4Wd$8HF=WzGRm4hW|p=%?fs)9mJ6)3-?>o>3w*?9imh_s^sMpHX-v5Lt?1(TNZv! zsp`?!8bUSa&749*QM{9t_b^r8-QrbYfx`Rt?Z#9`5kW%wWwE_0PzY*vD4V@KXG~!I z_OeCoD9=NBa?0^;i)mf@o-o=^OSukc+i=uE_nm27UA1yig0+zTwd5Iaja8jCJAp-Z z`jo?OMY7wthyEIwTlM+(;2?bg0G#h<4}pcU@!c=09A^6!9q>dM+V5B^dN2@Ge{1QA z!&dJ@s>(nOoz-z|x#M#~oY=i3gg(Bycz^5f^E_=a(i*>#5Cqzu@w>_Aid4^Z&jZwv z2Vo0GkClqH2EDu`r=wJMa%#}FQa!xYd-y}~E zfZ%=6ej(<+aw0&8K8NgDjk0dak7FD>puIJ@8Jekg9e`|^1}h7-LC$iMkEtJ5qkvj1 z@)3yeStJASkaw-bQ1h1}e%W-qKF-wruk`ij^=#cLSANT*j~;bUM_^bH3(qG^OOCET zY&9NPZp{x|xoWy(c1yOeM&33Pl1InBq(1GHw49USDOHZ|+yQcT;;sNeVYau9>+Dbi)smL@}JlYBf$Mpj*BTbej-KE zbibL2ujlP*`d9`^W!ZSkQo)bPmc`H#2Zo{!CsB${3Kfj`-7aW! zfLww{&qH8?iN;@wlJD$5++HHy-7i2m^-*d))6|8KO*eYP0r<3|6>VoyNFQq@;*n~X z3qnywA1v*q>M z?EIp|Z^`Ov=z+>SiUR8!3ZMFqjPMt-bM8WO zz+d`DTIam^e$cb@tFA?Ig3$NvLh}udqL!P>OJkV-G5*yE$to%ZrxpB}$3cQMZ{YnS zAnw6Er1LFJuQA%()Y3rUBJZZxi+LNb7Z>vptrDZM4N;eF%~{xP_ReyM z4(Z!%c>Vr_%Q@HO2Ac<;tljFW(&qcgG>xT?20GQZpW&9@3$=|O$7y{C`F1Opi%_|q<2($N9j_6gn&p@>Am+R9YjECAT$-}2!twzfJ*NI zV(8o%_xa8}sa<41>X{8(rfBQ=o6C5wLctH`9Y{HNF&Q^&s(Y5n*i`wDry>26?Ze~$-mW_kDaVYouJj?2aJ!R zrNjn3-uPGvfm0${!WYGnAZYr2aHaSyH>93`Otwjc2~{^p$DWw1Lo-Q?&ZxMXH=FDZ;acuVBNjRURfaMHYjBFoH} zE=3~;_ly!_T78M5Y7z7vqwdh#?g;k2PmsC6P?A!#wyZoBNA&QLvL+2sKdBx)K3mVH z?bj~+1nUSdx!W)5{XNW<-DN%2K+;j!VJmyE573|0KH6hZxka`AsM==#5@$FzDw=$B z5BE(@_7=$Goo!Gj*#@&tr0CO}N8MCQwPAwW&mlQwEK=-Z_J<1$SvT>Nr&BHl=Uw~n z@L#5OQm@$>cW5>Bq|5P1_bJoHmUkq4aYxKFhLtXfW#QatY_CR)n4R`n|F&8c;QF!x zDcBZU>Rhn4-kHxmsQ(7{zU2P=rE!CY%`q#Q>eKh|Onb>DrxW_{r)jub#LeL|1>tPd z`6agVZdGtw+Psf4GCs7)R=Y6%sRuq5`3wIpJ3Fx8bWkWNjcKWf05-O8G}Y}!p2$RV zapTHbW~KO;4rFBtp>fu!k(nC5#8gnJ@CQwSfvN4O|#{ zZ&zBbq1)oaz}%$ju<1xU_B!n%NGR37rR+MBW0Zv5rT%xlv|Yeo2N7J4eXzX?SapV_v>IQB_Fg$07AQ#oq)z~7Fc&%vqpZJpe-x=czN1VRA{mk9?=2?QKK&CuUC zG~jKWryG+mh+E)fQ?VY>K{1j)>zSQ>ZLHup?U9G$K3$_4f(ZGTIHLKHIqUD4Gn`y> z{(85iY!|-44E_BnyM^NsX~XpmibHa}3`KsfoTXV&? z6-t^M?9sJ6^zd0eP3gFBp2^r(E?#mh&_&~Hw8DGoU4FRKr4WIkhoAj z#TxD2vb(ma@*nZL)_N_^=Z*0+KWGXCp6!;{N)_{Tt<}@`ev>Faad<*Oi+e!-;ciQw zq2@T8=ODX{JxNZVcwLl36m#KOs4qQ!^g^2Tzc!O1V-lg^M=mc12R7b zE(0pOF1?SlLju<8ZQaf`oI@HIzzW&-Y7B12$DYqgvkVjsXQ{R_h0tvtfkSO|6uHv_ zNo=WAMt-H0-z@j4e%8IFk9+h;_g*zdZ0SVb^9DcaZ(mFU>R<#WV$d_Q&DP0|uBFD^ z4{O~ZL8jSi05urw9p^w6RsV*3OjQ_qX|z;$e!V+`=Q)b={Yu!XqZ7F=|1``oE=E;n z&uS(8?%VHLy=_Gett|>wySSn0-=svq`?$Ke9Gbsm>wy&i>4`a#Zj19X%ca;4lJW&F<>2X>6D*lhV&@tC|F)xOa zq>l2M&zcbu{7>iPM6D!rIME9r$Pr4M;1mcCRgdF##QGy_^cdU^dwNP1{3aWLU$}EA0YD6>tpJdx# zq^d%5ZwacKIce*W#&xmxm+~15QEB%dzal4hA}c0;_$j)?{8c-e@(N+t{bUlM{|-ov z5J3kmn4#}eAj7`PiY)v{XnD?fqNmF-3Hd*AZ1#}GXTB-)stDj31eX$)A(^U`zN?R( zBWpsk!J(M}H@9%aOE;OU$w*F=?SrXP#B}KtgH1xyU~peaf-Hei=lJ%R{+p5~$_T1C zonerjGzztB4mDsU0rOVng4k75-uABoW7^rVWsxmWhT30elG0#5B27KDeHHlYK!}!z zXEH^6eTE8fb^<&PbRbT=)#Ijc2)C3+U1KtGWVll?vFV01AO&n1U%1%o>&;ipEKqS} zh4G8`avA#;Yevs!@C*5Z7i@Ug*pi+$zqZO!ECr;1b|ZdH#9y@IKW~piltba@O+6fA zC!YXE&f!SD$}fuWvE^Dhb}&m;ro}^u!}Jemj}BSxXb%~5A3CB(#LQ+=@e)xhD#Yn9 zOE=Mgizv+Et}cGHJoJ-+lM1U2E(!t#a#E1DI08nmDPNRc;%;5~y=tY5xD4q4knAEk z)fu@!Yh5>b_ruumXYXc6SYX?k*2*%Pp*CcbgG{iDesu(u@<1IlGLuQ}!#xYl_?6IO zNsa%H$iGL-)6+F+WBqriY4C9PETb7ubgbXIx^sS4GPU9Y9bu~VfBl@wmdoC=Q-Ef3 zw26N*aGP_}*Ys!}2CLDs)ZJGv;Mpj=7M+2`?vo%@*$vPg+O4Hrof0BRP7)fu zBl&DWNy;4PVm3^OSmng;jcYx>Z`#w~Bi{+NALb(AUU`co(pW=Ac`O`JbUsKKUQ_VD z6}AaT+xA2*D4eN52W4U%D?<>rO{v`PpIVt5=)D2)r2JMmLLYIXCWj;Evw$11^*%GI z#8V^{r;1YbTWJT+67(8!G(FrCkTdiE+RaNItt(&w_e;e-1Ul3tu z8{U#%Qb;)fs_pHTtlVc3|;ZI$};0L);`2(08IT-NK9BdT# z^C3z3sBE#0?=o@!K3)w5>?-YuqylS6zRbyIY1DX5ZDMi4DFr`8YjjDq02SHHwqWFE z8`Ktg%T4^#vj>mrqs+sO>3_7V-u`dNAqQSiJ7QNQU1#$Zd;<}ub+R}LBk55G&)q=p zq+t3)MOv;FMk-f+dYrQJHP10ZDTuy0fqy*R7;4k?Bo%fptaW7iA^Emx;&)Eug*a>M z>WA33H{aBr8#GU2;>9R0@g=Y&O`L@Yz*K56HB*bX@}PvBaQCAqx6`Bn34W2J(i<6Gw#=USDM$$|+;npbtmovBq4FOmZ32vOr^WEs{m z1MGOLW0RkgFhffD>y+?CAx!As?1XQyHm)W~v7t@M9lv|t`==SVB)@MQ|D7}E5;UaU zlGCTnuYiExv9kY~&WM)rL6V6zy18}b>zEbFO|?yAIMUM7BN%}fIX|`hXUqE)rtt!P zpk8m=0N=7&b@x1YhG06*GQs9fZ1%mPKC3i z*gy1r@V32|ICloAbuOsQtzjP&^_$lB(uSde5wg@6aQ~nu?w_Tlw#Uif1r7iV-y*u4l9pZcI1`(2-ghwDcklWyZ&f$Q*=d0 zRjai`8jr>+nT8^6sMoMyxM7uz{!U)aP!A}Ws)X$gmnPSg0SNBcpjg7Gzt~-58{(f3 z{dZ+?4r*I2wpG21=^2dI2Ha7;n{rCX{7b#LVG+=Mu>85AUT7%$pRh=bwM)FD~g}{7MQGi6|^qg zW2eJoGJKlHXriC-J>*JhEA4o78vV@spE#y`_=iBF$;U4|d!CZsABsw2dQdcyR0tU$ z%2u`4GeRq$vSDI4j%0OUBDd^DIO)A$e1f7vooLlxO#TP$c@w6kpy4n3=64``zVO0` z91!r*Or3&tq{8QI@(g?5cuX<;st&bqThxwbGBOo@tPN{)pvLD_B6X_Z{_zh1z7 ze^qhRds4DXlHu)DK1{@^I__;RSsj!`3@Ux$^Zafknb2VjBK?K zZWf_M3%oYV_;&Ev_+*i(6kiG4Z^VNU=%u2x;nI#7{Zh$RkvhuJWsuASm( zn^|$3*PikYNF+uth@dq$Ld*33En~&b!Pu|x&il>_v~XeIvm#oQd#E9J<$b4uG%2F| zs$l_v*{6DGy^BLVWhNIYT=RepQ}s!g__#X1q81ca{5lOBI3chSe{DQTZi9S53GB7{_gJ6xdTRR& zhSE#(s(cAEw^->^N)v-&ews#t{qoH#`;%eP*@fg&?+b(8_CDiKh7#6?Hwm|(m!u&N zz@;GUhARYEru;#}t>HU$dWr|>%>BKJ{7<`K_$Q)JY6ByC`jYL*yVSo&vp1v^ z!yJ+AFc{bEIE>K_V2=**m_pBf`X)q$|L&vAw&N3`R8~$GjAr>5K*GftcURhcD?DO7hP18n%{R$ZTA?4e%^mW`P{F-#K2rJ|~mH$S5b=K=s{UC#U|CxlJyI=H*<2xi9GGVO$YK@jynbGH(-qW)>Lz4`b8hP)6oE=j!9R zlX80^`sZ^OIOo3dv;w;9Q=SntXlh0+Z9vMg(tZJ-8p?Y@TNQ2Ud2q=JZ;`Lq<6)2_m z=*2ac8G)Sla!($U{1>UG1TM56`&JHBzH-eEPGyMxB`u~X1CuL+ulZ^{O2JRE2d>q@ z(20`$&sq|@0M#a6EG#b~Ml`Y8`w=4Ogxiysn(*oT&)Jf=P!Lc`NHDo39&FuS(P)%K<`!=WD7`pJr-Bs^ZpAzOx=h_Pza;oEqK5Rw98>Em9){$@zFKU2f z`~r+`woVQxi3C!i6xT+_P^f=;6pRQfcIA5*i-Y?G&>4CAfo!$4z~e1wNMJU6;zcK> z2BNxI1yq;=-48wgpZUR>sJlAahv&2jV_$5gD3`VztJM}hN@=)cJ1b~qFGgxUi>u&o z0dbRjI|o2~S<6VN8B8)JVrwRDMpzJ!~J zAKw`jz$JAl#-N}F${%mg(oQ{bYeBq^oGvjC?pi7EOA>stAH}YdIc+TDEC`8buA|2% zl_jZ1Yyq3T@4NQatvShfE?zlkr2bvc&wEN?4oG&v`VjxND#eD?BnO6g+EPbCGQk<{AFJQZy?e4bbXsx=7UymXZx)V??^bbW z99=NX0xM-7Het_IQE$QQPOX|RH{7sJ+&rzzaFr_v=v>forNf_sL@rI3e+sx%f9IT6 z%YMOK{8mgqQ?>(X6UsZ^Piy2JZk~vC1wJcH+VgY+r*pO7s=zk_>4FTa&e;U)uOldX zTRP&$uk**7clAato7(f$Fu~YBOoPT~N=`B~FYevKsOC?1a`8TIu%!BvjO>o;WNdGJ z3Lrx2tvDeOLK-!6_d#y$kq!V{Uen?~RWj~nU*Q5U{&12FU>Q75Y)Vr6pFG7NSL{6=BbkEEC1+E}v+V-57-xpiolJ)5q*qlxN0}%GT zrnL~Cto_da%69G$`BP-+tKFT9HWX=?|qixOG3G5_>E{N zRfu(jzqx}^v{iaev`PrX0SxQ8Y$Q5d^wb2rkQ4`+&t9Z_<+Q)+dOyc@j6YY%$XyZ`qh1uy)+H)Qv2tB&;01V~@9k#>0BoA`3!4;K=XH+V;H9)!26 zse0MhbW%Q+^I3&BA|Va2#y|s+#+}d<5`xH$I8WOWLh%G90%@62b?=wR=p*Ba<6)wv z*?+mKC#qCn3*EA-(>$alSPB_rE~xs+XsCJ@$XczC$#&2+dAH!^QCe)skCDG_{_z4H z`nEl@BBTL{PH}HZ=hZ5nmdGJ;4U#;ut7;WuN|=@vA+$ui4kL(87x4F ztC#t%REYbO=zvO9yzjSRI@hJmR5A%&D}$_&L!-^xMGCFqh}IcumguKh(BBnpnrxft zxn%(z{F)_aMnV4D>GXq5sJq3q*i+?rIHepJG93S9_@C?U7n&YYBDlnBoMJDDew?uy??{SyIo<3C#I=7yNm7PR$D2(H_{$x#3c&RYJ1l@n{wER_V(55WU)7xL%K_?y{Y`K z{N23=(Kss=YbRrD>84Kg!8gz(OUVWDa{-qS_ewsn9{PInlEH`*s`)VIAeY!WpB$un z`IuyNzup+x+F>b&^5n(%c-0iYHddK{e?gg5O=5~Dy zw3D|$Sk=i<%sB>prN_4;bRr@9MB|$ZU->P05t_av{q@=eeP1PnUo{NWSBY$99O%yZ zbC9PoJJpL0#|o*MlyA@co1z4T?C;yA7TvV?6RAQx{?{*%R|ANp%Yv$Q?V3_8KSw94k zltA<%$VV8{%@V^9LU@rVPOSQWR2@lyBJuODcBoB+!GjikwQBjfd#?v?**32;A1yIt zF?JVTm$z2`{3jSe-}`22|9^iB83>8!UDxw&zOBFPwXXC*@8&2CF1|X+8cX@nt2rhV z=2OdfuBoicldChD+C<-nLM$WpOUr|1Gs^lrh3=n|e-BOAK<(%q39=2|e+HUvb#GM= zky6A0k#k%TjKcq_%F2N4^5Rod!P#%1mZvxt zM~6=h`=SA33D#IcxWUaj6z`ygOQwn(s{fk~fa z*w*8yFWy(+W-sSSGO<<#r)S;}D-HhrP9UIw`ffz?VOI+}wko8v2v4C~D5xxt_U0|- zlVQPRLR++~btCZO8_$1KwR5pRI`(-4V~5>9X!cNtBYJ{&y-uRJq)5QBX7u3z>GED&H zT4(L_t97YCCh%ntt48HN*yaBgN+ocmKiQ*p&~tuqcQyViXQivcZX5J*4u7`otJ1}0 zebf?Zm|K_=?kn5*(I-aZNKH08E?me~?QJ@KM)~546p1ZYIs+It!F?9KxWEQ+rk=YD zFRwF+3t9MiL^A9-e&OnA1L`g-^+gC?i{NOml11IcXdb6n+@SDN!%`+(@r5== zj**=*j7XEgq(_#6D>h$F>${Zd`-K+&uF+BfeUAoj&f46py~m)X+Wwau7z-#D3&3ye zZl&IC3EcZl=EIg{E`mGHzi~xr}dv67^BnzK}20+<5@U()PGX|JnUn zq73izmzNzEEy1$^1cX(JU!slODHC!692iQlm|gwtaeOPdkM#qfPvBCl5c76HrMg;q> zB7g5e@M|MLqXSGs>Q1$snGC;;Av;zt$yyfG`Z4E6R{}{-h0fkos3vY>q=>Ka2(%rG zDiGRW4x~`#dnOJZ#_!7j8n&&xfTiP!` zJ>zqO2B+jn1!;g0qaIfilenM~s#k#-8`ki+b#v4Ge;%YrMVs$gc#4ew|EGu*7Lj%X zluM~U-P+CL!7xJ78TkR{0+{_Crykskw1hWt1jvrh$PX_`SH=xUWVd`3EU)wc`mdRa zW$lY$OnN=00C<*2blKEp(2d%Z8wKvI54(|jD+e5rpxq05mc9VAt8QFo`6O;J^oA3=Cb zX6P>Kdft>5eMIY0JmF#Z?*KfF2qq#LyRJmXTdnt|4-TwcJm3;8Wn&d; z_txE-n80&Ek>Bc@<@7*Dsf zz1bd;sn-vJV`KtUcU_Vm#P=V}1nwgtE=!@+!@KzPzU$##n?zrdQF;@~GCPtn7JzV`zB{&Qiq&G|^(}2)K8sg-|*_ zi#huJieoP;cN=81ubzSfi^;%xr5luJku4BDy)l6WJn&6u0SoRdK?vz#mI2A)hk}CT3C{rk#`^7a(7dsl}aN5T$Y=Y?GmsYh-lz=?qceP|fXoRr7>so>&kduZu~5x7_Rc_oo(Xg~^e` zyY`~Zv*DsU%L^VtJI&Pm_rb6E|0@(=O$*)D3QC&#AQg?q zn;~pe5Nv|oE&K;FftGxpWIUPSVlIsG(~aFm5iTXx(Kri3B8FB>{U{i*7a|)*p?HoL z>w9IDF?J1Fb2th8J9ja?znXG;C_A82tKJP)rguVDIf9Bg(ZsU9o}@JFJMu~KgPwk3 zKESio(aUT0MBPYzC#s_UYp(^U6V4`%YtW_oh9@%lWN>?fiAZ(u3}tG%pci2Y>ep@nLGC8tk6=l(f$5pc=aB zqd6+Ndf2{CW2wg$IeVZPf%skXmG0fVr^G+-E(L$LJY-7Mg%Af6zmwCMxspg;sqGW% z1D8qMVfucjdinA)5f;8llkx{%LTR=y@T-sz^$Pw>W#>IGpK|$+i(=r(=JNBW@5!Q? z^wo^8rGaT;)W5u)py{eXZpV`+lFO(*zz9v*K8Ps)NzZ+8IYtZicTm?EY{X>Z1QA$b zg5(A}o>Ljh3*E7z(FP z@31w8<*w8LKu>QLL_M0so|>>yK(SKh?M4H}axX_bxK+23Ii*X9@K! z(B`Y#xSE3O;Id10?_Rj^vy1S|MB&%Jf@{H-QA7NgdUhPuM|HVenD~9)S>84($bbYL zv~L}5iK!4~JA5!R$w`B2`Mp3WY5np=$ez%OQYjq5pnuE~_t#bO;zDQjgV%zX?YQz! z;hLDZ+ zDVfVi+y9GtTZg4{x8t=b-JCApbLmHBEXQ)9LXm`ApZc#m7N3G%GqZo0aeDm`9XYmJ zdeQY&(#)rCd_tK&J!*l!koyEu4-e1MSvO`j+%f?70LhxqaP19x&bGr%A&eQrz@a9y zyE0GxlghifjMlGjnbJLr9CcxCf78EBuWJHZp#J~coblb8C_uOD1PpHQf?PPpyDD$x z@q0(>-L?$D9(4A0RjhYa{&$ZeudrW6ABDcG)h8H%@3-;g{gyZKR50<687E3FNFnKj zZ)P-EWSsH2f@n;rA2jhY2A0p5nLgak1vAr&R6Sbl$aSNK+f2ndVnfO(`_j!{fNgKd za$vq>P{e$vu4u3LQ1$Iq*47*`P_>>6+ZMs3w>^Qy1+J-(pWm>vfo4obR@xacWIaYm zta_+&rMG4NQ&zEfklz-76cAG57IiM-XJ!EIhwyW~A`aP>jPJPQ4Mz=*{kunFc~XI~ z5$FQpTWywdXk7(^Q#4)b7lw))hYM9p86CMsY;l$i^kV!ZP#%=_nyN|ud$eWE!D zO3&F}^0h&vvgtODzjjCjL@Mv>1_C=WA~&Ke_w$W$60ADRgqQc*Y$K+;#yBXr2kvte`L1+E;dYK__Ht-)>h=%3G*D ze1^S}finrRPE#m=tTT2q@2B3+H$JnghXUB|MlL0pX=e$-EQ`;RSHcjy?|0gHI%X0U zXpv2nCWU8Arky``$w`}4_2V6jx|VI27Pd^ixn_>97@9_h>FKxU1iS-vQ1-IR4T8M1 znd0rKdpZAaleiXdRvQk&vb)j{Q(z8s6ZKEL+|)6AR|T-@miE$%p8iu51qKYvLd~jB zwsp#jhHJYGWlTu4{48l`(cch58mX16jPPPeKYN$HOx9yAdl#>Y5C~P)Q3rK;8p9bn zE#5)F)08!NS|~qyd=B_;(>j5=^-3%3?G&pQOJ%zL)4ffIKyd>vc2q7JG+gTZfR}an zDewpan(e^qlMC;A6I-9}Y88u$3tl$F*Bl7rY(|Zk!45n-atDpoz5mvZ7(AA^YAB*_ z3Q$7X4hO|mN2}F~EU~zHYS14QUFAb_$fVV2%m^DIaxe=2Wm`Nzs#DHEtzD|$=BYf9ww$QtLe&%#%(>_+>jFhWH@cmG^K>~ z7z+fwX)-EoE@_4>M>Wv~ty|Y{ZQeD;z~tyiVbGF@!C@hqV#m*`q8Q^HOQOMeL=-Fm z?iA)BFws8+$!aH`%VM)4PyIS)4K+9r1zr!#wd)!9W2Cc#j;i3<@s#2qs&D93`OwjvZB0uCy!iPsfy3=j3NO zQJ-}`jAz&Tj^5^=5}%G}T+Th?gaJRbzk`>TKfEp7i7|7lw`4SdOQS?hh5vN<&X1Fi zx<1m-5U#YoPE#Y2*C?%l@=7JDsMj#r4ui-|6%_9At{5nxr5)S6N(=9G!JW4+!BDE; z^udyv0E&HapsKtmVRoRi##Vy9MGua;xOU7 zRb)nbX!FWp)~@EzD5n#;g?Hdf>MK};IBdM(K%et#%2!-JJhki2ma+z_{E-SnkWda- zIVZ+uhvoIm@w^GBk%K;Fd3J3U>lbC>oi?@>s)R!*@61)45a_wTzG_+jA1pc#z(Ec6 zkY1$^^A{yABv9<)3Gz#4@;elgS8^ERc*78^Q&W^6aqBnFOT>Lh#MyolFuFJ3itiB* zI=iSo>QXW}#*s99>S5M3xo+>?mVe&d?tcSt{;Rq#lHU=19QM?$Lv0-(d!l8F;1fMj@Z#qW&?pxZT|qxPv*|MYbAA2+%*-+`Tp?V$B_RC z)DZ^e>gJ~)AgFhVTx0pNb^40^AO8PHz5ZaQqQYJ z$*PE;rzuUOp@@Cj_zCp-51unV3EbAqKN5o89$8IY!}e3ji8_kCf4}DmgM|QNm_Fwj zK7Xt{LMNxe2YKi8{PO4chHnOQWB5j$+P1-|rA!Y~NF#)Y6kMQFKFfcxB?r^t4JVkxs6cm`-0pWRk;JAt8yS^T%fPSuRo2dUbi6|g)K?+eUwtn=)yfOa z`Bbn-SVGO)B^;gs*jzWlUD+=H-81qBG6_=#p{$lQUL3xA-W;4IPk75+S!QI?coaHH zHNr|OdsYnPB@>k}ynht$Qbd}e7?^CJ-%RGn7CS!iYjDK@2Aw`rR?ZR%ftpI?U$zDK z%AfvI|+j@{o95U$AdP`S1&DdL3KlXW#$lHnbLkq;C0PohH-i&Czvey@jx1C_V2D?d>YSP}!gLZN%v&Vlbhz z1ea8#wZqn2)cMoc`O;6%A_zS|Lj5RUfb!f6MNHQmok5K39DRUvGgh9eV$JebhR1&@ zzPw@^YBq)u~85u8K=gtiR>`nAKN}-Y(^u!)_o4maDd}N zI=4K8g2K+?4YI{j71hvsy_NWz(fa ze$tynDmYj->I`inu$PQI=AUy>y|75M7!l*dlB41Zov*J7ms zq)mto>V}cD59gMV&4P$SRyGcE=wo8!Pj6L@$SP(G<-pty5D~r{%gC7}4?|j-KEEcndAWtpt4J_(l+mCn*zj#Z-4#0x`- z&-JqPxQ%XE9ln{|PdFCL)6S3bBUPrJ)pp?=wOuh`2sPTJ<1mU8wllPh=ZZrRK}ovh z=f|-8kav-DELI=>G!2ZHkE{&5u#WlJi5ztSx2sw9qRIubUAejB0M|bQ+lLbhf3M8W zJqzH|(Jo2J^54t{ZQ)<}X(8E{mKbsbn?CAdqQFA~7nhht1$|_z6|Ib$4Jyoh$)4|A ze_5V9N=p_d995H*<)=%7Dgs$g;KsK{$tI?t*?N2YlEMbrpe1WLKh2X6dm#u6xgK@j z|1b2`(0qK%(9VE+B2Vnx(t|!oIechMW4#qjqkYo~bYlVP513uVXt{$C$g*H?+UKq@_d1oPgL-A#TM`P4b+whgx6MP!*_3 zXcNXi)dfhYY>VHk+c3 z6EoTtl;?iwx5DVA);A`kjbpH1`<<<3dW04!o=p@6HBOe3J0d45z(RwkaJQ!1slQ$S zx#0AugVRaLs3ov0OFdU&eM_ZqVESX1gh6pNCvEEPYL?UIG_0dsZ7G%){_122L! zL*QAKenT+4KR z>O!D9DFFagj8X&d16r=WvsjB`A#)VybE-xF9^~lVGp#x0hb>4>Al{5;(INsbOK)q^ z;Zc9Qf8Qpnk5J&O$G@BUG&R9HOCnzwaWPMX7EG5nbZWQqJPpE(QDLXon8DV88sxx` zCVyFHmCbmD`5jpfZBw9kF1zmSG^dg@kIlx#lkZ<2aFaRq!KRvqdFC4<0Tg>eS%S20 zp+H4yK2^QhI1YY4VuoIvV4IvMlcc5h5X-#txn~o{PhRlNEvs-3FH!C{y(RLcGp%HO zoH9Ctv$lrHAIeQ%)m(b1vX!gs#`G{n=F1HQ->PHJ~T)<*SSwkr`c2A~|kb*gYBBeEng) z8FY5QRPx!oJ?0$N(LBsI>*t*a5Ub2Zm1%R`Q&_RExLv^!y=}vUgyv(N?+k5M&;MQG zcQNhl@NzjQ2~#`Jt>z0#ocLrV?t|;ybP0aLP~<)IXWv!oOEqz{9O}!`!uYxO59lwR z_wt_~TuC?LKWMd^=QSCR9H%Mb?JX0-ED@&)7tX1%HOy&C){)l?>3;yQCrE#fz4ZPO z&mvpc$pQq20vqNDcg$%mR9Xq6rxju(t&8v0Y8ByQcOi)KNy6*}OnvH>%IY-WL@vLl z&3e#pP+ew%Y6$YhH=j-zDd#UD3tjQ7t4v>^5lDczhkfReG#J{RRkgcYSCp#r$3(z^ z6yP+qoddEMa%nLg>HDHx_*+pgQ8G zZ_=)hVKWYl^bSQyxP^utZ_ZeZWQp%42apzXuxH7Orfb=&y9I#VU1mtOFf?MT6-Uc0 z@UfJ;`!A?MA&?!B8me9j1z;Pz7|euA(cWxuZ7@$zjUHd96l^Ofb*G1TpAX*Z3MkoC zpU}WdA_QsM%*h0}`b!3K*FCX}#p(Ekwba+Y zVm=s5VyAfc+r#hma620hX58w#z!_iZB)k-ZaVgUM8XF@=&28-69bF4|+OA?Ir~|Cr zwj?rHh=BmMEiW4*{{t+864l#!>VFDx5s_~gu8{0&Za%s`Xod8Fgw@foJ-_uD#BX8l zDN#N-(FVQCepk8Z_|P%lKScluB93=-JAK+g#bb5tgKOcIpXFEK!j7MYZ?Zhr8L)ecA&&mls2Vsb6j2JwBns(Yzc?0TF9suXASXa4!*^i2 z@pYdl+Z0_C_RVwDC6j)AzQSGMa0_QSQIz9Y`%+_h_^7k)@A}3VCQfCzn;(fU6Oacw zxj{~oA87I7yr$Z8hy#1Iu?e!_PKdg|FxMPiK8QwReFCj!+C$!D!UJ(^H zofqZYOdSKIklp&XQ%n8serDT$&BlNB{r6`z6T+naTsDHRbxcZ!9V?E|vr2NDxUgHr z1(^r?koSIu5AoF6<@?TR;0LEio~fD6Kv0hv^B37+boNzpwQfhBQebmr|8QY%+`}>; zV2Tj@C?Rb2++2l_x!E;uPRm0d($kH|aUNQ)TgmADJ0RiEW5#aLb+5#3-hxhp>TL6M z+whf7kN?KQ|9fTP#qvF|HV3vN%~$QOx3xs8SC2L=Vk!+ZlVxxeCdYs1F|v296SkGQ z6Jm{|?6%Ch)=%HAa&g;rdftcK;H~ZFVg69=faf@wv9;H;bwf%fbs#UDerKDa0mr<~N7cstXg`}#? zDr5F>T{?@BUE-Flf#Q6#EDtaI-S1AMfD*|cwb!?7T~6x00+sVA zRYw8-g_Ra5UBf-}C-t1$3w2*}7=M@ttd4{w=*}@;0|`0NBKdj;egFi5bVKj0Nl|9% z!dy6{v;qjnq*8yL5QxJBHk;;Paw@*txhU*;s&qK}b!^H+{7zy`;CY z{R^BQ3oZ?@>6>s0{7!|LqDN;eH>T|$;x1(XT=JLIX-_Iqu}HX4FU&V`k=!AO4%c

    AKlP2 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 T>+cifg@12jw>#hJ=r8{djBUH} literal 0 HcmV?d00001 From 51c2784fd3089bd3076cb7b650e10bcea42d0784 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 14:56:53 +1000 Subject: [PATCH 38/62] [v240402] - Code Cleanup (FRS) Update the firstrunsetup with re-ordered code and more comments, making it easier to understand. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/First Run/FirstRunSetup.cs | 191 +++++++++++------- 1 file changed, 115 insertions(+), 76 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs index 90b86de3..6e0ad6d1 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs @@ -19,7 +19,7 @@ namespace Stardew_Mod_Manager { public partial class FirstRunSetup : Form { - + //Create Parameters for Syncfusion UI Elements protected override CreateParams CreateParams { get @@ -29,15 +29,46 @@ protected override CreateParams CreateParams return handleParam; } } - + + //Let's plant our first crops then... public FirstRunSetup() { + //Initialize UI InitializeComponent(); + //Attempt to prefill common Stardew Directory locations + //Start with C drive if (File.Exists(@"C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\"; } - if (File.Exists(@"D:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"D:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\"; } + + //Try external/other hard drives and disc drives + if (File.Exists(@"A:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"A:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"B:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"B:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"D:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"D:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"E:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"E:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"F:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"F:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"G:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"G:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"H:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"H:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"I:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"I:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"J:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"J:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"K:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"K:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"L:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"L:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"M:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"M:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"N:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"N:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"O:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"O:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"P:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"P:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"Q:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"Q:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"R:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"R:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"S:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"S:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"T:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"T:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"U:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"U:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"V:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"V:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"W:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"W:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"X:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"X:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"Y:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"Y:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } + if (File.Exists(@"Z:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe")) { SDVDirPath.Text = @"Z:\SteamLibrary\steamapps\common\Stardew Valley\Stardew Valley.exe"; } } + //Deprecated: Check the version of SMAPI installed private void CheckSMAPICurrentVersion() { string URL = "https://www.nexusmods.com/stardewvalley/mods/2400/"; @@ -74,6 +105,7 @@ private void CheckSMAPICurrentVersion() } } + //Deprecated: Identify the current available version of SMAPI private void doIdentifyVersion() { string regex = "

    "; @@ -101,10 +133,61 @@ private void doIdentifyVersion() } } + //Check the validity of the file path supplied + private void SDVDirPath_TextChanged(object sender, EventArgs e) + { + if (!File.Exists(SDVDirPath.Text + @"\Stardew Valley.exe")) + { + IsStardewValidIcon.Image = Resources.sdvError; + IsStardewValidText.Text = "There is not a valid Stardew Valley installation at this directory."; + } + else if (File.Exists(SDVDirPath.Text + @"\Stardew Valley.exe")) + { + IsStardewValidIcon.Image = Resources.sdvvalidated; + IsStardewValidText.Text = "There is a valid Stardew Valley installation at this directory."; + } + + if (!File.Exists(SDVDirPath.Text + @"\StardewModdingAPI.exe")) + { + IsSMAPIValidIcon.Image = Resources.sdvError; + IsSMAPIValidText.Text = "There is not a valid SMAPI installation at this directory."; + } + else if (File.Exists(SDVDirPath.Text + @"\StardewModdingAPI.exe")) + { + IsSMAPIValidIcon.Image = Resources.sdvvalidated; + IsSMAPIValidText.Text = "There is a valid SMAPI installation at this directory."; + } + } + + //When the user clicks Continue on the first page, jumping to the LoadingStep + private void StepOneContinue_Click(object sender, EventArgs e) + { + Step.SelectedTab = LoadingStep; + } + + //Start a timer to move to the next step + private void Step_SelectedIndexChanged(object sender, EventArgs e) + { + if (Step.SelectedTab == LoadingStep) + { + SetupEstablishTimer.Start(); + } + } + + //Move to Step two once the loading has completed + private void timer1_Tick(object sender, EventArgs e) + { + SetupEstablishTimer.Stop(); + //CheckSMAPICurrentVersion(); + Step.SelectedTab = StepTwo; + } + + //The user clicks Continue on Step Two, to move to Step Three private void Continue_Click(object sender, EventArgs e) { string AttemptedPath = SDVDirPath.Text; + //Ensure that the correct files exist... try { if (Directory.GetFiles(AttemptedPath, "Stardew Valley.exe").Length == 0) @@ -115,19 +198,19 @@ private void Continue_Click(object sender, EventArgs e) else { //Stardew Valley Installation Found - //Save Path as Setting Properties.Settings.Default.StardewDir = AttemptedPath; Properties.Settings.Default.Save(); + //Check if SMAPI exists if(File.Exists(AttemptedPath + @"\StardewModdingAPI.exe")) { - //Show Setup Step 2 + //Show Setup Step 2, as SMAPI exists Step.SelectedTab = StepThree; } else if(!File.Exists(AttemptedPath + @"\StardewModdingAPI.exe")) { - //Show SMAPI Install Guide + //Show SMAPI Install Step //SDVDirPath.SelectAll(); SDVDirPath.Copy(); MessageBox.Show("You don't seem to have SMAPI installed. We'll run you through the install process now.", "Setup | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); @@ -149,41 +232,39 @@ private void Continue_Click(object sender, EventArgs e) } } - private void FirstRunSetup_FormClosed(object sender, FormClosedEventArgs e) + //The user clicks to install SMAPI on the SMAPI install page. This installs the bundled copy. + private void SMAPIOpenInstall_Click(object sender, EventArgs e) { - Application.Exit(); + string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; + + string appPath = Path.GetDirectoryName(Application.ExecutablePath); + Process.Start(appPath + @"\smapi.bat"); + + SMAPIOpenInstall.Text = "Open Installer Again"; + ContinueSMAPI.Visible = true; } - private void SDVDirPath_TextChanged(object sender, EventArgs e) + //Once SMAPI is installed, the user clicks continue to move to the final step. + private void ContinueSMAPI_Click(object sender, EventArgs e) { - if(!File.Exists(SDVDirPath.Text + @"\Stardew Valley.exe")) - { - IsStardewValidIcon.Image = Resources.sdvError; - IsStardewValidText.Text = "There is not a valid Stardew Valley installation at this directory."; - } - else if (File.Exists(SDVDirPath.Text + @"\Stardew Valley.exe")) - { - IsStardewValidIcon.Image = Resources.sdvvalidated; - IsStardewValidText.Text = "There is a valid Stardew Valley installation at this directory."; - } + string dataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); + string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; + string updatelocation = Path.Combine(dataPath, "latestSMAPI.zip"); - if (!File.Exists(SDVDirPath.Text + @"\StardewModdingAPI.exe")) + Step.SelectedTab = StepThree; + try { - IsSMAPIValidIcon.Image = Resources.sdvError; - IsSMAPIValidText.Text = "There is not a valid SMAPI installation at this directory."; + Directory.Delete(extractionpath, true); + File.Delete(updatelocation); } - else if (File.Exists(SDVDirPath.Text + @"\StardewModdingAPI.exe")) + catch { - IsSMAPIValidIcon.Image = Resources.sdvvalidated; - IsSMAPIValidText.Text = "There is a valid SMAPI installation at this directory."; + // } } - private void StepOneContinue_Click(object sender, EventArgs e) - { - Step.SelectedTab = LoadingStep; - } - + //The final step allows the user to either finish setup or view what's new in the application + //The finishsteup button will create the settings, directories and launch the application private void FinishSetup_Click(object sender, EventArgs e) { string ModsFolder = Properties.Settings.Default.StardewDir + @"\Mods"; @@ -215,58 +296,16 @@ private void FinishSetup_Click(object sender, EventArgs e) Complete.Show(); } + //What's New will open a web browser to the latest changelog! private void WhatsNew_Click(object sender, EventArgs e) { Process.Start("https://github.com/RWELabs/Stardew-Valley-Mod-Manager/releases/tag/v" + Properties.Settings.Default.Version); } - private void ContinueSMAPI_Click(object sender, EventArgs e) - { - string dataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); - string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; - string updatelocation = Path.Combine(dataPath, "latestSMAPI.zip"); - - Step.SelectedTab = StepThree; - try - { - Directory.Delete(extractionpath, true); - File.Delete(updatelocation); - } - catch - { - // - } - } - - private void timer1_Tick(object sender, EventArgs e) - { - SetupEstablishTimer.Stop(); - //CheckSMAPICurrentVersion(); - Step.SelectedTab = StepTwo; - } - - private void Step_SelectedIndexChanged(object sender, EventArgs e) - { - if(Step.SelectedTab == LoadingStep) - { - SetupEstablishTimer.Start(); - } - } - - private void WebData_TextChanged(object sender, EventArgs e) - { - // - } - - private void SMAPIOpenInstall_Click(object sender, EventArgs e) + //If the user exits the window at any time, the application closes and progress is lost. + private void FirstRunSetup_FormClosed(object sender, FormClosedEventArgs e) { - string extractionpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\RWE Labs\SDV Mod Manager\SMAPI\"; - - string appPath = Path.GetDirectoryName(Application.ExecutablePath); - Process.Start(appPath + @"\smapi.bat"); - - SMAPIOpenInstall.Text = "Open Installer Again"; - ContinueSMAPI.Visible = true; + Application.Exit(); } } } From 116e7e7574c840f8b6145f62d413a6e3f7bd55d7 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 14:58:28 +1000 Subject: [PATCH 39/62] [v240402] - Update FRS - WebData.TextChanged Event Removed TextChanged from WebData? There was no code block for this... I don't know how the build has been compiling successfully? What? Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/First Run/FirstRunSetup.Designer.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs index 244035bd..3e17cacb 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs @@ -387,7 +387,6 @@ private void InitializeComponent() this.WebData.TabIndex = 13; this.WebData.Text = ""; this.WebData.Visible = false; - this.WebData.TextChanged += new System.EventHandler(this.WebData_TextChanged); // // SMAPIOpenInstall // From 59e17247b5a3b80a1ea8d2ee923da12fa2615a81 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 18 Apr 2024 15:43:09 +1000 Subject: [PATCH 40/62] [v240402] - Code Cleanup Put a ridiculous amount of effort into re-organising and commenting code... Not sure it was worth it to be honest. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 1667 +++++++++-------- 1 file changed, 881 insertions(+), 786 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index aa5c2482..ee5c4477 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -40,6 +40,21 @@ protected override CreateParams CreateParams } } + + + // __ __ _ + // | \/ | (_) + // | \ / | __ _ _ _ __ + // | |\/| |/ _` | | '_ \ + // | | | | (_| | | | | | + // |_| |_|\__,_|_|_| |_| + + + // THE CODE BLOCKS BELOW ARE FOR THE MAIN/MOD MANAGEMENT TAB OF THE APPLICATION + // This is the tab that contains the enabled and disabled mods list and the enable, disable, uninstall buttons, etc. + + + //Let's get these crops watered, shall we? public MainPage() { @@ -58,7 +73,7 @@ public MainPage() MainTabs.TabPages.Remove(Tab_Feedback); //If the user has opted to check for SMAPI updates on startup, do that now. - if(Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "TRUE") + if (Properties.Settings.Default.CheckSMAPIUpdateOnStartup == "TRUE") { //SMAPI selected to update on startup. StartSMAPIUpdateCheck.Start(); @@ -97,196 +112,6 @@ public MainPage() } } - //Get color profile from user settings and apply - private void GetColorProfile() - { - //MainTabs.ActiveTabColor - //Pink - 227, 116, 137 - //Blue - 0, 169, 202 - //MessageBox.Show(Properties.Settings.Default.ColorProfile.ToString().ToUpper()); - - switch (Properties.Settings.Default.ColorProfile.ToString().ToUpper()) - { - case "BLUE": - MainTabs.ActiveTabColor = Color.FromArgb(255, 0, 169, 202); - Tab_Main.BackgroundImage = Resources.MainBG_Blue; - Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; - Tab_GameMan.BackgroundImage = Resources.MainBG_Blue; - Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; - ThemeColor.SelectedItem = "Colorful - Blue"; - SDVPlay.Image = Resources.SDVPlay_Blue; - break; - case "PINK": - MainTabs.ActiveTabColor = Color.FromArgb(255, 227, 116, 137); - Tab_Main.BackgroundImage = Resources.MainBG_Pink; - Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; - Tab_GameMan.BackgroundImage = Resources.MainBG_Pink; - Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; - ThemeColor.SelectedItem = "Colorful - Pink"; - SDVPlay.Image = Resources.SDVPlay_Pink; - break; - case "GREEN": - MainTabs.ActiveTabColor = Color.FromArgb(255, 100, 148, 90); - Tab_Main.BackgroundImage = Resources.MainBG_Green; - Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; - Tab_GameMan.BackgroundImage = Resources.MainBG_Green; - Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; - ThemeColor.SelectedItem = "Colorful - Green"; - SDVPlay.Image = Resources.SDVPlay_Green; - break; - case "BIRB": - MainTabs.ActiveTabColor = Color.FromArgb(255, 112, 48, 160); - Tab_Main.BackgroundImage = Resources.MainBG_Birb; - Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; - Tab_GameMan.BackgroundImage = Resources.MainBG_Birb; - Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; - ThemeColor.SelectedItem = "Special - Birb"; - SDVPlay.Image = Resources.SDVPlay_Purple; - break; - case "NATURE": - MainTabs.ActiveTabColor = Color.FromArgb(255, 0, 112, 192); - Tab_Main.BackgroundImage = Resources.MainBG_Victoria; - Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; - Tab_GameMan.BackgroundImage = Resources.MainBG_Victoria; - Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; - ThemeColor.SelectedItem = "Colorful - Nature"; - SDVPlay.Image = Resources.SDVPlay_Blue; - break; - case "LYLE": - MainTabs.ActiveTabColor = Color.FromArgb(255, 74, 130, 53); - Tab_Main.BackgroundImage = Resources.MainBG_Lyle; - Tab_Main.BackgroundImageLayout = ImageLayout.Stretch; - Tab_GameMan.BackgroundImage = Resources.MainBG_Lyle; - Tab_GameMan.BackgroundImageLayout = ImageLayout.Stretch; - ThemeColor.SelectedItem = "Special - Lyle"; - SDVPlay.Image = Resources.SDVPlay_Green; - break; - } - - } - - //Check If the Game Is Running - private void CheckIfGameRunning() - { - int counter = 0; - foreach(Process process in Process.GetProcessesByName("Stardew Valley")) - { - counter++; - } - foreach (Process process in Process.GetProcessesByName("StardewModdingAPI")) - { - counter++; - } - - if (counter > 0) - { - SDVPlay.Enabled = false; - SDVPlay.Text = "Game Running"; - SDVPlay.Image = null; - - InstalledModsList.Enabled = false; - AvailableModsList.Enabled = false; - EnableModButton.Enabled = false; - DisableModButton.Enabled = false; - InstallMods.Enabled = false; - LoadPresetButton.Enabled = false; - DeleteMod.Enabled = false; - } - else - { - SDVPlay.Enabled = true; - SDVPlay.Text = "Launch Game"; - switch (Properties.Settings.Default.ColorProfile.ToString().ToUpper()) - { - case "BLUE": - SDVPlay.Image = Properties.Resources.SDVPlay_Blue; - break; - case "PINK": - SDVPlay.Image = Properties.Resources.SDVPlay_Pink; - break; - case "GREEN": - SDVPlay.Image = Properties.Resources.SDVPlay_Green; - break; - case "BIRB": - SDVPlay.Image = Properties.Resources.SDVPlay_Purple; - break; - case "NATURE": - SDVPlay.Image = Properties.Resources.SDVPlay_Blue; - break; - case "LYLE": - SDVPlay.Image = Properties.Resources.SDVPlay_Green; - break; - } - - InstalledModsList.Enabled = true; - AvailableModsList.Enabled = true; - InstallMods.Enabled = true; - LoadPresetButton.Enabled = true; - } - } - - //Compare SMAPI Versions (Installed to Available) - private void CompareVersions() - { - string SMAPIVERNUM = SMAPIVer.Text; - string SMAPIVersionWithoutTrailings = SMAPIVer.Text.Remove(SMAPIVERNUM.Length - 2); - - if (SMAPIUpdateVer.Text != SMAPIVer.Text.Replace("SMAPI v", null)) - { - if (SMAPIUpdateVer.Text != SMAPIVersionWithoutTrailings.Replace("SMAPI v",null)) - { - //MessageBox.Show("SMAPI CURRENT VERSION" + SMAPIVersionWithoutTrailings.Replace("SMAPI v", null)); - DialogResult dr = MessageBox.Show("SMAPI is out of date. Would you like to download the latest version now?", "SMAPI Updates Available", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvError; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "SMAPI is out of date. Click for more information."); - HelpTooltip.SetToolTip(SMAPIVer, "SMAPI is out of date. Click for more information."); - - if (dr == DialogResult.Yes) - { - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\tmp\"; - string LINK = SDVAppData + @"link.txt"; - - string ExePath = Path.GetDirectoryName(Application.ExecutablePath); - string SMAPIManager = ExePath + @"\smapiupdate.exe"; - - if (SMAPIUpdateVer.Text == null) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); - HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); - } - else - { - string UpdateURL = "https://github.com/Pathoschild/SMAPI/releases/download/" + SMAPIUpdateVer.Text + "/SMAPI-" + SMAPIUpdateVer.Text + "-installer.zip"; - Properties.Settings.Default.SMAPI_UpdateURL = UpdateURL; - Properties.Settings.Default.SMAPI_UpdateVersion = SMAPIUpdateVer.Text; - Properties.Settings.Default.Save(); - - //this.Hide(); - SMAPI_Updater su = new SMAPI_Updater(); - su.ShowDialog(); - } - } - } - - else if (SMAPIUpdateVer.Text == SMAPIVersionWithoutTrailings.Replace("SMAPI v", null)) - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvvalidated; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "SMAPI is up to date!"); - HelpTooltip.SetToolTip(SMAPIVer, "SMAPI is up to date!"); - } - } - else - { - Icon_SMAPIUpToDate.Image = Properties.Resources.sdvvalidated; - HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "SMAPI is up to date!"); - HelpTooltip.SetToolTip(SMAPIVer, "SMAPI is up to date!"); - } - - //this.Show(); - } - //Load MainPage private void MainPage_Load(object sender, EventArgs e) { @@ -348,7 +173,7 @@ private void DisableMod_Click(object sender, EventArgs e) string InstalledModFolderName = InstalledModsList.SelectedItem.ToString(); string DisabledModsList = Properties.Settings.Default.InactiveModsDir; - foreach(string item in InstalledModsList.SelectedItems) + foreach (string item in InstalledModsList.SelectedItems) { ModsToMove.AppendText(item.ToString() + Environment.NewLine); } @@ -362,7 +187,7 @@ private void DisableMod_Click(object sender, EventArgs e) } catch (Exception ex) { - if(ex.Message.Contains("Cannot create a file when that file already exists.")) + if (ex.Message.Contains("Cannot create a file when that file already exists.")) { RefreshObjects(); ModsToMove.Clear(); @@ -375,7 +200,7 @@ private void DisableMod_Click(object sender, EventArgs e) CreateErrorLog("There was an issue disabling a mod: " + ex.Message); } } - + } //Disables the mod(s) requested to be disabled @@ -387,7 +212,7 @@ private void DoDisableMods() foreach (string line in ModsToMove.Lines) { - if(line == null) + if (line == null) { // } @@ -431,9 +256,9 @@ private void EnableMod_Click(object sender, EventArgs e) CreateErrorLog("There was a problem enabling a mod. Error Message:" + ex.Message); } } - + } - + //Enables the mod(s) requested to be enabled. private void DoEnableMods() { @@ -488,7 +313,7 @@ private void RefreshObjects() //Handles deselection when clicking whitepsace in the enabled mods list private void InstalledModsList_Click(object sender, EventArgs e) { - if(InstalledModsList.SelectedIndex < 0) + if (InstalledModsList.SelectedIndex < 0) { //AvailableModsList.SelectedItem = null; //AvailableModsList.SelectedIndex = -1; @@ -502,7 +327,7 @@ private void InstalledModsList_Click(object sender, EventArgs e) DisableModButton.Enabled = true; } } - + //Handles deselection when clicking whitepsace in the disabled mods list private void AvailableModsList_Click(object sender, EventArgs e) { @@ -522,102 +347,80 @@ private void AvailableModsList_Click(object sender, EventArgs e) } - //Handles the closing of the main window - private void MainPage_FormClosed(object sender, FormClosedEventArgs e) + //When the user clicks "Changelog" - open the changelog in browser + private void ChangelogLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - string dataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); - string updatelocation = Path.Combine(dataPath, "SDVMMlatest.exe"); - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - - //Delete update files if they exist - if (File.Exists(updatelocation)) - { - File.Delete(updatelocation); - } - - //Reset the IsUpdateModInactive setting - Properties.Settings.Default.IsUpdateModInactive = false; - - //Hide the window if the "repairactive" setting is set to yes - if(Properties.Settings.Default.RepairActive == "Yes") - { - this.Hide(); - - } - //Save the application settings if the "repairactive" setting is set to no - else if (Properties.Settings.Default.RepairActive == "No") - { - DoApplicationSettingSave(); - } + Process.Start("https://github.com/RyanWalpoleEnterprises/Stardew-Valley-Mod-Manager/releases/tag/v" + Properties.Settings.Default.Version); } - //Handle saving the application settings to settings.ini - private void DoApplicationSettingSave() + //When the user clicks "install" under the mod menu options + private void InstallMods_Click(object sender, EventArgs e) { - this.Hide(); + MainTabs.TabPages.Add(Tab_InstallOptions); + MainTabs.SelectedTab = Tab_InstallOptions; + } - int disabledmodsnumber = AvailableModsList.Items.Count; - int enabledmodsnumber = InstalledModsList.Items.Count; - Properties.Telemetry.Default.ModsEnabled = enabledmodsnumber; - Properties.Telemetry.Default.ModsDisabled = disabledmodsnumber; - Properties.Telemetry.Default.ModsInstalled = disabledmodsnumber + enabledmodsnumber; - Properties.Telemetry.Default.Save(); + //When the user clicks "Install from ZIP"/"Browse" + private void InstallFromZIP_Click(object sender, EventArgs e) + { + try + { + string extractdir = Properties.Settings.Default.InactiveModsDir; + string extractpath = extractdir + Properties.Settings.Default.TMP_ModSafeName; - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; - string SettingsINI = SDVAppData + @"settings.ini"; - string Telemetry = SDVAppData + @"telemetry.json"; + //MessageBox.Show("SP: " + extractpath); + //MessageBox.Show("Install " + ModZipPath.Text + " to " + extractdir); - FileWrite.Clear(); + //ZipFile.ExtractToDirectory(ModZipPath.Text, extractdir); - FileWrite.AppendText("$StardewDir=" + Properties.Settings.Default.StardewDir + Environment.NewLine); - FileWrite.AppendText("$ModsDir=" + Properties.Settings.Default.ModsDir + Environment.NewLine); - FileWrite.AppendText("$InactiveModsDir=" + Properties.Settings.Default.InactiveModsDir + Environment.NewLine); - FileWrite.AppendText("$PresetsDir=" + Properties.Settings.Default.PresetsDir + Environment.NewLine); - FileWrite.AppendText("$CheckUpdateOnStartup=" + Properties.Settings.Default.CheckUpdateOnStartup + Environment.NewLine); - FileWrite.AppendText("$IsManuallyReset=" + Properties.Settings.Default.IsManuallyReset + Environment.NewLine); - FileWrite.AppendText("$CheckSMAPIUpdateOnStartup=" + Properties.Settings.Default.CheckSMAPIUpdateOnStartup + Environment.NewLine); - FileWrite.AppendText("$ColorProfile=" + Properties.Settings.Default.ColorProfile + Environment.NewLine); - FileWrite.AppendText("$DoTelemetry=" + Properties.Settings.Default.DoTelemetry + Environment.NewLine); - FileWrite.SaveFile(SettingsINI, RichTextBoxStreamType.PlainText); + Ionic.Zip.ZipFile zipFile = Ionic.Zip.ZipFile.Read(ModZipPath.Text); + { + foreach (ZipEntry zipEntry in zipFile) + { + try + { + zipEntry.Extract(extractdir, ExtractExistingFileAction.OverwriteSilently); + } + catch (Exception ex) + { + //could not extract specific file + MessageBox.Show("There was a problem installing your mod: " + Environment.NewLine + ex.Message, "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("There was a problem installing a mod. Error Message:" + ex.Message); + } + } + } - FileWrite.Clear(); + DialogResult dr = MessageBox.Show(Properties.Settings.Default.TMP_ModSafeName + " was successfully installed. To use this mod in game, you must enable it within the Mod Loader.", "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); + if (dr == DialogResult.OK) + { + MainTabs.SelectedTab = Tab_Main; + InstallFromZIP.Enabled = false; + ModZipPath.Clear(); + ModsToMove.Clear(); + RefreshObjects(); + Tab_InstallOptions.Close(); + } + } + catch (Exception ex) + { + MessageBox.Show("There was a problem installing your mod: " + Environment.NewLine + ex.Message, "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("There was a problem installing a mod. Error Message:" + ex.Message); + } + } - FileWrite.AppendText("{" + Environment.NewLine); - FileWrite.AppendText(" \"data\": [" + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"bool\": \"" + Properties.Settings.Default.CheckUpdateOnStartup.ToLower() + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"Check for Updates Enabled\"" + Environment.NewLine); - FileWrite.AppendText(" }," + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"string\": \"" + Properties.Settings.Default.Version.ToLower() + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"SDV Mod Manager Version\"" + Environment.NewLine); - FileWrite.AppendText(" }," + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"bool\": \"" + Properties.Settings.Default.CheckSMAPIUpdateOnStartup.ToLower() + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"Check for SMAPI Updates Enabled\"" + Environment.NewLine); - FileWrite.AppendText(" }," + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"string\": \"" + Properties.Settings.Default.ColorProfile.ToLower() + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"Color Profile Selected\"" + Environment.NewLine); - FileWrite.AppendText(" }," + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"int\": \"" + Properties.Telemetry.Default.ModsInstalled + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"Mods Installed\"" + Environment.NewLine); - FileWrite.AppendText(" }," + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"int\": \"" + Properties.Telemetry.Default.ModsEnabled + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"Mods Enabled\"" + Environment.NewLine); - FileWrite.AppendText(" }," + Environment.NewLine); - FileWrite.AppendText(" {" + Environment.NewLine); - FileWrite.AppendText(" \"int\": \"" + Properties.Telemetry.Default.ModsDisabled + "\"," + Environment.NewLine); - FileWrite.AppendText(" \"TelemetryData\": \"Mods Disabled\"" + Environment.NewLine); - FileWrite.AppendText(" }" + Environment.NewLine); - FileWrite.AppendText(" ]" + Environment.NewLine); - FileWrite.AppendText("}" + Environment.NewLine); - FileWrite.SaveFile(Telemetry, RichTextBoxStreamType.PlainText); + //When the Install Mod tab is closed, revert to normal tab order... + private void Tab_InstallOptions_Closed(object sender, EventArgs e) + { + MainTabs.TabPages.Remove(Tab_InstallOptions); + MainTabs.TabPages.Add(Tab_Main); + MainTabs.TabPages.Add(Tab_GameMan); + } - Application.Exit(); + //When the install options tab is closed... + private void CloseTab_Click(object sender, EventArgs e) + { + Tab_InstallOptions.Close(); + RefreshObjects(); } //Save a preset file @@ -631,8 +434,8 @@ private void SavePreset_Click(object sender, EventArgs e) } string UserAnswer = Microsoft.VisualBasic.Interaction.InputBox("Please give this mod preset a name ", "Save Preset", "Untitled Preset"); - - if(UserAnswer.Length > 0) + + if (UserAnswer.Length > 0) { richTextBox1.SaveFile(Properties.Settings.Default.PresetsDir + UserAnswer + ".txt", RichTextBoxStreamType.PlainText); richTextBox1.Clear(); @@ -681,13 +484,13 @@ private void LoadPreset_Click(object sender, EventArgs e) } catch (Exception ex) { - // MessageBox.Show(ex.Message); + // MessageBox.Show(ex.Message); } } RefreshObjects(); richTextBox1.Clear(); - + } catch (Exception ex) { @@ -714,8 +517,8 @@ private void DeleteMod_Click(object sender, EventArgs e) } DialogResult dr = MessageBox.Show("Are you sure you want to delete: " + Environment.NewLine + ModsToMove.Text + " from your mods folder? If you want to continue using this mod in the future, consider just disabling it instead.", "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - - if(dr == DialogResult.Yes) + + if (dr == DialogResult.Yes) { string ModDirectory = Properties.Settings.Default.ModsDir; string DisabledModFolderName = AvailableModsList.SelectedItem.ToString(); @@ -734,7 +537,7 @@ private void DeleteMod_Click(object sender, EventArgs e) } } } - + else if (dr == DialogResult.No) { //do nothing @@ -759,16 +562,31 @@ private void SMAPIDownload_LinkClicked(object sender, LinkLabelLinkClickedEventA Process.Start("https://stardewvalleywiki.com/Modding:Installing_SMAPI_on_Windows"); MessageBox.Show("We're opening a link to the SMAPI download page and also a link to the installation instructions. Please download SMAPI, follow the instructions to install it and then restart the mod loader. If you're prompted to supply an install directory, we've copied it to your clipboard for you.", "Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); string Dir = Properties.Settings.Default.StardewDir; - Clipboard.SetText(Dir); + Clipboard.SetText(Dir); + } + + //When the user clicks the "Help" button + private void HelpLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + try + { + string Documentation = "https://rwe.app/labs/sdvmm/docs"; + Process.Start(Documentation); + } + catch (Exception ex) + { + MessageBox.Show("The following error occured: " + Environment.NewLine + ex.Message, "Stardew Valley Mod Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); + CreateErrorLog("An error occured whilst trying to open a documentation link. Error Message: " + ex.Message); + } } //Handles the SMAPI version number when clicked... private void SMAPIVer_Click(object sender, EventArgs e) { var SMAPIVersion = FileVersionInfo.GetVersionInfo(Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe"); - + //MessageBox.Show("You are running SMAPI version " + SMAPIVersion.FileVersion +". Make sure that any mods you are installing are compatible with this version of SMAPI. Alternatively, update or downgrade to a different version of SMAPI by going to https://smapi.io/","Mod Manager | Stardew Valley Modded Framework", MessageBoxButtons.OK, MessageBoxIcon.Information); - + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvConnecting; HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "Connecting to NexusMods..."); HelpTooltip.SetToolTip(SMAPIVer, "Connecting to NexusMods..."); @@ -835,7 +653,8 @@ private void SMAPIValidationWorker2_DoWork(object sender, DoWorkEventArgs e) string selectend = "
  • Zq(`_-yQPV7aCkRNIp&-m_`?eEIA)KH>nO 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 yb%$3Rgo|)&FXPNcP*~Vw4 z=jG(*%qd73-fj3X$0UtU8JX0tYxnL6haQ=n5)i6|f5GE5f?!)iB?Q5v{5}}||M0+u z9}k8D*#rH5na%iMv-}@5%EO-T5f`?BdNc$@!iwO>A2r1P_+$0(_~5_)e?3rM{a=2t z{{R22@G_RI?Ajyl;@m6K;z%EGM(=xSfA#+Ob?;Ia1{PADMGN&x=Cng?Lb1xn^SpR!*&H<3MYxaqQpFZR-i7Qfq4HIvvcGJcY zWB>1;AH9~iVz4?!LC|k9^Kx!$&WK`uQ&eUZ*s<@U(kD&-4Y0X zSg>sQfa`W|tI>Dm?pA#!AJ;kg@qZrx?%VH8tg8ASb=Q+CkGM4XZ$-5mT=ekt+lzCj zzWL;S@0jckh4<{0Qc?pCRSDbH#x5NsBbRm zwCnb9>)t$n``c^(()92L_j~6Y00vZ5{ij^FCb8w9m2da%GWM1H9WS1}q3>OH902ay z?@g?#`XBt<3vYfo@zmTeA8Wm&&XFJG&b{)>Blmmf8~_GXRsEkb>A|zM4n9AA?W8BB zo?SC5^MgPA`uhXGefzzMRaO7PKRx`-xbb(5YB;O+RnuE7eD2q;TzlSr@0lo9_GjnghUn z`@M-(RsSt^J^NY1wT+KyboyhfTOa=MkzdArF?hds&H-RRRn`B+w=Egj>Wv|ZZ{E^i zXvQ_&vTMJ6!fgkD`}TVitE&F{4FA`nRlVA!ZK}4tLCu@~y>8+;4@}$dopS&fP*wFm z;Hk5AKUMg_@!$XU%p3mvp?A`bG`+@lfyoyy-|3ikgTRboQ>qGCj=(9GfcC7ib&xFQp4|wP9 z2M(yJ`tMq;>FTHcllY#s({^eVLP{XRK|F8bi_FY+Ptyi-Vax;>rs8d^8QC$v*hVDJAV1rAJnj_>VL_MAFg`zA2o9B zT;E~*d!PT`%I1w~K5)>xzkCl=RsCO+((<-Tp1gMRZJAfhd;0E=r`P)I(u3!Jzx?VC zs;d6$9eU#Y9$PiBc`}TMHf%yl#id9wrO>Y^}@A-=(Jx~AlRq;!{ z8T4SG3~k0>vz5O)z+sczH{+=iJ$(0%|57_^*~kC z|8p%L$nJQ_fciND*4{qigGS%y{p;fm2c7)O_dr$E|D~fh%=!9>jH{krb8OMI4L2uE z?A!bwzkKTtYFJhE-|DPePnz5LyWd{>-sgw@ZBfQ8L$FMN6ZL(|WHVeY4= z-L&bwUQ@6BVAFnJ{sFIIRrUW#HSWIjsV0q1JL{9Sk@?@&-B$0fbq>D&Wj|uUm0y%{xw?d29ZDVEzHGVpY}uySKD{ztQ5x1&xpVZgqp37d_Ub zdWUfbymR*h2UJ!4=iOfPMcQp&*M0Qur>3SH{b{$vtFk8V2j(B}DppnfPhNj=!wa6c zZpDS?51p}VWaf$*3vTFsz&m$8a6nbn|0g{*pMKI!*^?*d=U?^MwL9u0w@>T4ADDl@ zt5{X_pPy9p<-<=+ZMWs(|9tdLpYAh<|G94R0q@-XzyVcN|6TqsKlg8|+NJb=DiWNv z_OL77?OtQieqjDV6|D!Jc*cCr$>BlA92g$>;fo)>P|de*!oT4IQgiciPLHG)&Cg3uJtZ@@Ys$Q|yhujs$jq!rN+b*7oV>2-ob0FnS8ht{ zns2!0z@6`LS4cEkNP1Uae1)W=h!p5rK@GApXFKbYBXhFS3L-N6XGj*KH9Vt)@n_h) zr^J+kyhz%DnC0e2*()Y}6h4nt^jzE>tK2c!G5R^Pgt20lB5_JyB!-$rBF+sND<*ML zT3%XKRwT=|sfmRJxrGI>Iy=`EX4_d#SXivykIfOWdEpeb^$K^V#g?mL9+#|PY59>@ zoh+%d;g8j?l0Q5rBa$AQ!Rd~*;#OD2;#jR6K6!Yro)xz=Juls`{R}HJb2T-YNg-{a z=A}6!iVE`5+~k!0bLOVh=(Io)Obv4)ei1)Q3pYJDWrk*COwG;s`4dIS1nG21%g88< zmJpK;!{>D<@>G(2NPQJ+(4W;pSw{FvM0NJEvu4Gkgw> zRNT2|W@a-@r5Vl&$wc7ryhXVMITbb%f$34siposR%o~wikhdrnsTrAh%q@nuqH<#v zT1ko1@-lz+IciDU#l=SMnT|a+dn+*=8u@npRpAy*>oOjXbwV`aW1SJlWLNb3t(5OG z#UA6xf#orrK9&+6!x>}A$c6lr$lL|^FOpHAQ;kw8{&D= zMSoRVr_qIT<}66duE4o9JNwYK4bO zPi%$9O6ylyTk(O?6I}68(nxlDec@588n`{aP@h;enVgpWGyA(SJI~Tz%7ua_8wbIU zL_f4RBnV~^e^V<6UL+n_F9?=E@F+2>P7vHm{G3Y-ovH;v{GmZ`GqhWXzd9@kHWG)E zb}Bqq^WNw;h?{wTK$}KEa60iuqQZSODT8<;Wy~S&EljEr1Q!vzHwc1vmI)@aPVFEVM|>T94#)nj)q|iIy&oqYiLC4E2f=!9H}NC=MqWI2H0Jlo z#HWu4g168+5x%eat#AV6bV9cu@IfDBrSbbB&$sv0#b)Ai$-@_$Rr z#ou=m2O;Y`ViWv&J?~|F9(!s~=DYlEL0z3hOeJj)zCDwuD?<8w%ax=}gJ%*pTutmp z#t%Os_;|`IBL09clCh-|Wv3G(KS6&m`Iq2!x0BkxXkFo7o_^=eIMsYbLQjZi z5NT||n`yWHV{EhS|Ljn0*8r8F-qsP6jE?txG+rNsS8r5LQ=Z>4G)g$yCO?dOU9=iK zM5{cXRxR1l&OU8x9nq?Vi&l9)twt6{JLjG6e-N!k9MLMzr&SAgw71>($4t?x<%?E% zKCODcquutyQ5T3-qk?Fa=hJFbbhIa3P-CTNHCl>Rc|NU1Hb>j+#)h3ltC3E$%JXS8 z5<1%JvU}YiT8)sRRi00)(aF(XJEGo`qSfdnTIKn)8W|kzuC6tY6Rk!J(JIfU)d=Ef z=M6b5QM4LiM5{cXRwId{J?V>^I*L{!l4zCZ(`qDiv^}p|aG_{5LW)*-KCMPlM_W5L z_)N4KX+^6%pH?HaqkZDsn{O7aMsU$8&!^RB=V+H#Z(JPe0G()+=hJFdaJ2tQzWX)N zYPJxq@_bs&N{)8^uG?0KRum~k16pgSF??1 zmFJhMS;o zaI}pkt$ts$TDgc;c|NUHBaSv@SkaH7)hb1_%JXTp0&uiT+CTA3sDrIz<@vOlp&jkN z4}I@C(Q4*axytitwK8(FzdQS=xuVsINwmuIX|+Ogw6hO6;g6!#%1yM&^J%rRaJ1V` z*mksNwc-%1@_bsYMjY+UE1wDbu~sRfRi00)m6xN9{Px)$DpxBp(JIfU)vCeK9r zv|0g*R(U?HR#=X9$f_D)pV!Juw94~owW@No>*sf_u5z{760P!lTCH{+?WXU?{7ST1 z1&daBKCM<*jyCnVE<;7Dm6vGCuD-NtbhJJ1%(-8*T1|>pd49QCr90a7HBa0nTCLti zt301pD|bg*_ws4K6RlSGqE((xt5vY0eIWlo8%3+tv1pa&)9Nh3(O&fJ;mbs;vkTEG z&!^Q&)zR*_=lH&&)rwZM%JXSSIvA`67>e*wCq|ASn63^)xXM8Izd2R;8AM^$+(^O9 zp#=qbnX?NEbnirF_FNG)4yq@roFs_E>*x;++9pm-S(IN8SrF7M`Q3HQ#2~2e9ZzAO z*OU{b?>d>=q`0+=Yd(y}9<8=0aT}MT-BYBzWl%EvZ&-4_cbYUB$Fbl1!1@S@8phk`727mJOx|81+v%X#J zYLDD;|18mr50c4aO@!UDpDqM_5KvCY=lt4CiG;sc|LS)O{Ca*(>sKx_{ghu*;n_wM zucMd0ujhCx@iyXhww%V;AyEw1Q9IH(mJNzse~ulL$8Z;@-i__1Z7j7m3?&ecxN%n=LIvI@DQVq&)Xw0yA)-F6biTA|}TPDiJr)vq)3*APYTXj<4d$M6`{Pq!qhd*wq{ z+4{;-gCxu_5dLqCj;}i%qkc3#d&F_4XyWfoR6TxafGw(kQr}s1S(@idp^yb3lz7bHQfd zJg_~O32JOP9UKJC2SsGIp9+8T<{9882l}G0eBO*6kHEp2tE&91ilPj0=^CY3fu`^3RXjh<=`RUWng`9 z1=t0=92^8*0S*PP0w;o3gZMP~Ew}{4j$(8Qt^+A6U|cP}6}$ob6Zkvu5%4DPNl^AZ z4a(lvK>UM$`vh%+UTCE;C<*_yWc(Z#vu(bmQiTk`v;uxyoK#=p3r zEx#4$)}h||{TRG-|KQIc%iQ28Po*Ap+qT`(3$2P&o zTo}9vYEF9zRJkvM()AUv75FMBeW=gkt{`)5aS!lyQ0vFPg7W7Z-~{k3a2ohFm=9g(U_k*#z;bJd4sTLZ4NGTJ!-;9bZV=VT09R1h(@{>J1lCug^nqcOpSyODE-lao@AmdDK&%8R95 zoSX~|I0WBk_aJAHlcN)_tVk#+7C8fK8++Z#@$3Iya2UNvw#*`$wiOq+ zHmCAsqr#V#@82OG<2$H%`74lfx!`NCE%*(X5X{4tqls-pn-YQ^VB@HMrftOquFd)S z(H_IO==-pov{HPgt(0$9wQ9z$>R>{U9_5oxrtVAps3x!ZS>Z6~8&G?iucVKz0Vrsm z%Yu;gW4IPw3vMJbHwQb2bx^u3aS(9|F^i~k*ww^?p~M3<_&Ln>%^LVk!TDalPplcl zk9ac9tTP7roij(n&hfKn&Qwlli*^Q*GlMAy8 zG8aU;+Vqr2-oniEh)$WqbFYe=v*~7lnm`1sl93p5v|K_Z1-lU_vqftyiD!cB_-PS5KYhE88CCBxG8Tp z9ZJv#l)VvOs%t>~#ho zdcIJ<^XYMImH1+o>Cn;r7K#l%!54?!?A5#0Wu(g&8_`XBbK0|ZG|m_Ac)rMs6b$F7 z<(TWr?QOb!L#;7f_!RwCIsG)e4o}Or&9g%59@j3MEbZkfU}7|EN7mzIWTiwR^F>gR zHC9kfk zfs7xW4As-PNcP-%joGe{~ zsH7}cM{CQG^(C_EJ6X2T#nR?n9W}I0^X>UJGMbdgD6mx&li!>zMdirZiJTTrj&0PH zv1N;u5iX=`gZl~@ZJmtd%>3M(a5%1%E#Zj;<^S3>YVd31OmT8Dvoi}w)7ZEboyM`S z5v|MDTp-qWy|Hn2R!;i-l+48%Q)8XW+?dtYEiUV15lpU7<=UPFnJo!_sHvM@-+SJk%wbcriSP}@_L&*4MTh6u|TV= zuO70#Vwn&P-{Pwuov%h@XINLo)UI8fBpqgo=dyA%{0BL?zqfUwo71&-L2fMl)Qtrj ztej3!DM9cZavpbbhG&JnRPC}Yw9AR2b@{IUu%{fY_snb__T#Al63i6c^u7A*P1w5j6G_7qPFSS<9AD789^-(=Vqc&QaMo(;%(5U=f z@&Vlp#sXNd;R{fnKP zd9#P}JX}E}Iij~uOwsesYDlVQE@A-WoEXTAdKRq|s zls}y^ULhU@-NjZPci!RCpH9BokD`-biwnlIwcrkqPvfM|=gvPI&meeOL-S{kN8{(- zc$UG_5t0!Fs zrB5#zvTr$hHlzHu95?gI*HG=#XTwm|ms8;D0Npr`PyNj2bG{UBEbZRy6Ti}sf(duY z0XD?Z9t*5&ZqP|z7`8=jLb9z<_N_q2>){ojqm`dj#NWI&r?%_nT0h;L_ll=l86MVP zA&=V69y~qzhUdy^Cw^X9R_?qsyFQXUwFy5zdsJRdA!p~B8`LgJ<+=A;p{#2IetuRY zJFL@9*t`P^+rWRRS2t=KKE10O`AIx&>zlrDm&c=avp1d%@C=9MX^%&3r!0?TbcA+2 zQElc8k6vx26g|EZ{d8y_BDNxbvq!IK&8PSKx$8Hwr(*-2FMzi5nv#B_;nU}p4CZxQ>G zU*yrN5&O1ChS~+Dlu9pHkXx$n$~V{0CsLr>=#__v(tKfg)f2anu@d@W96x92)ppe- zefjByd3hv-eL~mO{XE*{%mUKnvwASDAok?=ZBM?gPxw5t-;FsAV;Mt6+WqV`5!I?&kT(=W)(<}|ltjbAD+ttgtOamUZ|>t`jh<{?Y- z*I-XKjYmF@Yo9nK$RIW)KiShwbCgey44Jb>ovLnQsaJQMqCg7)g6;`(p*rAxZQ)Oxl_wzzuDU%>x zjnjTUud`X;cr_;bd8W4s&~wZJ1tb{1uACwAqy4>xtmZuwGU@fNQg`{!4VuPr)=?{be1H~u7_8;^y~e}m{l z|A)}YTzr*m`APHQ7GE}Vkvm^}Pc&rsJY{_%zW$c)Qjf3MUih3(Dl?YVX^sHG69&TnH5khhSis7sKQ)$Vog;gT z(D^Nt6u;wFR;%pBl^jbiaR!PxFqS@9IxOaH(`#e;R8v=lFTE z%h^ZJcvhOG^q3_Z*JI=B*r+-^$@)d@{E#xdex1fT$GG$RUAA6yKYcLMhu=OMV`|19e9ILHv-*rO^W8rpZ zC>W2ef4IlC!O&K{FMzif6bud9-EM4M4xe}&UD*FfTSk0_^am}!+JcH^TnbUY^9yID z&+F-Cm6A0=EPctHGcIqblDU7?K=}UD%zYT;-(R(qtv9XhE(8zf4Ej)ZK*d)?H1}4- zMen%~oz6oPra-T?*)&jV5SBH?nnKrtN#NaJ2k;(Hb|muq?!BVHb86ctB4ElvEWeKh0*6AUZ5P!A)7$SeF>yH1}}q>^C~z9e2qu@ zXMum^7#)K*K#iGigW5cQ2V4Z|{`|AR_c+EUx>glF2eAcA2%6Dp=c3K-;d zAEA58+l3J}j(c!^GlJuep&zd&&D<{$7Yq>rLF?TW;V<_6C|`d32-I3<8z_4|0hzi& zy=2#Rj@y8rft_u>>Q;39!5!dW@L!!AwLtF<*wK>M-^TXfQACGI?`YE; z_J^-oSRZN==Dvxz=)C}%BjrnlF3757QSG`b#~RR+f)nxKG12?I%>58?oTHkc{;c{_ z7zj@TIMk0M&)m;YzPvG3o>1~mC?&5$SjK45&3y_bWvK0|Y=snChEQcp0o7)vf@-tP zc;Zm#`c_-=%smNltjbOB^-m4U=@+%t+*eTkeU@3!Ceq$ytI9R^1(aWIcA0X`b^Y>b z7eTB0OI^9<`h5Ac=a->1*VxOa{k2D{HfXMu$3^R3b)Q94(6c={)-yfw>+eAM^+vEA zcoV2Gj?0qa7{@tbaW{_H%Eu>qo@XFqLFce->RFq_aEz-Pt%nWJnrq~7(QE7e7^mlL zB%f25P(Dk@;v|mm29E(*T9`2vJdWda;7ITRQ2p^iFcsw9t@9RwJdYIivqwSov&X>Y z;Nzef%LdR++M(w#u&oz+@mtTH=$VwB#HPd}qjoSC*lXx<_GzZl_e*c2{5sG)1=a(f zK_87_&vD!nd;!!w(i$`M9E{qNYpV@unCAL-T=d$x&Qlp%!k}kyG&a2o%6EDeNBMsN zn}M%`YL|ZnCG$;WPXyoLcq*u8a83d@#|0P4NB`jXY;Y@dzXd@J}H3 z3Ku^C{tJ8!+zD#D{2KfRsQaZEn}csb*;RfVg{{rVtIIeoziVC@6xyGNpA(rM6T|Ut z9C!?|HL-uxH(8W#u8GG5XYgA=zL=#SgddQtaXgNDp|vcmT`f3IbA;}V*7$um#~QCW zi7U>&8o{Zd+L)oqkEQQWo3y%x0i*txRW{slXohd^)bO8?qdw})9 zo}k9$UZCdGzF;e`A1Gb=gGYk{zywOxvuusPro=>Q#LOuj!rxApHPD-D-f_|E<+AsB zqQY3pk}l&wwZ{pdbeRll?BJgA;@03)unTxH*b6)b><69-4g^mFhk>)ev0xf#=0N#L zdiEo>L03I@IfU3DXh40LIup$a;n=Bp&0NEdi(cEVMwR8B&3}i()LEUxz-yOUiTHX{LoQK5mrL0`B+#J z)VfUiUCpuTT*q2JUBj{3_O)PBo8R1GYf${sMX0focOZq&=80eazKLV``({x7R{n7C z_n^j5(W#x@%JIoIeWpdNX>KQdo<*%`M4tn$C0+9h&kcoZ8_}u#3V#jqY)tXx7FSxl z78JkQ(0$~u2G@aif%k*=fe(NWgMS1!fGX!{i<`hdajbDj<-86)!tuv8{WFXI1|KE8 zevm{9QV-BMi$(^WV|S!2bz}tU#aTdCS{G+Rto-YTwPV(gT0?eYU0JfG>`062MvLhb zrZs1NQ_y-zw8_CJMy+AwN#4=??r-zer$nRY9@`R+g7O3;j)2y*Os%VXA*(%W0N3}j zXc*?&Y+UsE?kGx}r3ORzGq$O%aDQ&t_nrbZ7d#6d0lolg9FUJRH@wKPq`eGwwfQ=C z5ZwUqFW^v6^lBS_61a;krd7$%AdyZI~>mjH-l;$?}76{<*SXn&v7C6cTjVT z@-MJ>38?Zevv?KwF~`?|+rZz0pMq)=+rfvx&%sB8l>aEWgX0bM_(|~J96t;G3w#Cq z3f!!G@B@q6z;8L;u4Bsi9Q=;suWb5{;13*EqeCmd1{hT5ToH@|8`*T$>_JVATY>Rl z2e2C08LS2N0BeJTK$SPl;%KlA>65_2LDsOL9M-OS_f+u=us#?88-Vj{{^{Tm9G?X? z0xtlYf|r7#yWHY$L6yrIE<|n#3|eq}C)g59pdFgEj@CHMy|$ecj;ZbF6M7E2KK~Uo z2e)LbE$IW@pli=+s7;u!KGd9++l8Lgju!9u^^9)uAt_QZlFBb z9ZUj6r}4Tc#~M9)f!)B~pvLLGphk^;;6PA(TDu%uJvc8D9LRAVD7jj{2^WLMfu?SK zAGE>;N!AY?pwhV4DfC0r&=(!3g${VM2Q-=| zBN>$4BSFpkqd?g=8XN+S0X46W1y2OWgVVtYpyrpUU=}FqL&0-F&T%!#hkg4zFq7l+!2<9C z@LX^y_$%;2a5=aPyaK!wyc(2V*MOIEtZQ*sfVYDyLC%AMtH3{jSA(4Q1lNL3gO`Du zz#C{kto4H%IsODxdE3ETIR4Tev!)OJz;RqP)&U?7Bn7vDteb<|!A9U6;1S^6U~6zS z*a5r`WIY!bKq;>^C07X@B&!9I_E`TZSZxF@h~i37iZq!nDH=7Zv(!? zaXau`uqXI8kiHje0qJYO2Ow=b_ylxYzjUC7l9vx)M2mH? zt`K4$br$U8m^ui)0`Xn&4R|NG3&eN9x8MWd_uvNbOAwp&_}zK$fz@gR#pn>0hwLDp zy(q1-wLfRh!geo7`DLu^gdJ6?_^YChIGPy9WS z{^7YI=Wh0zXk2)GRAu!cYFtzpiw?EGabRt5BB-^;Bv8Ja3bq2}qc$M@HGD72bWlE0 z{&(xuSsbsmbXvd9=J*9L zgE36!WOF$F78Kq07HiTjPUo1t^sxNeU>3*C!3Ch^Smmo-2{qTA0rs`1IahiO2J=au zW7AK!$X;x)ko5DxGeP!6gGJzV;9~G*@GS5)a0z%ncn-K8EC&A!o(Db;o)5AQ7hC|o z3SI=V&lW5L)gN@8XWB}4#yg#fscq;zQUl0sPg~Hq)-0OWk#^$J9eqc}n6hb!fyRna z#IEJ!Xf!Bh+0&f7X0dEAg zj#~vj3f=^61aAh_mTm#x0#}1?gSUe3gKNMK!P`Ks>+S$Geki?f+`-k{@(EtU0ko)E}ED+gt;Wi(W@RoU{!@g}aff^MiZABfBgr29cJ}D^o;Im(nd|0p!Pk_jpw{cg?5B_+o1Ot1fzN`?z~{i$;Paryofkma z_#&viq?f=mz?Z>A;H%(r@HKEX_&Rt8_y%|<_%`?m_%8S)xEXv7d=GpLd>{Nf_;>JQ z@B?rg_#yZO_!0OOxDC`fp{dJ~c3nTLbM3qDtu1JrRvS=T(f+9G6H03xZ3iomW3K;~ zyj$x~(lkCQY)1$A>~m1<;0v%bxC4}r{sj&Mc~-J`82A-93H%zI27Uvc2J$=@w&;3+ z_RRYcwRfzxDScGO#y&Uyu7StgD-aib=T#ljt|uydPkGYoM^JSc)C`J`0^&f`X*IAr z$URoY6O|3BeR97`*gm;mq*!wV_gaMKY1}Iiw$}vE_+0w54RtK-Z~4`v`{RrBGWQR} zh4&J0Sn9elH%W#1HUOn>Lr{7)0*?k8gZ;oGz~e#Qff!yNJ_^*F*9@EjHV01uTY@G2 zbp2g^)YvG$I-i;`a3?&Pd-YCnh3@o~-PL%vSoLsEAQ%KrA+k;mH*~K7?;$=*9^LKH_L%29bG2h5NjNQ4~V^qL)o ze_zGr*V}KV|L90BWGeM(UD29%|8BN?j@EzgOJnc-yZ(E9%f1u%zrC~5e`oNx%xn$4 zoEar)dgcs_rfoxx`Bo&?^egu6UYatYX2|D!vef!Sds8m3ZxO#?FFvWr{Yvt$^mNbR zZJ_Td%nJXTf9!q6_q@f{!3gt>*vXOnoWi_x-Qdn!V@*9QL)Yc-i`UUNw*DFG`A74x z{3g@<^x3=`BcC+Y>9b^NeXhBDu$A2c9;xT^WM-T1p^+T&HH2U(QFFnm9$)n`e0;Si z$|(C?jKz2EKDHI~PlcN;>Nk5!@mE+qf|+3ho>P=kP&k`B*|`y2Q=u1+qibz_HqP_e z@RYWLj_*HnCQo*!W#xBgrZoQZX|mH6L?+G|lb(}p>O?-Kc+PA~+GakYM-)X^m705M z{k+2L+_d!hkqlS2e62F9C-qUEj^}%n73#0CdK=?cAM{^i?NpsJgqGq->%smn=?s~r z(sT227G`Ed@+R6oBcHHG6>O!y1|#3Zhf4LZIf_l6Y@7%+oXHFGW2n&?~M<|qe04- z!MD@GdYl5C-ZiljoMh=`SN$^d={dQJ@-pYn(;7wj4a(&6IEcP_J}xKS)OW)&`8>l| zFrsMqf(!=G2zk8+#=#5aWw_7CXJwtT9$)@Aq#&NM!G2pN;0e~J8yJo+|e=;?x? z54SUx z=}?BpeA!VvNr@fHvrnOh6oW7n4QzY9EX6W`m)55f-^@J#-c$b#HSX$A9a$B~^Y(RB&@;&t@u zZz^ZJHy@>QSAS*(WsvUH1b+U|+}sK3jwDiUbb@6`u=8oh+5 zqJ7Tk@79nTtp3`=aN&38-{LOQ=Yz?S1w2=3-%xAXRV{dy6UF1`WZMwZmJ#cc-pBGg zy%`h3z9<>8Czk$DR`(?mMDTUL5#6WnMfZ*9HyS?iI6CRB_l_i!t|D_Rztf%mUuC+x zey~-72!8uqh3;2a*#Ui7?Njr0Ed9XM@1(;+F{R|(gq-V~9P`d*Cn_dc&ZdW~EIW*c zf^SCFYA36bHaR(OX(39`-l7ZK9}|C9IdW9D>(Og9Jfe3rO5Z_x7U^mWf3>`>&QJ8} zd=B}duLbQqqSi?N^yoDo`1GnX*S?*cRq!22dgr@Mzmgoy6+WNjIKIl%`AXYbM^l~) ztMN~!l^v9+bLqGl{bs=@9!ID2hNPtu$qp{^bk|rksf>>*qr0oy-Bx$MUvQs9{JneX zUa7WvjZQQOtqg?!|A3r_%aJ2LaFHj-Ad246s1C)*ve9bIcS|CRVjh#-9!#wUp*p4d z?5*hbZfV^(C+5peIeFTOkI5HKUXhjO_uDnd+gio)Tpe#I$3Cvt#eZH}UbvKrr5`vs zqjfS!=wl%K&%HMB-&C=jd#s$go*bTmi0^!lokJP-G=Zw3Dr3*MaD(6MH91jhku#ti zIcl@_qgNAnIz#MeT$`Qjwb=y>Sn9i#(QTX6O?&n(aIa$goS)Eb67=^IMek^wZYiE_ zm09DscCb_@KZK(Vg#URaC4Ti!=(ZibCcz_mN3*YVOVWk_VX%SlKhMd;zxWfnEkm#E zMA18%eWlwnt6OhRw|mg7&b?LBuHE>v%gXtKC+A+|3~_R1hA%(QPRlCkNU^k4w>6Q;H>PE{iCcRZ-btSNvDQ^SZDrOI(eY0UR)Y4uT;SQd_;Z|1CEY5t zV>>oXf=Bd@#*HzPJv%BhZ@B)k!|LYOE%(31-{f?w!Zw?#%}Rp5wtN^__c~el!CzEW zW{i2(%JSD#+|L{Ta23jO<7bv`)FGT@ApFn$PVpPdlQnEnbbo6TI`)TGe2&)Dvp)yZ zUSnP#xOZ4>wL03VIMne`bR4{{WG{-L_c-;QbRIl$*Ck#K)ZJFp^ zrca~yQQ^z5PhU^DdgsS+==7G=MRl!nSD(k7>+XbJ?*h^Fi}yWxowNG%nH;q)T<~p^j{f&aot>3kD{n!zfF ziS_d`^C!+%o@6y?#dTbw?%!Nt^--Ovo%lQvB#C}0v|EWYp#Qx`A77Rp>8_rfoVM6R zvka0SENPEwSH7I=$eG#$3&%#sUzu^InVoFao?Unn-!HN{1S2zxsNv{PCmQKH3thJn z#ph_1em!YhiMlRSl5Xl|TIsrp+Fu#{yQ||9W*7+nbMI{YO-_H;Mkl4^=bxFAmjQ+J zOv3KnMDaOV*M_Ehdgd3V^A)4~kS7)TUBnc4Zn5RNw&nAPn7 z+uVdM%it4_qpQrd!T;sA%beYv?cnOy`6leX)Y&b6dUjW2Je2=bcka9}*UIvJ{30}0 zI$84ZaNZQ3?g_-Vei`?dqc7{c_-kDm()TCIaP8b}V)=T!Oc^)3GNi}Ith9oHNcPAa z4J-K*v+X@}Y9oH18F#c&%>A(DSNM(K_}g4r(&xXF$ayK{)P@soepLEP?b8kw)c?L!QbzC zA01jb9ps0TB6+i8_^y|mi=C{t-HpBV4TS%YdEh!PvcH)ts57`=3BR)bG?=2 z*YDqvb)1tG_FpzyQX<*eR_?7@lF59;-e;ZnBdb_T{RR>&D1s zR&Ha@xBo!yI44*3MoqK}b7*5}zs^=}Dhq?}Z@`F{Nrc`1*0bMVB%g51Ia zYBj@3j7_Gqai^83HK7aJk$H+Qb4<1oX^qtRW`FoL5XI+cm0m#FdZLySOKch1$I%wc zsoow*gk!Bi6=Ui1C)jmML0<|Y_;bf+=>N2@|0F#mqSY@~oU?dtBAWqcL^gfVY&=v( z{!T03U!#4F{I{HZwaa}V-?f=}{fzy7oB0CyA3OPKqvaSKi_K2vW-HV0i#w3{xsxfI zt4OAsQ>OIa)6Rb(^J^!wTsx=cr_GJT)V`eDO;)aNEAQor|K7dt=8xB0GMAg^iweSzx#o#8mil$FH(J@g%{!4@$H|t>RV>?$N4*E^ zY4=yiZs=sIp7p$d77S)XBqm#(ywz5o-MS2ge~rAOoIKfD1@hclx86WwUk3x>|8I~t z#Fyvo!N*dMPSz4D%O4wdA#1LaC0|xjmg^@Q%aQdhva)?ycHe45QD(j#qEi*h0h$9` zIdujZ$M|jUKa^AG%29pnr5snUOKds*y7xQEIop*Z+nGT}=-Hp4>ERcuWAU|d3)#i)+K4L8G$I0zI*a+lOb~IE&Zrr1GyqDhlK<-*A z*Y|gI4xP99#2q%EM=CTHf)H=S8Tv9ulc?ewA%M&`c_g#YUz zGkDC7&yypx9(&IR`Xxgj(%O8T8?PXJ2C&}f$%@~Fvfr7^ya3l%z`nzxhE|YLZ{yNaW+Zm9Bp+%2B@G0p9+y{#@s9^Z|L-%(Z`4L~ZzQYX%~)#Hs(b3NOdA!~OzvUGbJ zOC_@wK*wBo#ph^S+xc;(S2tzf^Q8KVgU6>y&&kS?c-8q<%FUwOx;p-I$v9fQ3=iF` zQuD5B`*kKz5TTBN@PBjcPq(te`wWKX6zcAYSp4kj^d2h*^P-^za&nv;@3|il$QSkC zSwa+#qjT;55YNZCJmw=Fii=4{cMjZfqDtYNKnBA9Eh+R7r{mDuy%t+@hMvqS` zNS~)xSQ+1Jw{qKia+8o-W1}7O%JEHScpf5($I-d=hs&a;Gz++>GAA>VVQ+1UjuAeM zYfG`%;M&oYNk;j)o(-+Ap_8+Lr9bbAlBk$`<>aila{M({YvlB=A~~+Tc0AD-lI+>j z208aSIhuziN76FPxlK$qxiRP(E9(qTR$F9!<;w~$C0JoG`q0U%HQ5Mi?8$3~yg5(V z_NMdhDv;;;)p{$hkteS`@|HMx@}+$hi`pqCiX#@Xvm zp;sTi&X()uaGyRxzHCygNFSAt#p7(sm_k8>K?cJAogjF&v`yhmu1xuUCHi%TPdtup zZ#Hd$zBBYapnvUuU{n98(vpee5B+MuCmu()H=9<;Z_u{| z>e_PmWj)n7DKvw+E(x8nsaI*6xZ+o`9vOswZxO}g==Nq)0kp3Z+dzNZKD5b=Ia{qw zElW(&clqMeO53E%2w9PEm1Wle@ZCccpQGKIUE`o#OKb@J{C#Mb>r)R+GY0u~b;mA! zgiY(bU}CnJCA_-YhJH)o6OW^FHf4C@gnJie60~~BwQTxT8Jm3i%8nDRu2%4XkAiPg z4{W-zv`u@|)p~SHg;#uzc5im=f_^&mvg@{eXqT(2jFV-R8JoKrT zXncl~8GXvbxKeZDJ?J^^RKw%woFC_S{WxOh`)$yVhQ1d9vTeDd*Ems%o?}E;dcL2+ zrnEvo1L6Pv6nyg@HkoCNY+8zbN$`os(e2Hq_0TtizCHA7_n}R$ZFFbzS%Gc4XgC&| z-Y&5zg)25$;T!c9l{}au+oq%EZlZV{{oZW52HIUj`Qjh@&^9;j)?(vEp|64P{{U=j z^=x!5DRZZVnIn7Slh=vjbF_Q2D;L^Vi0z<1#+JP=+M%nnt=6uj&?571Aa+gL!>*xO zS>CLoI;#WkJw)+3`n}mU4%)TEM$o7I4{X~o)7T^ZTo{CHXO?GMbj4=sZ5w(nhd&8M zN541QIzqdQDBI54hqk%-a^)-p5&U)NU~KzsiETVhSz?sxYa{y2nq_z#owI44Hzuap zF>yEasnBa3dQ%yjeEQ0+ZJbT>(hx*wX(0SR1e=~JWm8Eblug&n;+?nfiO13H&8AnN z?+(4zH81}UY#PMLqQU?J;s2r7wAI-(bPhM!QdM>pAe*w#uNHjbaddmLX*KjUpx2!I z`98GCjfK0dO)Qn8AsL%mJQp1c-Q8Q!2bN{m5cr-YiqFw1eF%&z2#3t8sj~ z*DfpD&fGrLhIFHLZ3E%|5$Ipw^tU59BVM@944_{|6uqO_+aAY%`?dw5V%P&I{Vw5- zoLnf>GZ6kCNx^5AV?#yuCFBR`=jMmCayo(im1r0R!LOa1==;e$r$MQD?Tn6m{vhOa z^lp!MzE`jF*s9|d03nZV+R+QDxxO4+XJx1@#8IZtlWk?Jk{_V&0l~u_ef2W*GDCJr zFY)A(z`8DI_kwA&l2Nl99?{o;R(D?xCI19VuXm=zm!UWBY&UmmN|qmEsRMUEMLj7> zIMhJ+e>8>v(dxo`iqqtV%E&0NGCFuN#vo%u70ReH*A&k3CK^sa#>Zu3$md1q^A=IG zF5iuT)4aB`7#jJxGPdVhy?p<>*A<)x!#YA z!ZI@C-?z}GKlGw?`Bm*-H(w+(h$~#EPHe*j^!mcri+54wlw76``)Mxv)q_`jj@Idz z<+Xu)%9KrOp?@orYqHRPZOeAo^nCj4DY`su-r=KR&Chf1W)Yvp5I>J=BpP((X=C#sWHYcb2cBDnNOPRiZ7D~dnoIWGU+*U z=5Q6DS5K0oV~n%E4*t@9$iSCM#I>E{_gaT6@T)u*4& zrw|G`j(PlW?R&lTgX+nJN%*1V%ij1gl3OwhM)C<7vxOCl-=lLf4M?Gd*Pl*AUVC3& zISyAF*?_J^@Qc^cyK9p)?nF~E@4+tp7+csrCC;bGU``aT{O+f7v-!fzoWlI9MbteR zs20=s?Cfnq848O%dnZ$9@++Qy{qbYwL_V8i#)NyYbt{!DUPtfRSB_^dri6V>BK-6@ zsob)(o$@vlheF%XD^p{L z&+Fgk7pt$`^}r?+tkBQ%bqa+(X61)#jk0ZPWKIqzF`*xtQCC}u;&(jG-<(!P+n2^{ z^;wB2m7Y15Ck_ksDWR~>s%`oCuD`2H`PR?VG!v`+t}i#CKn1pzqG1Y!e)XEy))?2c z%HvEle4T{qsu_OUN)(@?)tI9~&hYGZ`m5i_c0VuOls7KiJtZ$}1C+Ui*q!5~zm&8q z`NikW?@=-r#4@(HbE9Hwzvc`VregnzR(3E(54M^$Ze`?5L3xG#2EzX*A?M_BnxvSsSo*li|zXjnU8}cmv`8=@i`P zb=wD%Bf1W$MmR0AV4mK{ut-GGd6j$vzjz(J^C`ZF`ZOaa{3Kd*4D$21Dj43t=*rwe znHiLMED24m4)TNgpwFlET4n5a=X*tklFWItD#wPCDLBQ-4!_MwdT1|tB||S-m#_3! zNFPFa3opGrI;%L6qkbrumzl4dCH#lvWt+w(pH5S-v)NBix9L*VPhZUY4fXzK&2xS_ z?;$lGZkP~>WO&czOXqFqya|W0^%@NPYspxrb+KQDYj2LH2AS&Pr@mo$RNorEd>-`a zK~h*hj&BeIny+v3_-dEoW+b((jgL4$s zjN9*w?fl;Dt*%{Y1P=1#o{HSxJGtgQHuv;y*tT|}YY}|nadh%sXVMCYtw?{|@~dsA z=rg^xRoU|l=d-pHs&Jfv@P8`0|J~_6JS&oxU6>ngrOIU!bNSw5_?T);b>;fuGAmc> z3Kvd8Zi}~UT}c)hv9t##W4o2%pR>oe|(nWK?_G+Mz2245{hd z+o3^~ZWxnIPTr<+;IGx3-;$X~;|3NAlK|BX2hHj@d`@n%Ty2m@^Jc zM_%83ByYKum*C0EK;FF}DDHmr{oK z9go(1DvItFozMBy?SlL%ITU8jpCr!D=X$kIEz| zdXyI3Bb%V?hWd6?(DuRD~ii!ixTe#|{vnwV=v<`?Td3jK}Mh4a(gthDsV zIJU&O*Ic_%d<`BM7p*P?tFIK(X{JYue-9UxekV&Br zIlWDtYo{UHn~bHcIa#C6F#;MoLE!1gdZ7wsxxTy0%4+P%nvbmaoh-Aia4kA&pW5^| zcsCNo>*!sZUgXt9emFOU%{JzGaQdz}*C={~r*9Vee)Ti--HomV@Qc^c?`wUV6&pnd zdipLv-#YKwx!YcLE9>A`+K=zFqxPZ98s`~dzRVnCUa${k7Fn78x-u7; zkMBd7+pWyOo^Q`U=I(tU)2%VLoo|Fq&}3jk9x?}Rwr!|udic<>`s5Duy9avFx_tjy z_kX*#T|a1>I5lNaK2t_ly=6(_RBjSwt|fNn__X&*<{ITM_WF9}>;=7h^(&b#V*Tc> zYs;w@NCJDZ2EzaO*nWxCA$*34_eP|#YvjG=tU_~?e92$*n)xeMW+P8#0R)#hnRxC% z#56ug4qr)GgZi(*q~4pfLBS|4u@?j**yS(e3QHu&3(`2w0gn$dcwTNM_f7T=`Q(R_ z?EB_+TAlpsA`2n7&*@~_$#9;rq1_|8xm%v?(wYl1_^41VH*z%~hFx27y_4fCZ@M*8(&!Eolo&q(WJ`FYpp8>Vj zc@|6tp99B&&x5JpCNKkh3DkM+%itN{D_{b5RV9Y{v_z*i#G^UB7nF{Dh&_o7iAhm? zH^JNU7GwV`ek(|?4f;WNlX9zpZ-wP^uO}$`-vyh1n?dc3{0-Ee_XnVS_YZIcxD^}& zehA8r&%gMgc#6fT7H3$T34RP+0yB0(a15GGME~~Oqn92up-ngC>D{K>nRx{EgdaJD z-Vd%0R^i|)tW7s-gNX1);z~K5ARSbf+mR((KLfRp{2bJJ?+Z|M@+H^;+zGa~$WRx2 z&9Ulc7dXzM>Si~`T6}&Fo&^TggW}~tHSkIug1-lAg6qLr;8WnC)q@K@0PAu55y&QQ zaXkI`2rvO`0=5F1f}Ox4!TzA^7+{Ze4gDz6C)?xGZ2o+(IqCTzdyB;~Qe4gwzoM}j=Z9E=8eUvw}Lf)ba5hLk2r|Gozz9e?3+94fftet_ z4zWgc*32B&2j!QB_88lPEYdrG*hg;9KAe;AU_WxE*{6 z)JfT+U;_9GcsM9|M_N1ze3kT$;A>zfo8HG_Ur=@>+vCX=PqR1!e1rVC;0NH@;D_LO z;78zca2vQ1{3m!bDEX`H@txo&q(5wrpR)OHTYLxHPX4Dl26ux00>1}$g0&e#z5*M8 zUxO{cU0`QWa=O~%LEwLAM>pH!J8k|G7N4~EqQ#fM>NSGmEnqyj4Ll6o0VaUE!Mfm& zpyb3cu5l7ytPg?J2OEJ6z;@u_;L%_s@EB0^eJ%F0ILzX3unBZy!KUDNn?3<-!SP8T zZNK<5i!;Gi9H)V8z`xp`OeSwCbH{0*=sGcf zTnkPl9#0%hi5kImU&Jv%b9SsdvyxC~#9cX!m@gYqRwLf{+b9@L6wkPzS#U1pq!5$g zIf*!g7(t^k;2`2`;#~5N1T(=t#A*B52NQ@RsAa7p zXoJ|)3VSApS5CvE=)b1HQuwD+e^ZgwpV%hMYaZ4`NBD-4)&UyL{-r}=xYjePb+wz8 z_cdOZY^0?_hF6F6hF9htyL1yyGOYGs!JPg7_Jqw5YhWiv-S#4yf|i< zp)?Z)(Egd;f`MRtkU6Kg130usaQ-P^GRL#Q5unzZV?eXkn~A(3#N&yBSbT0uf|mE zE9qFR`(Ch}J?>`n`&&E~Tt~iHk0%FhY2gZ7gTp87Xm_R^D$T87rPuVm=*73(LcN{> zrPni{ua}Oc7vBO4_0n;9daeV{D6H$7#2=!`-W-d6rx|48))yuUXwNcfl!Xd1E z<-=N_>d)u9ZZCZ8EnkO_uUjd;)s|27qOyH?CqXYgxNie_L!x}eH0rx7-y@b!{wPpm zCtM4?>h(IXE_eed|NRa;3cL{%{Y{|iRrRgDr{k{REnr`Zs^`@l4+L)o$AfFYlfc`+ z>EIn;8Yq5l=?lwKpI5ns;60=-vB&4w;|sz2NdL9P%fNLUUt{xc2E~7e#kJrc$-f_b z5PTSX2-MuEu|Vfk355f@X-7^9O#b%)^NrhzgV8 z*I1DPs^3fj)vl(3-NBPU^|fi>XmC0xznl!t0#5<6z*E5@Fcn-1o(8S}XM#6?v%uA0 z8ff$!h@Qt12NTs+6qPoDsP@u@IEJWt?n+c!IwIPxKe9HJ*RC%LWlWCt%bk`s5&5#; z@0V+!)q3!@kVi5HM)_*qXX;07r7Yh@%lA~2uX~iQk>x8--iMa&qbOhhC|~=%$ZK$j z(X%0Fd}HLv$9*lI>PLF|Yb*8yij~HmK-i9&gPMa|fJtBys5!S4*bQt0s_nJ~hk)%s zjrHxpgm8S(9H%|bZj3WyiK@dBiDsO2W4v@Z$LghVK|1(-aRB9MP7*c%2Z9>c28D9k zF?(t~t@doj4YkFa_TrzD;8Q(L3;9)#eL}ygE#GVT%A0F059#|xX&<(<<&F1mhO{{$ z?HbD6Xlc*lx9n3ta&zuCR-avP|yXcs;mJVvZbsrag_g-=&Zrg8=U*#Xeac8g#*b8KTs95I% zJ;9-1FK{^62OI(R1=XhegX6#fUTM);PIrN2Mz`=0f&Rv zfg`|Mz>(nH;3)7Ba5VS~I0k$XJOO+g91DI3P6T&>CxSKO7?Z&|;1sX{I1Ow8o&vT9 zQ^79aOt3d7ef!$uY==zD) zja^wkw!s_Phd7zuuYHnEr0ZP!z8$#^NZ;ex0D{G&s zIW1XdpNxIXE!vxD%3efs)=kYpg|765M#QG*JLgwBPPep;`7K)Y3+>A*Af;G8g&H%9K=m`m znQ*RN0yg0I?ElB!nZQ?7+TzCak`KBzJdD2x7 zKUsweR^A4$MNLx|TnD$q>)}K22mJmnyaDwm@J9G&coX~-QYTiXMVRNI?glr)9uPO9 zy&-jFSFj4xES6ARUVmht-J-^i+Tf8Jnn&t-@}e7cPr3m?rrp6c6YB1GpPDgwIGn(Ckh9 zjpp-hopgmgC=<#Jv*(Qe)IzE3X$`I)P}pzaa+UFEnn z^`xEgLw~~S9ja?8|EYviYjcfQuT=d=3F@HN3Y%I#vXq|cs>-y=zy&0p-rFiBDyKD( zLPXCWh`-9^VUrH5;VWHGW7o9*l!a(>nIpg2Ix2)mj5*a=y<_Zxs4vh+&OUw&fxE#* z=fCs5;jK%8dMzIjNh#Q(*_#9I8G@e<+l>(T-za8v3di($^SQ zoCaH>KLfUcXTsL-EXP?e9ktfX8wVN0q!T*I=hmd6)~vIGbjpQ)!tYdV8>sZ|!DvPO zplwTtSMZgK_e}m*oEjlD`Crc<{8PHq)|>Pl0z0D4fWzQ$sQ6^Td^i#=g7gKZzd8eM zMm-)r3E9^YeI8DPAHvBn3BP#H8LbDWLejvb2XQy*PH-CfdPl0?Gu`jl4Q8OW?+B)o zw_1BX7j}gOurDlyImldOIO_9}a{g~ismve*sx$4;>&AMwO;5G)DwAqwXHbz{FG@&ifX3DRULvUGy#PzF*1gl5cT0LRt-`|MB5n z{w?mx>~O|<-t4Mxad#+Y8<3td+YPz8lDpN=Q(Ed#xlvk*4Jg6wNpzS~HfY zkS6xt`iN;GDyKE=d{_2g7)LD&y_e|KU(zN+Mhy=ObIAKITHKayZ&KkVJu5i@_UTz?v2z5!!f zA7^{Fb;R_CmCd%sYzps6y;*xVb>gu1H{pn{U1U9C+g9IRhSO&-W)=1!#*XHg@jS5i zLEHUZmBW*T`3Ag~^5L=fI42IzG-Ea%9((t4;7llV`!05gQV|wq0y*oKVKm7G} zpFI&PG$)W*jb-e8#}RrcYgTUNAbMWMZI#J4jUPeqYp5~zet0T;2dZ~J05#@*52iAY zX+*!@i21nsd%e%r`^<29*}IMtr-Akwq_WM`SeP0UPg6J8C`TB4?Yyu}kjgiEjFdJq;je$lw^>{cPeT{iUjV)xZ1j^j^;F+i| zgJ(gt3)&N)y#oD7i}q#~uf9DUeZ3Ev6dSYJxmvtD**l99r_U9}ZQDofl3xtyH6Bo2 zs_dz)Q2h1Wh*`z+Ca8F>hiOpZZROO8_pRvna2x_}L#=p=6QSx4N<6O82{qx{v zXye=GnS6Pu8_TJ#c?P(@+Zra3t zJmUNi8!%tfSY7F@c-VVo6UXC-F>l{Z^ispd_Ano?`z@7@Q3ge_#=24 zTnE*z-2~;A`p`zKjjKI7new7FmT-Q~|CY37UmI?;ilv#o(=~CLJ&M`z*v8)58qb&T z*k)(QtjfNF4Ch3iim>#6F~T0+IU6}0m?ZYfV@kuF-tinn9-KGno=y~EhE<5Br-??a97mgDPw--TI)<)={L z-wKs)?6o5v+A}o||10`!?>tTH_q*5&r?b7^G;un=7c#4~uy>h87_r)LhSOPVscKua zcB=MPYow`^n?~$o(mpcP8^zV$OB$h<`+8ipo~p8+1r^+%@ z&7N({#_NH-(=x(}#MkqO{fVY5=F|#SH01X=s5KUvYuwOYhe?F9;uziDQ5ix1>uIzQ zdwLh(+f;kcWW=m{D2>ADd8zSZmNBb#+ujiwFSp_G>Xn#PeZ9)KAAi4~GHma9jF=T+ z`4KL|*Ag$4yB}ar>sLQSt@kQ+yl(SS>mK&*#)!G6QEo^&OP}Xf?5Ygk1{LQ`usyu9 zR16M3jF|J_ly=Ii9B1~fIyUd_hH6jlhgt*M z4%6TxQ0e(J)OhtdSPMUE(GJ$4ZLt4qpG9wkQ#UY!mnM$}!k;l`t3^2Fuj>1HBnwGD zF^Gt?@!I>~0 z=D>MSm) zsJuKChU+LMNoCU1gcEL>w4mNs~>#b#am-7#oL!X z{td3h9ffBNJP}?8)wlitn*JGnQ#-N?bANGeU&#M*Tm8v)M9V(y{mcf~ z3~q$2;cf7AxC!dr(PlUi-U(G^eggC0T~KZ0R#*z}hAJ!Dpz_=9*U&h90Fs4hJg5CL z^N@7Xss;V3#+jOzYY&Ir$36%*il4G&qYeKn9@UXV!C`PbRJ^oL-OgP#Z&F{N_e1*Mu4O2!2c7?_vz5cT)3{^bZ^-Q7Z!!D2F>A-R zTQK{%Gdth8>)QmBra#xbympG62c$sxt$tqXep0uDbzys_?%{sdxI*TXSE>9y0XBd+ zuptD*Zyd8}l_af$X{_8b&>Lj`q+%@9%x~g(Huq_p?}^eO4R`(e_9`4Hc4o)%zrw9K ziSkmmFrB+xrK&9(O*xBj#g)%n+-j4n#xC!dLwVsnnN2OUf zEmKHc->2qaCTX`#L#=5jEaA16_i;;Q`vX`H{uU}sA41iokD%(@$1o)rOI-E7Uwc)~ zgUw?8DBn9ef0VxRN9pbBXnV$}YHK<})xR!=r{YGuuiT5iy&Ez?o`m zP;Fo)R9HvAQ{iZ+IF5l`;CQIKoB)-6li?&d1%&V%}` zuugEPM#Uwl74|Zy`J~pL>^EU5b9UWC<;>nY83`0_*$V+I| zmqPiq3TDA8>I5s59#^4GW&Y5K^?SSKrtjVq_k2X{)ik7yX)_g{dC%B#run17l7y&S z==nZwsXSZ@RX)~0^)=TSKU(A7S;npKx`w?!GQw{G?L@`)ns7(8-%0bfLd4$T7%{8t zGOMzdgXlS_nk{>^q59A|)q)jGU_I1o&p5a-+5y&wDzEHsA>T78o7(53aB2UD`X=>P zcKug=?s4%|9Mh1npG|N>>ZVYBHiPM~IaJ+l0eivIpxVxsFz#nb1wVaVmY+$_+B8-x znudh^Y=aw8>suH3*&Zst_1;naQb*Vhc7k1@-Yv%cR9?p88TQlOQE1;0rC~4ZXLsC? zx(Ae>y`b{HH&hwx169WQLe18}f57l%GSP{LFyz zb2yCqF~RuZ<0H52J${MZUWHw`eHoP7S3tSF8p`dfpm$qqJ!*HuZri)`61)9%I)i++-474$ZdVISkY~Jr(J~B#^!xEP1a#oZr=#yHs2jx+8*jVBbDim72MW7 z!HRC%yX7LhRr$Kxo1NQyGjH7HUGYk_7y9OC1iU-sb}DCos2uq;QQfe2!9`5ZpN2Zz zFKoxI+H$@tTB-0pg4(t*>euZ4XO;WB=WMwj!vATA;+li#(Rcn*p92+ledn(-mjhMK zb73Di2P)io(C)8S{nnVnm-{}kaLdozoS*80(~z*AItxJRg;0Jj;=QWclw#B^q0RtM zo3a=x{mWq7Pwfec`>8$tz8$l7okdLlkcPdmpBLhW)E7bdc`@ezbc9jV8V#&~1K>(H z46cH4Kl8rP&z5^^+A59Gkg%VeL16s63d+xGpxXBTf-=k51ZK=~EmWIy9sGNKst(R@ ze##9=xGdj*8w!KYH;|tW&;J&;Z+C8Qa&F(@+}`5c zw%^>9Oerb79tZ}jD7LnuG>jy#k5j<4m!70Zqkr& ze41ic>QkZIZVokC*LV9J;b~CiE)8m)(+bA@$`6&dczo8#{?BcBn=ZSE++Ky~*^V1E z;e$~1X$NcvABMf)BT#M1qc9WhgldB{MxNj}5k8K-{g%HOZQXc8@9v65 zV_^-L4U^$4cmmX(dxb}P?G?TY;fd&922-KVg^~U`r``zJ0~&n{o*W5Q9)X0#oc|*8 zwMZYCKLu(}E8{4$cQp;BqizS=K*l}+VJELNPt(3By)QnMwCziT{635{%EJ_72BJNe zEuqd*(7t%R&(t0ceYdJ{z1~5!L7E`i$EiK^r=g?LNn98gcV>*Prv+}=a}$Q+&LBq0 zos7QLHtf2$-Sg|qkjj|7yUFf ztFl7cF_qO?o4%E?-<57b|F?T9<*0d#~U~|;kL#wckfr=4% zZu(d4sa1K?p4!2Vs*BoFtM+RWJR53Ht-eV}3H1J4^Jwi0(z=lLj%&TA8R?Y=^=*OH zQsdveW$m@$Ra;Rxeb^@-O(CBs*Ji$9?@&sdKEJ}O(q|u3`n;APeRiR5??8%}`;g?H z%x*{YXx<<sZ_OJt4{ZdMK78L`+DFQ&NuS10`N!N~7~9&?@yFwDo=WMqO?-l=?ns;olUnA>VUl`DH5o@DIPtL zJoNQYS4`Wad4cB9ninYinisT$+HN@M)aupgBD0Z{GzK&bIp2F!rN;BYt!j)$XR z9y|jUII7PXhk6Md52J7bTm>h>)o=>D8cv1R!n5Fy;W_YjI2-;1&Vf51@rgbO^WiVx zeE1eDfV7c1>oocoSO{sef+9%U6p%jA`fxF1AH6w)jW)%c!FC!vAN_Xl0@wpChkEyU zF&qFjSIB~zE2#au0*-^4E9ksL%@x%CY204`HSRBg8s}dOHD+H0HDJv9W^@+Dbt$%HTZJ_2E>c{Sc>hqazm^t!YFblQj8)v|Kpz4v{ zXO_cz;rHNu@G_{m#WnB&xDGx9H^PVEUGPz8*Y5PbUh7(_JA)DR&l0ssBM_bYb1PI^ zrEfmd5$*f!hjfd@Tk*7aJlTB)Qmd+^BYJk>pW4+YjlXiYscExRhT2kawJ)Ou|I41n zJ}PT^UdFuK`IWI}`#+`IYp5H+*P+_yH=)w+*Ki=*4^e}HeoKf*u4KSPZpjzHC?Poe75XHexMg>TsO z*mA8kewDjysBibRpDzPy2fo&ul>Xz9G*VsXs_1(eednokAIAS@L)D2~7(Wj}W2UT^ zZCYxqp|n&FeSrVN$z528+iPeR#$3Z91gC8s9X0q4j?{~NZ4zl9y) z5!eZS?x;4b3u?wg=8Qe1ad*^et2lqov`xKW2I@YLZ&iZ6a3Smm7eVcPE^<_xGywHt z$1*qw^#xG-o|Ol->?`e+<{Ag-TPl5%sJft9s(e*`PK0U`M)1GdAN@YU{XWaEk!e@b zUHj3Qnx{P#12C(4rnOGZyY!w!Zp_BMeP5W4zY2?X|Aq5>6XCRXOR@gP|H|{0h{lw9 zvWSD)n-Ng`^(a^mj)rQN#z4)j&Vni{XTzRQ>j?v())O*d4ph6Nb%dF4E>w*2p!&Cb zxCqXJs$cV=+M`0K`o$VS^oLMu1M8vI2JV2R@LpIBABIcdGjJK)3z_FfUxSyxcOiq1 z6^y~nxgU(B&AA_Z=cRK2qpjhOpvLQ*3uwNL)x6oZb9yhUHtZBc>wWsRROzhxq&3)? zQ2VwUBU(2T_5G-*Ix4eLpM_b?@9eludU`itf7cmIYDd*Js-Mzt>9IC)72&t{VMQ2W z+q|j;HQvz^o}V{H&HUWt$(^th>YqT3K{QX#g!e<$&+YJR_#m`nCHb#!!!>?V*asnM zYvSu(s_*t5E4znE<%VR7jl1_5x9pf%`C#vviV!m!ZneR?5ItXFwi=8u@6;GoR9UMI z6%VZmq`_p^3ab7qKBC$itrc{IS}Qo+QR{qKGf;d*)iSLe^noWq<)zlhx=?o-2MfrP zeyCNV?PKeWuP-gh1=XKZV|k%Dn!RT#5-493e~tebubW5btW@W}K2UMdc`K?nIxkFd z5}U!nP;t`vVT#Kzs5oRo&9)TB{!Tp{jzC}aXcSccEpz8WnNvLy&x2>6U+B~tFG_zY z9EbigI3B8=O@J3UstulqTJ=th!bxx?)c$_8A9nwd(oWwt^@LqWKdlk8p~NcWtYy$^ z=sizM#!c<1C;kbiuf9|Gdugn4WAB}c&>E74NVwdPm!{m1PSGU$yXl`4*P5tB)sI2^ zE_;Ka`YqftWA>r2A?jhU1tfi=%17#kDL43M%8Q6ywZx=>!rg+B(gYp*=>3-FzlxvT zv$_zq+VA>|@_JJ);^Q33fxBBOV(ytzoMs}O6#<^h@S_^M94hQrK$RQD_GUhL6;xQS zh8^I4L6wK^!|CukcrN?_%!6y8%7M5X(uPJ?z;#gb1;#4oycKZ+>YL#s@D`|c^fve$ z+yvi-o8bpgY5Sp5e**7B|8H;$)c2-8f%V{BQ1gVXkTr?mZkPt|f$ibXU`Kc#)cVN% zkh!z*XEKyOs%zpoa0kEVL)!Z2dGJxV6h6k%?P~ZWNv3bTpGW^eNEtHgAuqz+sDA-D zcg>uK_bU7)>i6Mm@GyKGeg=OHzk>2NLWW3P6Yhu1QG>T&6G)mw)8IR>EtEOte8wK{ zS_}t6#w9DJL((jo3qOL)vCR4ob1Jjm#9YdJ8~r`lAVPl!wVrbeYy=tGYh5RLKhzop zV{oletY8dl)^py0%)O%j4bvfGO|zcE*wU=$`~@=3i88hfNb~4X*ab4K3r>fO({%TD zG!-&ui=G0>lV}Ur3#P&Tuq|W`XU^@_H^q#%%s0ih4^uyS=#@gwIuER@M`TL)ftx> zh1kb_S0g_LBRWSy^D&LF)c30Y);>b@y_yfotuAJKB-?h6#VGXJVpHo|U4n}HErz0} zdN2PqcGLfz`F|{;ciRJCPxSQ7yw1s`X)RDefmMu&rN|%QBQ^H9~nxqxvr|EoJy}v&hvESXR4^)}A`5QkMQDL$7 znnl>@VZ(SLT!rX)8aI_^yP^7{XQ9Hj2c|>Xr)YQhJXG8M0-OT(!nyE8SO8ywHf(L^ zY0^n2eHW&6kgZVT70tKfWoH+5>|JPfZBAuJW0UQOp3cngsLB<-n>`uz>FBFu=sk58 z*b6F+dc$F`4;&A*#+42G!+fYUu7!~H&&-{Nzza|hg?7zm7~#`7E1HisMU$D2? z?EPnvKxHih3Hw)!dF5}3v6o%Jp1sE`vAsu~y`9EhZUuYxKC;C2zI68JpNOCKt)FPt zLKHuHuULfi`+7Jts|BlSqp!6^y*CZpv-g7~ws*d>r!~CryBF0Dd&gIV7Tfx#@}qF* zSz*justsCc)OOu1g}VJG^fb@3cW_0_eOwvnr6Jd#ujgv)D9!&1DsQwN*a&Jp@D#WP zYW}Hx04k%tJ^K-AwJ+jGcmteZxgrPN$UYXenLkE<3A`Cz?6?lziux9~5#9-JgZDtW zzs;#1f}5)amodf&w(|QvsCBhBpw`t6LanR)0cu_CFnkbx0p;Ea#8K{PoFt|~y~Ee~ zk6mBWUPpZgtFuAtP{%b7Q)@*XXu&qC#s zsC;_P{I0fLqWPu5skQg9v9fFL?}`MnpMiwySWD*ZD!Z+#%OAxx{w=A!iz`A)_jP;c zIeS`1u=ebEo+`Wco-F&_Uk2)M+1-M9wb7b0tL)l$+nL5+^-U_fa>L$TWxu`4Kpl4D zBkZaV{utJShhU0n>y)4IeQ5UnsR*MH8-CeQKdVRYqLr>H9}0)mN>{y`R*vcWZIyfJ ztKP|+%Dp%M>fHGBAdCOv{krAy9S%zdZiT}lwZbwSDlC~$rBnLq zzkC=(#Z7b9uZKnR#Mb<3AKxY^EcU)CJI=^J9S%!5ZmB(x+e%xh)mJTrt>F1kVUd2K zuv~zCx>-f}$I`{#V`ax28Mqq`%R1Z&hec|IMc*eJY+zN+9YK7%jP+{2zRgb0L3n~nQ9f!cz(Eob63{MyqwP*HT ztBASd3MH*Xd=2P}NWhf>C$T;d*RPF%SJ<~$i}~?r^cB|a2=f}HX|x%nFO9Z>*o!ic zQQs0}e!^^lyo8LE%sZtt$h?G}jI|O-+D3=No-hj%KXaa4UD){b!sq%7k92>jFd z!>*P3F{h=*^IFT(d|u;|`k0IFOHC)d_Rgz_X$ut(oHg+T%tAD-v*!$CqqcWd*}a%D zTLTgGjK%B;a2%`&CqSjiMA#5cf?9*Kb0y7Lbhc&uJ7IhOlYM7`*$UxUfnDFuD9rY5 zro?7{i$U~MR>yT~8UgRM1Il`X# zpc^t8$w8JOYmhC-Ze%}l6sbo-v!^=9Lh_L1$a;it1%sE750NAq-DXHHWE_%*EJxNN zTan$!e&h&Jn}#SI8HCJ2%8@n57GyWFA32KDW6<9j$wG3FWypGDJF*u!h*0E$#z-$@ z9I^n3BAbw%$U)?Dq#2!MFJu-{j$DImLUtnikRwQK3Q}hz3z>zKBWsW?$ZljmQj>-} z4H<{zA?uOt$RQ+&1|%IBgv>(9k#)#6WFK+}X-p^I4Vi_MBWsW?$Zljmas;VOg-%BX zAvwr0WIeJSc>_6&G;Bgxk_rYD&6*NlWC5ay<#uE*@*$#zq8ZW)$w8JO zn~MkCS>$w8JO8;~8y0puu>M&r^C$w8JO>yT~8KI9NmkI7?uWF}IAY(RD( z`;j9^V+Nz$kXcAMvH{tF97H}x+NaTGBYDVjWCOAT*@qlLYPKW{$Y>-7S&eK!b|d={ z26RDVq#rT~DM3~vTan$!hlsk<_DBY@0Er@7k=@8)q$Z8QAS4^1u@BZEyOI4!?Kb2Q zl8qE1tC01`F60g5bEF{yj(*4_BoA4RtUM~tB?)I4rCv42&vf_w~!2ECQ^=EgKR~1BL|S9NW(6~6Ujyj zk!z4m$ZljmqE4zY(hr%0lq1(5+mJoTLF99!+3A#DWD>FfS&eK!b|U+b!${3;_=RL4 zGm#Qx6|x@LhU`K1BS(;$-3dR^3mJzLBCC*X$R6YnlGKB=M>3E+WI3`0*@YZLK1Uk% z#7`s(nT3=i*C5-FJ;;9K2-2(L&j;uwtB72d8 zNKzl%LIxq($TDONvJKgT97byPr7R$$kvwEMvJTmX>_ZMA_4*MvWD>FfS%YjrUPeAd z>hFf(cpO}^RN_#OJu8Nc<^vM_&N!H>-E z(2q3<{P-n)jQbA!_!A+f$qQ_{+i|WUQ4OJMGtY}u;bi_3Ytd2q^BHB&rlozKEyH1Z z`!KKkeHGRXnlY=X9b31s>0|dkSGM;S=9On}8+)CZ+nf}$XXBjM-UrU!Z;icHjQH#7 z{M$fo6{>*nq#=80hYlb|k=g@^C(;j@gybRrdHy*mp!)Cc!d>9J2-kn|DmnRbSO2F? znYy50Ub&1NOB+CWPNr(a{K<25hwd@<`~@>9-k&M?xp`xXN|xZ0?ujnMR5$F%yf@P# zNK2Jvx<*6&KX*ZH>9Eq$+za?$zssBO?{h9F&o7hP=*!&=P;Esc*va|b6nm;KVS5Ed zdHKuGQye5!iMzj(`DGV(SM+h!?7dGO?&F?aJe*+qXdIVcdT*;I?AK?c^MtrxnV}@B zl3!}8)F#<75^t*%&Bllx(wO@RG?nvT|vecWu`L}KX}j@xYG?wFWao3@F~>K&f;BT=VJ`^TOX^Q7^2Ic?lpWGk{8 z*^eAW>J1|Okbl;rAo#vH&v_EA|Bq4NFFR26{-5_7rtW(`_BcOmid)6wn7PLLF*SE- zLDBqUDvRC^U&pkTrY9VaC-CEE2V6YnbJzNaWpndObieqqwPlt4+Ti>O*Rfsr^!u5ZH^QvjcOZMa>FMYRS{a4>9dkYYm^}nAOq^C}sdO=xv z{vyVCvH!b{nP~gY9{o@py zZzaE`=I1Yzx#Ni!?~cvmVE*U(gXG65`Q?(ZN`Co%guV9W3CHU#{CdLsHL`F?83nW| z@$utf_FjL@kGJvT1@DLQXJ>zJ&9vXbJm+&P8$UG2a5Rr1%TA?G5S zC+zP*{B7s`%`7Y~t73bkzI!xc+wX{J%jKD}&3C=+nYSx#S!UL28%E1^9Nrn$W#(kR z#fk4}O2>?CkL}(hltBdXa{<;T7-!fsTV&R@tM>h4WwXrpFxx#g#<1;U;xPux28=Q6 zK7F}s+qcAKhgLFc+ouS9jeWx5%`#@=_gUEXCGM{5$Ui+}Fsq@>SQ!2`MZeoNBW^G3 z$0W@Ab1r1o)_c2u1Z9Qvn{L9B6&u^xdTaNL$ZR+~GmKg0M1~`nd5nssrLBYZeA~)? zoP+rk?yT`+J6o3$=h0ka*5;Aco@{-Hj~T<^p*c2XsleE2#QI!(zn3k~iR~?N_86)Y zE_<$(A4|UHI)D=Vt~r>t2I+;2MskpH?{-Lit|9e8%a)PB5rIiJ$kA zZ^_IP_Hzn;e(e1;W3TVV&ylVU`0-wv_1gTMil2?xNFJ*LmExJbpfta1L2+SK%gtEl z_sdDv)3D#!_}%+k{2rgX%;xZ<+=9}w<4bSu`7lqoj!eV0s`%y0Q@R`UhW(m>Uq1=^HLWb)RLvO+@{6jlwpO{` z`2AGjGCUJMe;)R8SRs|Ah$xOInp>Qw<-FsHXKmM6v>?6wb0&WNIqWBOGOQF)_d{~ROj`llW?E~%@8_%izw*7g0 zJf}4CbAXGm+aR>QZu{fJW(h=Wol#-7{ir>M5M>Y!^A(t_iJsUHu7;X>iml+4P~UU4 z;!Tvj?^Amt?Y%5=+xDFi?YA^f*lpb#BezAlt@~r-w%8v209vjKv^M8HaoXPxqXLoTa?>( zLK|*<>*n3IXHv**+aKCJ^C&C0{WI(;+@jpx1{H2mW#wLI-PSjxa$Dbr*>mpXw(a*4 zyZr!m<+iBza}UDij(WfIP|WS2tXONcTiyrc8!tnppQtkR3bg5` z@BWm2Iupa5PpvrGJ|%JZ-o&obPn6rgj=80?Y3;eua>Mo&iQRb5xgpAp|BktlfgACC z!M5#BoR1$nH$=H{2r7=E;`n=L`+!He@C#ZIEr=PU*O4( z^5fH(+rymOI=3M1wr$H3hx-fXwy1D_3FW4!aDN4DxU-zwqJ8J0bhYhu;&eUX1RHKq zZr6m?E!DyHvG*iDa&NZRU}h)t&6kl6k)#afq(}xb6DdJfBb$(&$Ufu{QhOLQ>_ zWft^sKkV0X{5rdmUsZX3;Qcy|_Z{9ZUw<|^zuXYscpSyAV((WK-bq#VgR^12mUb)f zW2yI}3hz|BAHE!vB=BP;ek_msQKfe(-XEV{YusG>HTppK-J#x{ae62 znt{yv-~Api+6C8BaxPP7k5?l<=I<)fr$&)$ z)28PZ7UVI_*80t&eCFI`$K_v%^G{dW^eS3$$=&lUJP+xt5_e|~{``+hwB z>`36xYW&If{){NftI9impN_sBHPaxNNAI5eb0z*P^!`*~&w}^Ex7n+mAC&dja}|Cp z^?poRQaV51uA{MRSEX|3^XIVhYf{W7zMsdhtGr+S#cCD(`4je5A$HsnF=H5cRSVHR zPd&^zqbeV#K$(;1w0&XJD39e*T# zkI5cL?8Nsp+VMkTvwbn!fgDsi$z9w3Cw~9O7Dd))?7gNkYy0rTW-}_8wS916v!rFr zUCrBV9~xgHQkyOR^o+!;@@f=RI{WvE`rY=6iTyakn2*0Rw*6aTvy?^Lwr1bJUE2q7 za4`StsfX+}|1systjdhu)oQQOnNS_nSx|dC&V{YuY)IY)IZ$hAbD;LD&WF6u4vHXd z1;r3Ixc$_gg>^nuKXf6y7|w#1K>jC;eJEQk5uFvRZ+>;gpU&Crg6K>YeS52Qjx_o; zeUGd40G+d`yZP){1gmh%_A!wlga7q}>&8m_QNKsr&Aj_ESReJ}P-`@+VM}-=R2{h* z_JY?yrmyC#FMHlg27c;XBc17~vy!xiqcx&4VtJ^#Vf&v5a|ip#Z*Wsq>#`Q1- z{=iUmEq*SD%7N`u62E`H!Pv=;m3P|@BrXT*joJ8~1lyJ;HoLKsS=%1lvrq_F-`R+st(a9B+zpf9&tPr14Jr-pgDPkD8@1B6G3lx_5##UO zRgP_&8qxRJ<_VYMhq13N>=CH^*B)!NKTo07n%vVc4eo}m;B&A8d;xZcd!h30MK}b$ z3`f9M;5hh8I3E5APJsL1MEELHS=D-;9+lB1ludiahtB*somCu_U7b;^^Nj5O_WSla zrtBQSp322~6-=IW$lgrWJ&>bF!z}hyBcqWVWI3`H*@o;v4kDi;jR|l!Bnz2^lpw2- z4ag2;FLDs6IWh>+kPKudvI<#`Y)AGY2a(T_dNfk)kt}2uQjYv9pCml@oHO?4BJ(`3pK$atGkuAu7p8vfm zp!y%1cSmeGw3nuP9_Q1(6H8qGzhKF{^4W8i6tFYMzXRaRzd+`_nUh%)lhsb4HMv~W z(wFmL{drEmS|$DYPQQ93{RK{6!3(=n;Ph)$($^eG{;Ho0n_uYkPpG6{h+1oUH7n^a z$}N)>>^`FPSwNd_c>*$An-8Oi9Ndr=bFUf%)6i{cTvGyrDyfj^@LO3ipZ`v z|IZBT4j0x_V<9zXIVWGXBw?D)D_EAFC!@!*&gk>eug#^q`bu4mJx`H78{&Qzl+P$G zT{w&#u2uBQ_us5vn&*YsfP~HROEZ;4pj%eggMH%8ohr{8RWT z>d)X`;ZaCKY22*_zd(Ho{0g>)e}!G4<~My|G8_SGLC%*APJ%O_<}vw@G>hszDVoYDd;l>HTT%*{pZK{djRU3^FP2esPoNR!GHqZ z8dihpQ0JMqg>4{t73Ch6fcM=|?r#Y?!KsijZ*(E-2A9I_a0OI)UJA+6=#5VQR>#e- zFZ$b{%-sk3qkh=wKkfKD9Ekoaa0uKFW&UkA4E1}EvJw3q%!EfEWhPoZi96J%#f$=T=9P&~@ z;Y_G@TIV~=f@ed!Ca8Qo3+Y98bhl$u%E(CmpNi<7cDpwdf84kr5*uGM#honl^~}Y+ zlVBcf2-&J{*0ATn(Wn7aWl&w{PUDV34w$WYX(4>Ef$GTNET4w;+e%z1k=L-y=l@YxEB8GqO_wNVB& z5T%(O`i7{~*FlY`uZPNa`if{1$Q~Q0wcW5-w`uzWJGP0azcWvL{?f*n=SJ+REd3ZN z&(^~ct#BmV0H?x@P~qML)#u*<7s4%Y8Ki%TUJmbqj6V$5Ic|h^qyICw z4L%0%gKE!IAJoRF+_j|Mw50vAWw0sh*gg2a7nJlybViBp^O3rz(bKxN>QD}1$5|2G zlVYA^{wmCRW>6edb}4_+?vOZ`GCCJ3KJy^Mw1DvoX?NtqdK^YOxuqfK^l*tk3q7LLSzlH1=)@4M~)!>dH(-N0lH$^ce^&9=YoAg zDERjF0I;J#rv_xxovwCtDw##5A%MEDJm#OyDIYszm74}mEF75!MJA| zeq7@Hm{eLkH@~b*KWUDrb~PP4GVjf3F0S7h0T}B4^N^&* z%99HEB$)PxDL*Re&-TZ88GFi?@b5mq6y&hJ&oAXmSl{QDq88To`K5db>-+qwSxMjL zm+~cS-shL{rGkE;jkm@o74-A0e(g&7^Z_QmDV6jwZuIL^(x;j;Do9JMTS>pX#HQcu z^4UH4smf(T{aH7}wk?U*(RF{O(pC3n)(X-BzprBzdbYi=_o<=exA@+jCYV>cH-!rS zsqhro47PyHVOz+3P|>bX_iy%rX;35DmeAhgqJ26Ny*Ez}u}Lf}wMl5(W<*T;fpyI- zV+XG24o{WA4p3#MBUIjZgY{rfsPRrO*b4TB9bg~W9qP_bja5XAD|IL54KM?4g~Q?f zj*r4j)Vm>TW@cPC0)BvcB>V%^y_e0YEMp*Z%3v%!9i9REz;Tc{UN9bxbYzShOhnDt zHkb?I+^1O^>ORemun2a8x~H=rTnxE$Iw*r@!*X~YWNsWSgUjGj zcoDoDE{B|*W$xL$9_pS=t&gsRw?XF6(fi;k_%OT-a&B301?0|<;41h6yc%+LOK=V3 zoQ~l8kUMjO>)mcRbka8L@XE*nh-2{iC)_tC%;d(d; z-VA5LjgYvTbS901&8SIRb9W|bX72wWO$;x9ckw%MGsI29P4K7aZ-q#7JG=)z;`j#q z8EVb@Z-*a1)(oPbL(H1_{sWMEDuah$Be(;$gb%|m5VxYe;Nx&0RJj-opF%whvgQyS z37>_0H*d%{yTNm)&voQZ45N<1J?Lvq^5<|3d;$K*aXZ|L`VqJbJ_UaPUxly0_u(($ z5x5V20bhmHsi?#?ngZX1&Ec4*|@4<=iAe;f;hjSrm6`c=1 zghh@^;qOpi;<(OnBm4;cpTLjdz3`842UL1J0{@Kqad-qi4L^g=JN^TnLM0Sln+B;^}X6E40D4Or`m zu7D@P%bot!kORY_d@C8S1{B={DH~C~Jv96|)cr4f_h#;SdBgEt*cAQWIi5tL-VAkf z*aD_G4u_Pn=t$Taj(3~}(@~!b+raZ-Td2;V9b650cNJX&DVx!)j`zXSQSXG^;1jSr zd=b`#Z@`}L9Y|S@9)x}2$FM*A0#df4nn;PQAZ0w-0qTC#?v4W>W1Q%4$2>S3^-`Dx zFL3-Zq)tR{g`?pej`zSZs2_5C+3`&{7X5dj?oa(4oCps=&Nzrh=q$w(AZGzY>%eT- z0P_8Kv@zsc=V%LfHcW@JU`IF`_HY~sb5LhG=EFIt%U~Y7&~YWqM}4*9Cda$sJoF!c z^WkH#0Pcp1;B&ADzU25CEJpo~<59;5gCo9Kh}MFOVJch#8$sHNXfwxjxD0g{$B~W` zA^V-9Ga%m#MQ204dx_44d@B+?&#@FnQD5Y^*70Vz0{zW!CA4=d>waa4_Oac14&0( zQE_#@jMg6dAzBU8-8cF_1L=xrJ)$3GS|XWFMTKs)?=VD)B(|VY~sXS2JwNBI7#ZPGvj=SQkJIN}>w>xXNlg)bC zcM;!-xbNeuIJR|Zr?qnbzw-VJ){?aQWFh}|=Kp?_n(>ay;6!pn>*>Y(uk~E5!HDkr1NZ|&K^Y|Eb3^~azmmcz>7>5UJ% z>vRw)HY+%X8MeYGwJ#(6O+}%|QUq{V4dGH2gJv?|5u7GdDYaMTb2T*Iy@!ycOTH~MQ9=}D+ zT5RwkeA)3eco6k(;K%R}@b~aD$1mVv)JfGC1Hlyd7uXPf3bjsj6b^^~19RYC;XL>^ zxDb8`FNI&hD;+t@*Qj+Da-;_DKw%BI5!Qrv!xN$A7$?EUU~TvmtPA(RdQj`K4WZ@` zC&Mq`Dex=U6rRFZ{8Xs9gV@@!4P+c^?l^7*`=f3PnXd)yVGd+mYvv4{;rCE?ftNWl zpE2rdA>-cYTG$=l1baf}13@pScZt0raCinB0~y~0XF$d=!8pkHA{Y-DPXrSn{e3VA zUg3B>oQ!%4oC2vs!BluZoDQig`u;Eaj3Z^!s40tv?>qhho`t#390SJOXQQs=NZK29 zC&>4VQPM0p7m`-N97r63JV+P~a~w5ykiO;);`wkM)S`lTCB#hhddHtSZifrde+-@n zcfn$)IYKFX+wrjDXO3Swo{&s?hPir;NZxPbd*hl@q ze8X0>%X<8nCX4R@N`_T_S(QU*coTu5o(Ndp82h#>GRZ| zst-LK(RBdY4`n>MMsS9bNo}>%Cl-~FB zHvM2GdJ2<%(^>SoXIpNm-?s0CdJ}T>!8#A7rTIS_>b+|p;-kIbBM|keXVa_B4f5#! z3)w}Z@OL468u!J=KJqJ*G*vqFM8>%^>K{rYjqB9swkB6KeoShvXs4k+sM+~cYWkYw zTfRB}rxg_}%Pv@yUskyctirC`@pkpzOzt%Zzq`Sr-rpSS`z4i0*-`$FMywz9-eHu1 z;-tNPdLAHO>%#|O8hi+9&3^}MWZJ!Ew0-T7{t5HB_8GW^{JTC%EB|hGyNjgO;r)|O zTEFS@-`)QeuIDoAf0uqQENWlNN~G1Zw%ySCIk^|k`y$lJ!{f>OXw2_O;KQub*Lhv+-vu86)PUW61G>if(i#8d6zzDE4v(f`@hmj(aEb;d;W-{eoY{^z+k z)d|I|4)uTkcGv$`;r_ozl5AV;+n7Dh?Gr8a>H z?CkmWm_0bAU6%93NLAY7%K5v+h50l&>YfIK`Bfk0Dx87j{qXyH^!`(i+H(IiRQ`HD zMl32QAI%x5oY<^1*h-ihVn^n^89yGmIFts9a_1M!#muqxNj`jjzsq(PKJ{__X+-$a zA9Q6y;ma<~<%siA{eCQaYrJ2+J~dVa=9y<<{+^6q*L%N4a*`1jp;W~WAD>mu54U`2 z{9w%~`Kb3p=co@aES|g29LrrLzkGbOo}uS27Upkb{QAoK<<7EEzOE)*tnC=H{&($J zk)_6=d^Kk>$zFNB$r71S9sQb_Df#Z;Cp(v6oirGY`|~k-A)6Lt=Va`vh==XU(c`H* zKAjJ_xVtKZtGo{-?nj*8fzr8(XW032G?ALDRSGY}J zZ8G_2CBLe2UY_^Mw+)?LA$4AwIC4i!@+o{wqWm*yScNm}ygxqu);WJP-tiCXtI5s7 z{#5Y{yUKngIZwiIYJp#EykEz0hMo7z*S`e`{5lQ4I(fgUaK4=P!{?FSQ|k%GCk;Qk z$Ni|%`EuSLAD3Qw$x_LmmiW`x`{NGZI-a)iu=8WE^~(Hhg&%{xAGGsx^X&~2`cdsx zKkV#8WXGG6ehGRzkRIrda`x5U$XP~_G z1?#e|==a{qo*k=2xV^*})F7`A7}Uy1#@!}+(x_%|SCZ!d1yF;zt8 z+?b~>e|On`)$eILN5I;J3GXAkif@kkF{Yry;4bvX!KdL=xEtocXJ83@4z7TE;A;4D zcoTdcZiFvD!eq{}xd$@eBYtBEpXOEF7(h)%H1BGKwB!Hjum{o^(YZ!Che^NLdux>T zIfxyj#n0?cMlT!D^A>*8gzrGb^#IiL>RqU~y$4&vgD@pX!%xl6nj&eeW1JRCyV01j z(hxv>g;I}VEId@J*)ye#woM{GWx2%DmJ5^M+c{hihpQs6Midq=Zw zR}aoXT^}xjC&LuNoLIV{pB@X#dd%B#QY1EhItjfsh@KX>RU4iLwSTk?RJ?e{865@n z&E0s|1x|$B;B?p>o&$TpJjk3snh$%y)F6X2)j94n5S{CN8eysfwbrP7Ofza6P6EE_i~}isn#x<@qQv5s;(&=#~>Z3 z4_Qb*Dh11%OwGy9;cLU*QK>jGLl`nRzl-TTTA+t(TJJyNU z!*IRXhFR5jQT6a%sIYe=%>KN0`De#4iO(8)#Mtc{3!5E>#LpQCml@WKa6f*AnH@(Y zc6VYAq&W+tk;4Hb0gNs8u5-z>%fgzOKU{xt6Zr3DQ})SnLj*R zkSJ?gYmu$UF60g55Rybk(-`T7WFfPV5@a>93E7FffgDC^(r~09gOF@w0iwoaJ+d8n z8Tk-Nn!uh%q#rT~DMVHw8;~8yUgRM1Int0us6CQ_%u<8&4?JoQ{CN<2oq46Ff5ws} z5B%7Dr=j^rc5!)bp{^*mH>qpfA~)6|vggf)-}!XqEbw7tia4LPxFpS85ZiSMN9(fw z-__|)%`aVAz(+aqS97VV-WBWPLc3@l<(+@dATB$@amg&5+q1_McS^;v&BK*0Hk|g| z*(T?o`ZE8F!_02)->Cd@;~hU9%XriKqR+cAbH>7NoEv^^WLS6(ZLZz2-_$6o;omq_BG1nJ?e|d%V)*yD z_88?VjahyC{k*H58cv>YI!_?})9B0*ZVcw z6yBoT!it_&C4c?gh`mMTxx#x0C*fzA_j79DlF|~h*kbZ^HDTP19hvuLl&{)%vkUzK z^jA2$el9UQl&|_-=J#QKC+0P7xh!N}X&N@KahhKP3G2^s?j+$x6lsn6ht3_9C!DX~ z4tGRr_-)FBX+yB1^_KSNJrc5q);HSoYcAsPq`6;rnW_M}XEJI2R~L?8T8U2C&YY5I z)9Q1Dm9-j~_huA_Zs;vX6!&U3+w$n^5>{htt(D_0d)lYd7JF?&_LTPDWbb(6d_WTp z9@9YBfAy_>@_6Tepbr=zEH!_~LW2!&lvepA@Jy)D@5iMcC7_Wl`h z_HBomDB|C_3Y>eU66a@qoTub3rqxHPfK}|UDZ7C z;hW?-tF|s|LN?(`zs0p}3Bsp)%5?s>?09oNd?P~PTg30uSNewa6;WTG!}{guS2aGq z{mgTX^nBd%&otsQ*2ia5eo?+|!W&myyl_cLwk}PUIi-6xaq5PB+4bh7zZU(@=xd&J zmUG9~v5}$p=ABOuVBE5C4*%xcysfy^9=Fmlcdm2Gr$yNOdHk-l@KTkw#`oW8ZqXzS zH~ll6G`ZKO$^3aeW-rPuFD+O$TjL{}Kh;wg5Y9tL8kW3Sg;j2h3dOr@$)Z?3hxHZb zs^+H;`vDjBQ{}09W)SvQ5`?{M@siw9a?{jx>}^G4&zqHg4tiS<%|+w-Hckyfaq?lW zYWRKM+OM_^^iN&b1?I%bhkW?y#^)3i#meA8!j^;`nfGRVSsNV+AFW1_+){q1euaN4 z&dVcy_MJgke{SjA?y{rbs#mhZZ$0#z+*AJ-w#S7C#!ih&`i1#L&QA5z#wYP3;chNB zZnbTP+)A!w=XlfAud}Xq=~@%_{lgkV@(s@Ks+=3_$9>)pChF#KF#n&0AGdyoe&jjF zTlq*p)<%-IeusYSaejo;iglOdm%JZLN3a^hvyv3s?47Y>p;ei(I$}g zI(izU0-80yc~F&vKESL`iGxuufa9RPgJ9ar?pF4(!$Oz~7r{J7{x|37FNc)(XcR7n z_WXI>)u(+f+Sj6WB(2A3A8Quuh)L~H?tu(Ov=?T< zbx`f=jZo#9DPFWIWM~^50U7$3wag7rX}A#Hf|tY1(5Bs3PNlIufnB?7 zO`5bNURpmH!T>c}?O5Z((r!TVrm z_yD9V2M@w2a0k@dUn)D3?RucrR0o;=y`QA78@ongdI;HT1|FEWw;eLCoUL9;7(Re1k-vpQ;D>M){2jFG^jh!qlFR?iOgWN!c3c=SV?>le4P>9YG96xbK4Ch2{F(xE@J-;6dwrShb8 z?6y#A-;F3o`i``*$%7nzw_~UHIa}d!Gz7O47KK4!8Hzd;N?)#vY9BISygm;k1?=~p zKF-mI9|J|qcnB+j!di~Lp2^r(ePs@5+9BpGW-XiXzR7dOiP2{Ku6Gc!r*{tRpx!yC zT=UK$+65|{%5%MY=nZqA>bZU&<~R!Gp`HlmL$zCa_iz^E`!VxAXfZ56T?$KK8B`rz z0++)J;3{|_yc%8v*TUuSCU^Mi}h4D&A)+ ze{G58ya~dm`n(14*$MvXK&GHL?lW zi5x(VB8{goH$^5P3lMcc>yWL;ZsZN*Fp@;$)C}pSM(Y33M{R;1WAAifTo?-LP3+&i ziArRud4m1lGV6a2ulfJqy8qLMJJL27pKP-aohC z&k*mA-uDb!%05M{%*6MwRK-u9hJ!R{<$2S>{Jj-F$9g~ASz!7>YXmxLwnf1SGel9ythvJl9JcribhC8fZ)pON-nEm~W=^6;~vbmIH!U>Wvg$D31}W%rp-dd%aPee-4& zeZ@HkdpcXE8TM+QUojoS_R20;G^e=G+F6Gkt;c^x26hkGQ96a~6uS#h<vIK+>UUYPTL6ghYTKM-`i1nl4H+?@}#hU*Veg(*kGuj6`Nf*Y`O2H4iQ8|reZ!h*V9~$lKsjX1ngzagp>+?l+4iY!U ztU(P1whE`p8`>4@l;)S@=a$<`ZWYFt@n;$KuEAV=XRj6ZH0}!fMO(16pm+(@lLn1P zc57m<9MRfBiL{z`!=`wFbQ4+>%fbl(*JudK`s3$B7n_sbw@8(a?a;FXYg1y@1bHv4#S)7+bZU9)a@9sD7`{|F*x-g^UNDLS|b z-Uj(U`T*PrpMaa;UPyU~z7DrSyC+Y1)`i^C+NsvO^v%D{Pa2JAO;C3=_C~apl!jVo zOHF}VD{Et@b*#F<>EyZQ#M+b9mH(TXwAME~cB~XJ<0iajCdn8}iN-@)Vbbq8sPy|e ztPNj)O2?Pr$?z4Z^@m@i^3I2ZMPsK)MXxCp)ji{XF6 zW$?FlBmsx9T3AJ|C8rFneVQttK)`7zycA}$UeK;02 zf>YrskhL4LmUb>|ikh{S;8e(3OVA81hAkl7lG!6mQ*7?9xB_-S|9aR7-UKP<(M^yr zM7Kh%k=b<(t#N4mLu*=Eza2=v>&yt1ivg(XQ*w$zdV~01cC>Eai~nUuciZ+xPj}f$ zPvyP+2`59A zCCr*yHq@HhbT|VpfLco{g=fKQ;o0y`NPd|!VRPW)sPmxeY(Av?oBg@Jg9}kp?t(?| zD_8=P2^;wutp&Aq#{O$_H$h`aK1Z8Ex}qrgZ`Q_ao~60EJsj$;R-K2Y`mOpuivM*U zSUIA*2BxE@^;Ml2HU&|ep!-~hBRUIDXNu`;Ie)g;Xp@#lsONU<%)U=o=LZw!58eOF z%}rWf1=YrD9kC(24t0OH4xRyTgcIRC1xK;5>LcR6j*oHT8QlJRkKINZb5> z*n9Iht;aq7|8u7%(a@qz#Z=R#MJ0(+GtIPV-%F{PW@&~oGiD|g;VvPB(6NRPvWJi( zDQVx~|W4-&c3H^Lx1KeE;}9zMs10d4E2i>$=|8zJIRE?D@Y4 z-p>7*a4kF^-UAf}_rXiyI;i}AKU@hPfVaYj;N9@A@B#QRTn`_GlwrX}s5tr?q^vRH zXP?05x&Ioz0RIhNgo>k=AbB}>1vY>hAL|6)fQP{?Q2F~UI2OJOr@;>(@f~~!iRa)` zxCDL%FMyvz!Y23%;`d-Xybb;f-V1+$xINebaa-^!#BQ_x_9I9mFZv0r1%H5h!5^X4 z-SRHby4yx@AJ`J^3){i^us!5kRd~-zC9B{Gum%%2ukv_x192Y z%ApRZ7AEaSsnBd6B@*lJ%p?qIRMBzuBy76E-f#ds91ew?XA~U{kA&0VQE)aK0Bhht zNc$qlhG)PWcmd3XE8sAAGaL?;W=Ft#;3)VQ91WFb$G{ihSojj01gS5B$?$zR6@Cbh zg(`2@k2zY0v@iiShBG1cipjIBVIKG0!sklEdOrXbLe^gfMQ}DOhNX}(B9oR&;au*u zr_1TE3SI+ipwjXZcq=>`D$Sk)Uxw$yci;u^OUPbrQPO#^94hTz3Q6C=Wsr0nTnR~! z0eiTa{oojHiW26*wNPpGdPo=>|75`%xj!y^UJw$u1~>7XeQ1K4;e5CT;B^tIs1c~_Y>gDJUnRIQ$5*&vSrVqko5=!S^6#eDpK;IaFK0e#fDDLv^m|`z(~& z1=@c~&(sbbf*OF*UZ#4cc|1{jT`BMS_0)9kwFgWVxwsE0RC9wvnKqa}uR!euwNv$d zfNy>z`C0p~D&H!9t1MC(ptD_aDM!YmbhgV8Q0ESfLup^Gapt}QW^}d3{y{wNiELXY zX@4%?d@?gRJDJ&8zm+AKaT#&_@|XR-p(Rw?Wg2Qq$P?f&%2xHkw2z4P1yLK^mP47i z*YuVi&#HuTP@A?*mJ1WUa@`F2sOXG>VRS4?*?SYX8djryTc4P7rpSGwxTqto{8#@nusbxEkUhB zZ9=_``U%y5&Te1SSX2p0lgd}1{%^iig}AYYjiE=?Uvd}wKBrBm;jegh>$o%qBXdhp z((B&)^FIgi&4>HcBd4OQtf-)-w4%JayIJzdE(?2RAF#awjqSL(1+{y0b+RyjkHh_? z&iz9ws`SZkY55%dT)XzO1HX9czG-g^-_X8Zt%q-4mnQ?G$P>L_ZS0a#A5vl9%UK@E zsV4*BH4{A-dvf$G`|ir=O4+Q7q#3(rA?KkaMw>L>34cGE+)ep)MN^;Q#krY z{@I-{SP{BS?GAV4;kK_mx7lU$N?(6Itlb=y>N8z+EzIA1Opdz&4&#owRaHzkOemUT zW*t)Tx0AOcl()YXYyK7@uZNRo+`Q-Hm4$7|HlDm9caOHwE#Tm%}ue?INHxuOlBybf`3K?(By z;^c*&4LNbCq!(BAWu{pnxt=Wc(ocKX$(mR(fkow%e5u8o^V9NBPPQlKc;x)<5j*;DmYkRW9D6xLx~Z$ehzFe{JBo_Sxvn^97+D&R>j) z#nOYudZhm~^lQJ6rra;_^edhC`m4Ej{&jN7FsFQXt7lHtmT#`qGnY!7yZqN+A1vZJ z*uwnfOpLVjGQU2|FAuXuO6kkVS{TYwn7E5`HqyE#$Vz38AlIgHvbHAi*Gb44lpxDh z@Tr8M%QqwUwZ2i?&Rtc=%6GC-*rUw($CbzHlE|n=#)(db>eCeVA#!qDxMhT%@cqKL zP}%}tPKx^wCCXYB3Q2c?203RX?JOrtZIa!T<>F|2D9i7QoQ$kXoU9b~A#(n4aWpmb zNITCz^N_JBE+eIVh!W*&4CQq9qGf=Fn)e^8}v-ZY)3fN*wq+2wC9FhkDSSK+Yd_q zJ;ZUwOg}TO8Ske=VtpJnnTDZs&1Q&BVOEBjtdO|De9ti+QWoPEE59A%Kz9Dvx+#JLlZpxJmDA-y-?{3jV_=%UwdX7=ENpu`xtkg5#m${#VPV_R5mJ@C{IGZ<3}@#y+Xjw* zli<7UBkWb3^9fWvw-u(7f)zemXDvJAHruw1n7WtSoyMZRHuCHqCwaWH?bAq*Esb2t z3$9}@np0%{&CI`4L-~oh4KsH*4=TRqL%XMu;%OrOX#)r2SEa-K zpvJm&Uc1JLt+gT1jc_e|9Nr6`4EZ#?kNan#?0X^P zEAT~^Sm*?5@uA)NKShRQ~Lk73IIol&Co0gcE%y0kvPe$$ajeLRqQN9nLL z?-g?PY7*pOM)MN-mPg-uWDxFJKhP-1gsn|oIudh(P&Q8~ylwkFzJHXW$<;HP$QzRF z%0=5gk6_wfzFy{w7b%}Oy|#Uw+}?k9_V&Ok+dhu3b*jZPxlPvxgqQO9hbG+G#`2op z+ct09obR5k==Z;+wC&d9dcQ_*V_GzFyWC^joyosv`3Al9(IYlyc15SiICHiQ8E+@~ z{`emK>6rV$P~WQ9I8a?-+l3Kg&0clDu<-XU=vRKxe0T%Md|_1K|2u3eJ+=JwBzwEW z!bs`gwguyLr^?7Ond3^wtnT-RDl=Iu9c=|0L%F3bY!8_?H}yvc*p2&+P-S})Qlgz3 zv+Gyvy1M<0{O{2xyPG!R57$=IS_-jEsJBr+p&CqP{SGP@m4}*-T8>(S+Kl=bwfB@D z$Ux5Va7s0(A#!GwNg1PpAeg$moF@hMIw@L9IaD zfqDk@K57T*fMd~z8ityIszEJBtwC)`q110vXeoi0oW}l0DAs zpP3ud_)4n#f4P2fUllT3O)Sjc9Q<;Q^NaZ&2&WG&uaV3D%y@#r#JbV${k0{O)j|bH zc;%vJrIV$;KHs%e@J``F+eYh)0_k^p4h-jME>txVUbE+xmT3?3KRdSO+~>j~Z!c@% zqiN1&`hU3Z{-48m)nHLPD2yB5#(iBeCo@i8)6k97!!b9i9n&EkPxYS{&95X;6crBU z;}J9AhCcaS>n1v3?<(y5dno@P%q!@8^VOwu%JXaHY6}rsoAx^o|GnAMI~?Rv*eT8J z^j_bA7?~Mt%fIux^6`aemHU_K-yc*KW1z#zq)1=Nw3&^;`OJ(Phq3@cJh{n^0KU0 z^LIFUK6Uam?lp4v<+*fXI;TicI&{}D$mvQPQRMfV)N@x0{nI zf9^rKu6+79l08rfXF|HdJ2o|7m4QTc@YlmF}*7ndKM8-5Diu)pWuNw{H-bA!V7f9!^Z>bP?G;V>CDob247H08NL zhu-ZH2$kO z{&ljpB#|`@S(o~<;(d+Xl9j6tJy$ae^OyCiX;(Q}3ftY3<=P7CLRo$oPDj=~PL{%O zWJN)K*$|HZv8!5kCmb{Ov!3$h%|PCIUtV0)ZiVABp)8H@y6ZS(J?3O796ecT?`L9W z1xjX|KDFm%9yiDO5ygZ?dAP3V&-Qm*nd0K0Zo5}K ztqJ9|bAbY9A#b*mr*PQ=^4vMCnHpf?^8H62FYPQRFTsCP@~e+2t>Ns}lS>PW3RBCs zZq9UB65094Ugpc5P%*cvpeUuZ=HhTi5;?PxbEz+9GP|`>&5tfBO4(noJSquOq93LO z$h*py$9k=BJAst^=48DV%JR$lLS$Xl{dG?zh~ zYIB-zYU#tRwOpS>UNQ0>^yS&DL?*GHL?|&enJzptH7J^pALbzQQC}vT`kE7q(U(ej z>-={`5?Lk4deWDrb$!||gS0uSsHUVM#XRR^)(;z><;IuxPbo4tJDFj6*^@HO$8!l` zdOR|Zs_m7boUO15eSKC2c~su!A)|6JMTCi#5-RUxm9FK-XYDhmhx2YczH8d;s3EaksF zBx_43YoI5q23aTivc~3DSI?_3YduqmGZ%)rEvyhf4Cf;24kt@_d=JT58_Eis%0}?X z$hyy$HM}~fB)@!4s%S#XykQm+VU-`w3$W*9XOF^}8h>zARYg^{`5?%+!7>KRNUAJLMAN z2HJ-#yLvP}uddGjvvXgr@8jg&5z6iE$vp$PP1C}1Uhdw5a@}0zj!>>2-cjV{I=LoK ztIMNSSbkY{8T&Xfqg3QgNGT6E`$o359`M6|5%!I6_Q@Zn3-#aab8WWep?$vl7GvK8 zXP?}c#8GmSv*WcSZsI%Iv}2tea?>B!;o_%Nm>_(2EWwW1&W@z+m{grV$If{N!=2+$Cbr^aHVqal&u<=IsQC8f%g8bc^S_G>7aar)eR zDgKI$A<*QWTUKMswp8j1R}Re&-RPGi=itWcog2+~Z_$vdiW8ZyD={C{q$1CS$;V0L zEk)k#yUH`gcPg@+-zH|*fcO1&F0$@Vki|z(_5&WY?~c4pN#vb}yvKHtXIA!C$#tp7 zbLq5y8`;3V5*Fq!-<+pCyNf)AM64IXfsv}+lDjU6T)r7h`};0(slaUiHx|ID_}9(t zZfa{iI^8s??e7ba`_9gCO+H$W8<(SBdfj`Mk1qD|5jCP&%%Qxu6*J2)b2V09=E4#H*CvSFdW7ZM(Q zLpKCDWfkT6#&2}dJYr(E^V8~3o?o6_guMCtg!SL3{HhbOcfbGP`c?Hat-t*8d^z&g zIC(11hgVN5nqQMrI665sp&Y-wzZf}pJ2@)v_kf(YLpiZR9PeF%oClqp6u(<^?G%?T zR<^g{HqFBPy%agmI60;sw6%`Qm`ca*1;w#&5**%krgGj&Rm7V)?!Bbou0PgxcjA^`zoqR z=Xjs&1j?f-N_;)D!?iRruWaSNbNSwFjM*W~?28(+hXci_guv2#%9 z56Q2cAfsr0K~El;vLV%QbZx4s9c7c`$FIK-j=#BZ99mQ}qG*AVK>3`SlHuiy8&;z= zl`_foOI{0Qc8!Y+E<@%4^~1PBrVW`f#W@-@sIXg=y1igik?s6DtdkY$&wX8v>?|i+ z>0YH^ZhlR^mk?5s>GIn8P-ZyPWgKt?GN<@5orl9+SyPec^2UtL){kK`%G_LuyfP;* z>;vnC^6m!Qmx&qacY6NY8YiW>RM#UqH*N~u7-nPR#;b7S`AOXPXTn1MwC=NO5xX8@ ztoBx%Q+K21o;@sQMG`qHk+XRZ%h?gip(zo&u0hUcdq|GUCzbm6gv(Du*CMB0dYDJU zG&H5Orotz8ebjtr|>b8|Cpy`0Sv)t(8)l!rN(?%o_t&i%PMJyG7uP@cb5{ubmt8kaYy zsJNo4$g6u&iE}qbuy@$O=wrQU{;omZ8*zEr#SC#dajD31VL3mP<(Cn+BCG!XiDBtR zl~W5#=eLhTd8CclbsO?}Ie8?Jva$uaMP)@bMd(PyZ%)=&(~`7%2RmW6BWsM474FZ$ z+H*DgQj+DyB03#rCGag=?79P4XFFLg|Adh?v0_kuwLYgnxAM_M-1>bl^DSNA%yg%H zEX!7S`ABVW6BE@tB{@w!;eOkm_w^T)6mdoZW1&^_gU9Q+?_qcX_!n?8gH6_Ncy|HT@O2drDG_dJR{i!+$ ze$|Yj$_lwbX11XQqGwfTMsm^;%v8*+F^96qoKvZ!As4SZ!g&1#IqtfXcx_3~$wc)o z@#=b%HeS18{uz|aJ2Uc6CC@gYF6MbzXqW4=4e;VSf9G!MZu!aO`5nEjPx76I;9dA> zpGKjdVrg_|zwp_8@C-`koL>2*KhKt<`t!U=XovI5Up&9C5UyZu8ELVQ$>76!#o|`x zH=)#T85f#YdQktxi8}g*<|yw{l&fp zxG&eaPi+i^f0+E_z9??nhEo1_`drxi?jsyc!Ii2TU3-1+zSd>SoCD##xbaNqM%JU1 z7B3(n?^G3=IM2j?uc2ht>6af0dG<0Yhv(0S_P8*<%nRdrr&RN0uuUWW^O_P)1kRq9 zzrcPUv0G`ym2c}qe`?IvUH9S7{SOG!N{%X!ut0E40L2ZO<)`|XUxJc(XU4_L<({9) zDk_w8QcgRr-JNlyY+=6y3-fm!?!C>qcb0LmX=tWW?z=R)=_o5;y(i~>oPnE{;pS@e)@@?r+||Xt*=pJVith&KU5Xlm{sx|Y)x*C2 zGDOH8^5#y@X{N-|?e6B$zWuO_>qHCl_W|N)Vd$=av9>UpbW)RDr&p0$f6SE&ABQq0 zcrqVE=I2RengPBlX;s+u$Lv~^%sTxpulRMoiGSKUsfLfsD_d0|bKPcP{;tQZ{hNk) zTZ;_BwxHa%6}PR!jPyG_dftj>^HCZvxiK_*2yrV5ukzA$cH!}JtEt@+K2tOPaQ3Xl zo;H}<6xt*It1k5IDXp-h!18~pVc^QQ6-UdJW}g@PgTD_E2A{exAdO6-I;^a$sKV*l zWpfxMuPHG}N^ahUd-Jek2j-larlH^cdMCeZPReeLtxF&g=(@zh{QWC#{jgaWUpu?i zTVCQ;p4xPF1@3K*U9!iSb?NMCFTPG>y{d$y8pf_Yxgm6SwsEoj^DyqNX&$=UeCBG` zW2CZ9&h^J#9_*n;09QC%Xnt=%-u;R4ybzM6RO$mKGb780(cZeT>k(wW=VX$V=2qGf zeR^79v18+-H}2hrl3Ax;X{&~3TTu$PX)SD6xps3CFP^GPPbnHxJR!fVhT3NA$)@aA zp7HgZP_&>roX0TnnQEN6e6u+V0bHM0n7@zW->XA+2CTDWa#cg5c81&Q(8_O_S(N)I znRjNA<(p#O@2*>O!-UroyWI5{Zq)%M3a2D)jdg5NNfWM(P%_9$yUz)Q8x=-Qu38}` zCD_&I3YTHHwKwKu#_4l;bEOyOl@-;hDr4;f|DBtoQ+TR<;J+*7UTH{e1OIt3O*VBf z>{N{Xj$iEqUr$kzxw};3#??Wqa}mPzi5dvu^*CWPnnNH=+$fB~c_D>Q8DUe28R>U= zTpQ{dFMRwx0rXyW`S1Nb1r)vtC;z=4h6*eHodRBAtMKukD{M9AStsFnvT&1MR^gZ4 z_$7+)*AKG(m0R{sFz@18{-~GmZeD&lpSGK=5lp=9lki?k#>W(ELeDgLO?uHMj=sCu z#6zEtnl?yT4r{A$(_y&j+t5w&YyAW>h1@IdrJP^NFn27^7qyA|B|X8Mf2LuoX~&g8 ztp;N`S2%TIe*cZMb68t1?Mx}kKOw$OIZR2ZmGv%PFAe1?Ox*PZa%VcZ@x2?&h7GBd zAufL`9AYIbcY@$1WF7BhnKHyK(osAt!)?PbBmGW~D_5`e@`u(U=(+NR|6J)n<%9Br z|GcoMIG-L#Y{jI~sq%%d$E_7gHC|nNVO!|u7TE8uC-L(y&dvhpUCyNyhgopOt+3#v+)pRY3Me>-k2!5-P+ z%(-wM;Dx)wH`VZQZH?$K>(DTm%+1rdx6HYhGoihD#ce5W^C@l|iFuiI`kgzk^W1qn z@0Fh3NB=PN_vOAawBMDdzWzdjB>X%jRxYFxCoT;%KgM`VdjZC-XYk{_&W}vpXwkA) zeH!;J!L1(;H+u*MPOr*jS+dIWUw&aBhcak2uvuAQ3P<^OBj(@7d>7{IaR(6wj;i#|-R{d1pq?xAJ@{&ky7IA)#Fgdr7;& zOFt(UvHyV=_Hu^*eowWxU7pVyY5nWZGdz!fXLa}^|Kiy`y^UX2;GeFTmszJ@WxQ;> z(eqQzgv|Z}`p%lg60iKS>K?JSrLU*DY;M)=jPbfM_kdB>KWAH*znk&TXf`S}QMyYy z(xzGX$s3O-#82;|WQQ}Syei8Yd;Y3n%L?V8RMWmoa~Y#$GkeV$2io5+;O5u<(9PPJ z!8%xJt2ut&hLU+_#>K;G&%J*X5568353+X#c5X#okCXa#vf-z2P`TurDK5*OBUdXN zQVk0ifAuxM$F zVdgcIJTs7uY!w|UYenDODctXlUtPRsj>96ZyHz-c*Gu?yO(;7s^Tau7{^XZ2eQI~W z8*Cb7a&H5|YTH!5Qw%BrV|WKE7xUb7Kq~xG#IFP5zW~ZuY{; zjsLpv@ZXi9*QE>p`N`o&^BS{LeYMj&|Fimu6{fl^AT!DS+6j79w<$da%;-O*QFZBH_E0@Kt;9o9^-SzjuOJ&be1pF_tF&{5n3n_n0e_ z*G!OY96h3d2(On(7gG)m%P`InV$fx-zPNL%UZqWGq7!LKXOzjT)9=cHTfF!z<5Rsc z#pcX;F~d3IWlcwST*NHpWxF#hwzdeYgs4m+R6j)I zZm+l*r2$`_n|G*}@I28^mDqI>diu~1P`M(v@0(zzrlKalEKG?Cr}_!+U4BbXcwS(S zYKo=9Khq9Uxg$TjcJeAFiFLhbVg9~?o?AnA2cxw^QyHbFCgtL5HtxWGI{QxMoL*P< zuJO{}gtGkVk|Cw@^?j=RsIc(gyLlg-tyhA5?RcNjJ0AW@kG}qL?o%m~oxfd~ykrs< zaa|?{h1aY2dtNBp%=M@;wRt@;4zkPFY>ik$fn!8cr2)xTh1b;8D$E}r^lNqPa_=D$VJb#Vn3q$iRUEJ=a3pbZ8GtXc~drf!7%sHMJ$@b0o zYsj3r63i_{-{YP+r6=E9LFjN7R;iW`uI$&I*SapUFn`}9yrytaf(b81$13gqODWA~ zB<9a(D37u(c5Ol4r%ql@MdbpDgnW&Up(B;@$fbpCp{$NENwimxbez!b)RT z*XgvQuPWmY`T;o^yQe~6>UY(EyIbmVPJK3Q!YG*xWI}%1N?Ryos z{(IWkrjsEJ@{h_S|Gi89Cja5?g}8e-dJg7b4h5misEqQ>xbZTTvnrSTcYd27)jZ+) zrCW}}a<1(b=I=j=%jZM41m?bnzpwZ(~=2QEZynX&=@ti~SM;mj!S2Z5M%>gXkNxjS2#+3HrcPTZVKmGTvZ!ELQpZ>div%i1Qd>+Tz?#^E` z^6Yw@D{|xMy0rM<(C=R9l~H987&oAE{{!AqTxE)!u)*?S>HHWYCqV_wOj26H(t`b zzzQlLOx^W9^12=q`pxt)vMVdgsKH{p=GlBb6}Ntjl3Ax;Y2pf=y^l)cc}{4L%kOKw z{9b`T*X~Ls%$y&Vg?>2Fc>sQZA1)fPiywBH?ARTd0ex>>9W2b>50UwdlQ~8+8)he^ zDJ7Is;a1Ekr46^2MBid7Y+$Xp(2tP$wUcR@L^f_}66e1wWD$|xDXx1XXFE!BGrx!KP{1!)o2l#-&l4_h zh`W)V@=BaMlQ$+5G0s<7V>(2diM44s1Go0T zyv#cNF0b6{qTEe7M`Bgz}fPrkl_(#n#eDzha> zEd5JHSKOpJxnzuuCzr2$vx#H1yPH;a7 z)TeP}o&Vg8!ML){f9J*`x)X0I)BJZTM|RFNV~Sl&D?O-;OVn>$d~tnpe+CWQ*Kq$0 zB%mFkpXL5K3FcYDfPZZ}(zlmZaBQuC|GcW`M8+V^5TFUC_mT55aw5pNW?Z~X-8(^! zo7Yo%Q<>)5=`FD_b`Hb7&8Xq%8#dnBDL3wuV6HOX_OEugOmk@_uM7cPPg|J3pOa=D z4&C6VQ>B^F6?RKUX;hduAkB5f4w-jmT$)+;2WiHCo|tC*cP`B+Jt@uj@7$QD!dB_S zf0r0v6LDiF+&CJ2-6q7tR_Vewr}%f_no1e!+PSSx#A2>77Uu64gz4f?b}*5hDvL}( zIu;Gg93A2 z;xO**nQ4*OS!zmG{iTtsA9|I)2f+PdHar00cg|7N`M4cW8L_htH}lS(c@{C}pK)u> zyx6E8Tq7{2_S8r|lN$$7QHEKA@sMI5V0vW9k5EHrjd3)?Hqq9Qp^8NeT?ct^3M@e1 zQ;;Gl`XR(@^czT$i87gH&X8^dE4a7k*dE7#Mo0WO6g7+AGf}zxJ{dI^buRbrEL^?U z8KCyO=Ivxcdq!HsoR^04OJOzFT&x9YrOW?=ws*o$;r`%r$KZ7^Jt?(}RIeY+q0iS?hL-eZc8?8r} zY=>Rpw~%UB@gBVi{tK>$-@~WjzhP^_jPQ@vz@Omra0mPc{0;7azr%y&ch0^X1gQ_A zg>Wx;4rJTuDC0WnzeRhKm~caMDBKrLf^6*)ErjW?6z&I4gEWAm=R-c3ja~p5gN?3) zIurI<*oymmAn76c5IhjR3^U+AU>o=$YzKb`xdXD~E4mMbUI*9|cIJ%KLtq!~d%^Co zKV+(V@f_HP`vvd_cn&1pMK6W};0=&r$LMOvu+O6PkYSQVZ^9uwe;?9~iEe{5?V>+G z!aQ0xjkFG%!AZzD3QpsG5S$K2!sFnva3(B;vtT*QgNq^kFlCu&wL(9`aP0#t+QwkWF5r?uno^Tp}L{^qB?Td8|tiDoo#y*st@W2^o|SFNH_^~ zDyjgbbBE`n&PAP%-chL0sIlSi5pWzTin;_f40QxbaxzeTF;@s1!737wzG*2&_2k(c z)ZzT@LODAy$l@gWhI~0IvrUYf4&(Qs{2qZCj~dFo&PJB~jW9Eo-;?pH^hr)Pe)l#? zezoO*&PvsJ*Lt6c>d*U`Q0FR_p{D@V%9M?nxXqs3m;AiiQ%!geHhMRr*Pf>rF=y+k z%p?n#JxxLI*gm$5cpUD>{YS7Ky}5e$vL3D920SARnlid69Aw@fX3lDpU6gCY9^V#_ z_d3Epusb{g9u6sAqWvLb7||Ta_)l~K%z{j5m~y)w=^&l(Oy_LrbZk;ONv9;%S?BfG zQIm3k5D5Z%&YtzNWIK29Gx$69HAcVm4nx^9@*6?=3hG z{u8QfZ5WiGIwRknX)oFK3_N=teWL77jO_UN!1mm_NGyzMVP1CV`V_q?lSTi0V7<5J z&L#KXSH^Ae^ONnlamn4Yl=yE#8Z``Mn|mR!cl z1R3_+wd69c3uUZ=i8Ac@X~|{Wn;^rUeU@Ct{h^Ep5@b;4aYne>m=Ux7ME+NMVIxY{ zC+Iiv0hN9~g-XAl!Ox52yNSMV|THGB%v1~BJ- zZ-+V;KAluLoccbUouEfhzsIR^vS+9=p~|O@u>DSXA+MJ8liZ$|9tWB8mphvHSKhN{ znnjGirPt5@L(nTbhC=24VaBY=;+@mKJ(DbXJYAI_&z>EYT;8>zyz4@FtNuWqJ^L%U zy!(uqcCm87p52vP?-%H8OnL0e1$*{Z#O&{(u<*-;uh6To_!cUSdG_rIX5KQDI|Rm zov{(6eH>Im^<>FpPYpz=zEyp#`=jB`X~>>~mE8YpkPvdxn)g^IZO?xnjz7 z5U|HWv>s#+1k>i{oA+o-?)jcP+7|Lnb+jQpgeE~gZs?9u{)w06_Pna(?qGZ!ci6IA zWwJeAD!E?zVd!lei(h+2RC2xjYww&E?D®(t28?mD*sM{ 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 J1pZ$MyalxF^0EK` literal 0 HcmV?d00001 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.xml b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.xml new file mode 100644 index 00000000..1eb75510 --- /dev/null +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/DotNetZip.xml @@ -0,0 +1,18621 @@ + + + + DotNetZip + + + + + Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

    + This is the version using unrolled loops. +

    +
    + + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Compressor State + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + An enum that provides the different self-extractor flavors + + + + + A self-extracting zip archive that runs from the console or + command line. + + + + + A self-extracting zip archive that presents a graphical user + interface when it is executed. + + + + + The options for generating a self-extracting archive. + + + + + The type of SFX to create. + + + + + The command to run after extraction. + + + + + This is optional. Leave it empty (null in C# or Nothing in + VB) to run no command after extraction. + + + + If it is non-empty, the SFX will execute the command specified in this + string on the user's machine, and using the extract directory as the + working directory for the process, after unpacking the archive. The + program to execute can include a path, if you like. If you want to execute + a program that accepts arguments, specify the program name, followed by a + space, and then the arguments for the program, each separated by a space, + just as you would on a normal command line. Example: program.exe arg1 + arg2. The string prior to the first space will be taken as the + program name, and the string following the first space specifies the + arguments to the program. + + + + If you want to execute a program that has a space in the name or path of + the file, surround the program name in double-quotes. The first character + of the command line should be a double-quote character, and there must be + a matching double-quote following the end of the program file name. Any + optional arguments to the program follow that, separated by + spaces. Example: "c:\project files\program name.exe" arg1 arg2. + + + + If the flavor of the SFX is SelfExtractorFlavor.ConsoleApplication, + then the SFX starts a new process, using this string as the post-extract + command line. The SFX waits for the process to exit. The exit code of + the post-extract command line is returned as the exit code of the + command-line self-extractor exe. A non-zero exit code is typically used to + indicated a failure by the program. In the case of an SFX, a non-zero exit + code may indicate a failure during extraction, OR, it may indicate a + failure of the run-after-extract program if specified, OR, it may indicate + the run-after-extract program could not be fuond. There is no way to + distinguish these conditions from the calling shell, aside from parsing + the output of the SFX. If you have Quiet set to true, you may not + see error messages, if a problem occurs. + + + + If the flavor of the SFX is + SelfExtractorFlavor.WinFormsApplication, then the SFX starts a new + process, using this string as the post-extract command line, and using the + extract directory as the working directory for the process. The SFX does + not wait for the command to complete, and does not check the exit code of + the program. If the run-after-extract program cannot be fuond, a message + box is displayed indicating that fact. + + + + You can specify environment variables within this string, with a format like + %NAME%. The value of these variables will be expanded at the time + the SFX is run. Example: %WINDIR%\system32\xcopy.exe may expand at + runtime to c:\Windows\System32\xcopy.exe. + + + + By combining this with the RemoveUnpackedFilesAfterExecute + flag, you can create an SFX that extracts itself, runs a file that + was extracted, then deletes all the files that were extracted. If + you want it to run "invisibly" then set Flavor to + SelfExtractorFlavor.ConsoleApplication, and set Quiet + to true. The user running such an EXE will see a console window + appear, then disappear quickly. You may also want to specify the + default extract location, with DefaultExtractDirectory. + + + + If you set Flavor to + SelfExtractorFlavor.WinFormsApplication, and set Quiet to + true, then a GUI with progressbars is displayed, but it is + "non-interactive" - it accepts no input from the user. Instead the SFX + just automatically unpacks and exits. + + + + + + + The default extract directory the user will see when + running the self-extracting archive. + + + + + Passing null (or Nothing in VB) here will cause the Self Extractor to use + the the user's personal directory () for the default extract + location. + + + + This is only a default location. The actual extract location will be + settable on the command line when the SFX is executed. + + + + You can specify environment variables within this string, + with %NAME%. The value of these variables will be + expanded at the time the SFX is run. Example: + %USERPROFILE%\Documents\unpack may expand at runtime to + c:\users\melvin\Documents\unpack. + + + + + + The name of an .ico file in the filesystem to use for the application icon + for the generated SFX. + + + + + Normally, DotNetZip will embed an "zipped folder" icon into the generated + SFX. If you prefer to use a different icon, you can specify it here. It + should be a .ico file. This file is passed as the /win32icon + option to the csc.exe compiler when constructing the SFX file. + + + + + + + Whether the ConsoleApplication SFX will be quiet during extraction. + + + + + This option affects the way the generated SFX runs. By default it is + false. When you set it to true,... + + + + + Flavor + Behavior + + + + ConsoleApplication + no messages will be emitted during successful + operation. Double-clicking the SFX in Windows + Explorer or as an attachment in an email will cause a console + window to appear briefly, before it disappears. If you run the + ConsoleApplication SFX from the cmd.exe prompt, it runs as a + normal console app; by default, because it is quiet, it displays + no messages to the console. If you pass the -v+ command line + argument to the Console SFX when you run it, you will get verbose + messages to the console. + + + + + WinFormsApplication + the SFX extracts automatically when the application + is launched, with no additional user input. + + + + + + + When you set it to false,... + + + + + Flavor + Behavior + + + + ConsoleApplication + the extractor will emit a + message to the console for each entry extracted. + + When double-clicking to launch the SFX, the console window will + remain, and the SFX will emit a message for each file as it + extracts. The messages fly by quickly, they won't be easily + readable, unless the extracted files are fairly large. + + + + + + WinFormsApplication + the SFX presents a forms UI and allows the user to select + options before extracting. + + + + + + + + + + Specify what the self-extractor will do when extracting an entry + would overwrite an existing file. + + + + The default behavvior is to Throw. + + + + + + Whether to remove the files that have been unpacked, after executing the + PostExtractCommandLine. + + + + + If true, and if there is a + PostExtractCommandLine, and if the command runs successfully, + then the files that the SFX unpacked will be removed, afterwards. If + the command does not complete successfully (non-zero return code), + that is interpreted as a failure, and the extracted files will not be + removed. + + + + Setting this flag, and setting Flavor to + SelfExtractorFlavor.ConsoleApplication, and setting Quiet to + true, results in an SFX that extracts itself, runs a file that was + extracted, then deletes all the files that were extracted, with no + intervention by the user. You may also want to specify the default + extract location, with DefaultExtractDirectory. + + + + + + + The file version number to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + + + The product version to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + You can use any arbitrary string, but a human-readable version number is + recommended. For example "v1.2 alpha" or "v4.2 RC2". If you specify nothing, + then there is no product version embedded into the EXE. + + + + + + The copyright notice, if any, to embed into the generated EXE. + + + + It will show up, for example, while viewing properties of the file in + Windows Explorer. You can use any arbitrary string, but typically you + want something like "Copyright � Dino Chiesa 2011". + + + + + + The description to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed during a + mouseover in Windows Explorer. If you specify nothing, then the string + "DotNetZip SFX Archive" is embedded into the EXE as the description. + + + + + + The product name to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed + while viewing properties of the EXE file in + Windows Explorer. + + + + + + The title to display in the Window of a GUI SFX, while it extracts. + + + + + By default the title show in the GUI window of a self-extractor + is "DotNetZip Self-extractor (http://DotNetZip.codeplex.com/)". + You can change that by setting this property before saving the SFX. + + + + This property has an effect only when producing a Self-extractor + of flavor SelfExtractorFlavor.WinFormsApplication. + + + + + + + Additional options for the csc.exe compiler, when producing the SFX + EXE. + + + + + + Version of the csc.exe compiler, if not specified then the default version + will be used. + + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Saves the ZipFile instance to a self-extracting zip archive. + + + + + + The generated exe image will execute on any machine that has the .NET + Framework 4.0 installed on it. The generated exe image is also a + valid ZIP file, readable with DotNetZip or another Zip library or tool + such as WinZip. + + + + There are two "flavors" of self-extracting archive. The + WinFormsApplication version will pop up a GUI and allow the + user to select a target directory into which to extract. There's also + a checkbox allowing the user to specify to overwrite existing files, + and another checkbox to allow the user to request that Explorer be + opened to see the extracted files after extraction. The other flavor + is ConsoleApplication. A self-extractor generated with that + flavor setting will run from the command line. It accepts command-line + options to set the overwrite behavior, and to specify the target + extraction directory. + + + + There are a few temporary files created during the saving to a + self-extracting zip. These files are created in the directory pointed + to by , which defaults to . These temporary files are + removed upon successful completion of this method. + + + + When a user runs the WinForms SFX, the user's personal directory (Environment.SpecialFolder.Personal) + will be used as the default extract location. If you want to set the + default extract location, you should use the other overload of + SaveSelfExtractor()/ The user who runs the SFX will have the + opportunity to change the extract directory before extracting. When + the user runs the Command-Line SFX, the user must explicitly specify + the directory to which to extract. The .NET Framework 4.0 is required + on the computer when the self-extracting archive is run. + + + + NB: This method is not available in the "Reduced" DotNetZip library. + + + + + + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting console-based exe"; + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication) + End Using + + + + + a pathname, possibly fully qualified, to be created. Typically it + will end in an .exe extension. + + Indicates whether a Winforms or Console self-extractor is + desired. + + + + Saves the ZipFile instance to a self-extracting zip archive, using + the specified save options. + + + + + This method saves a self extracting archive, using the specified save + options. These options include the flavor of the SFX, the default extract + directory, the icon file, and so on. See the documentation + for for more + details. + + + + The user who runs the SFX will have the opportunity to change the extract + directory before extracting. If at the time of extraction, the specified + directory does not exist, the SFX will create the directory before + extracting the files. + + + + + + This example saves a WinForms-based self-extracting archive EXE that + will use c:\ExtractHere as the default extract location. The C# code + shows syntax for .NET 3.0, which uses an object initializer for + the SelfExtractorOptions object. + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting WinForms-based exe"; + var options = new SelfExtractorOptions + { + Flavor = SelfExtractorFlavor.WinFormsApplication, + DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere", + PostExtractCommandLine = ExeToRunAfterExtract, + SfxExeWindowTitle = "My Custom Window Title", + RemoveUnpackedFilesAfterExecute = true + }; + zip.SaveSelfExtractor("archive.exe", options); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + Dim options As New SelfExtractorOptions() + options.Flavor = SelfExtractorFlavor.WinFormsApplication + options.DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere" + options.PostExtractCommandLine = ExeToRunAfterExtract + options.SfxExeWindowTitle = "My Custom Window Title" + options.RemoveUnpackedFilesAfterExecute = True + zip.SaveSelfExtractor("archive.exe", options) + End Using + + + + The name of the EXE to generate. + provides the options for creating the + Self-extracting archive. + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + + Think of the as a "root" or + base directory used in the archive for the files that get added. when + is true, the hierarchy of files + found in the filesystem will be placed, with the hierarchy intact, + starting at that root in the archive. When preserveDirHierarchy + is false, the path hierarchy of files is flattned, and the flattened + set of files gets placed in the root within the archive as specified in + directoryPathInArchive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use as a prefix for each entry name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, + \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method + with = false will + result in an exception because of a duplicate entry name, while + calling this method with = + true will result in the full direcory paths being included in + the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream + containing the entry data, on a just-in-time basis. + + + + + In cases where the application wishes to open the stream that + holds the content for the ZipEntry, on a just-in-time basis, the + application can use this method. The application provides an + opener delegate that will be called by the DotNetZip library to + obtain a readable stream that can be read to get the bytes for + the given entry. Typically, this delegate opens a stream. + Optionally, the application can provide a closer delegate as + well, which will be called by DotNetZip when all bytes have been + read from the entry. + + + + These delegates are called from within the scope of the call to + ZipFile.Save(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked by ZipFile.Save() to get the + readable stream for the given entry. ZipFile.Save() will call + read on this stream to obtain the data for the entry. This data + will then be compressed and written to the newly created zip + file. + + + the delegate that will be invoked to close the stream. This may + be null (Nothing in VB), in which case no call is makde to close + the stream. + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine. This encoding is distinct + from the encoding used for the filename itself. See + . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced version of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced version of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to ignore duplicate files (report only the first entry) + when loading a zipfile. + + + + The default value is false, which will try to make all files + available (duplicates will have a "copy" suffix appended to their name). + Setting this to true prior to using Initialize to read a + zipfile will prevent this and instead just ignore the duplicates. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf�.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Make sure you do not read from this field if you've set the value using + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + If you set this value, make sure you do not accidently use in your code + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if or is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileStream(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instance by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + + + Static constructor for ZipFile + + + Code Pages 437 and 1252 for English are same + Code Page 1252 Windows Latin 1 (ANSI) - + Code Page 437 MS-DOS Latin US - + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + Total bits available in the input buffer. + + + Total bytes available in the input buffer. + + + Ensure that count bits are in the bit buffer. + Can be up to 16. + Returns false if input is not sufficient to make this true. + + + + This function will try to load 16 or more bits into bitBuffer. + It returns whatever is contained in bitBuffer after loading. + The main difference between this and GetBits is that this will + never return -1. So the caller needs to check AvailableBits to + see how many bits are available. + + + + Gets count bits from the input buffer. Returns -1 if not enough bits available. + + + + Copies length bytes from input buffer to output buffer starting at output[offset]. + You have to make sure, that the buffer is byte aligned. If not enough bytes are + available, copies fewer bytes. + + Returns the number of bytes copied, 0 if no byte is available. + + + + Return true is all input bytes are used. + This means the caller can call SetInput to add more input. + + + + + Set the byte array to be processed. + All the bits remained in bitBuffer will be processed before the new bytes. + We don't clone the byte array here since it is expensive. + The caller should make sure after a buffer is passed in. + It will not be changed before calling this function again. + + + + Skip n bits in the buffer. + + + Skips to the next byte boundary. + + + + This class maintains a window for decompressed output. + We need to keep this because the decompressed information can be + a literal or a length/distance pair. For length/distance pair, + we need to look back in the output window and copy bytes from there. + We use a byte array of WindowSize circularly. + + + + Add a byte to output window. + + + + Copy up to length of bytes from input directly. + This is used for uncompressed block. + + + + Free space in output window. + + + Bytes not consumed in output window. + + + Copy the decompressed bytes to output array. + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Sanitize paths in zip files. This means making sure that relative paths in a zip file don't go outside + the top directory. Entries like something/../../../../Temp/evil.txt get sanitized to Temp/evil.txt + when extracting + + A path with forward slashes as directory separator + sanitized path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly used to be built for .NET 2.0, so could not use + extension methods. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + Flushes the underlying stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Close the stream. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Flush the content in the stream. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Ability to set Last Modified DOS time to zero + (for using with EmitTimesInWindowsFormatWhenSaving+EmitTimesInUnixFormatWhenSaving setted to false) + some flasher hardware use as marker of first binary + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of
    the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + compression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + DEFLATE64 compression. (Decompress only). + For COM environments, the value is 9. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Flush the stream. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + The number of characters read. The number will be less than or equal to + count depending on the data available in the source TextReader. Returns -1 + if the end of the stream is reached. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation unconditionally. + + Decoding a MSZip file requires the dictionary state to be set unconditionally + at the end of each block to the previous decoded data + The dictionary bytes to use. + Z_OK if all goes well. + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. + + + + + The minimum size of the working buffer used in the ZlibCodec class. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + From 8a996f8e0c740d7e4086b364714fd7d660e87eb6 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 4 Apr 2024 18:17:43 +1100 Subject: [PATCH 05/62] [v220402] - Update release objects Update release objects for v220402 Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- ...gnTimeResolveAssemblyReferencesInput.cache | Bin 24795 -> 24962 bytes ...Mod Manager.csproj.AssemblyReference.cache | Bin 40201 -> 41128 bytes ...Mod Manager.csproj.CoreCompileInputs.cache | 2 +- ...ew Mod Manager.csproj.FileListAbsolute.txt | 3 +++ ... Mod Manager.csproj.GenerateResource.cache | Bin 3661 -> 3661 bytes .../obj/Release/Stardew Mod Manager.exe | 4 ++-- .../obj/Release/Stardew Mod Manager.pdb | Bin 337408 -> 337408 bytes 7 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache index b74d478e054dcb5a0b289e7688712fb37983165d..620abeacd4f2ba699d0c1c313e9261b47c8c39c6 100644 GIT binary patch delta 717 zcmYk2+fNfg6vlf@XQibWCZHh4_UI@0*QYxvnKuKUJu3=La_R^NcT51)r zY88~);~isy?_QF|XJ{ZX`k;OHiGRS$U!bQ;tWGk?ncw%#H|NZ^5-e`Q`=2&Q7Ju3B z80tsjSoT;tdNe&C>LXIj(dptEJl_OWJ%$8?4T#DEs KUwjqm+VuzQYUBI> delta 823 zcmZvZOH5Ni6oxy7bLF-a+8UKWLc`Vt3tSkf23nvkTH4x&Bw$;v>4U;;y|ou=skMlx z_-xJbfyNE4S&-C?A%+lK_}I8N(S;kAx^|)G-d?Z^Cz;9o-+$)JpPA)d_GO1{{%m6l z^yOr~Pj|~=yDA|kHAP2E~d;m&BKkU=5<1V;Lq>)pplYAV$_8x~a(SLa)-ypk& zn?8wEu-Bi0C30oTK7~L0UF5I1{n5r??t%bv~ndV<{jMlnSqqNtC%YLRCt?f^*R$@SKzyljB~{c1lg$ NAG5G(eKdCZz+dku@Ie3o diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.AssemblyReference.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.AssemblyReference.cache index 07e0087ebab961f38e6a41c1194e112ee39ecc44..f0bedee38324a00b64a5e2f6e44c56b183ebf244 100644 GIT binary patch delta 382 zcmeC&#kAre69*fk83O|YWBla8wBU`=>*g>qE|}~fTj}AFU*eZq5|vq?XQ*drre_e7 zlbIBgms(tVMnylETS#PRwx&Gl*^~BAkoC~@S1)M$q%B`(q=O@K?UPbRVo&WVUXhPJ~ zPM?XvKKE?{6aCqG-zp`oH4EyWn-|t*`}6nCNhkCV+TOVLQE1b=ycbLQHd``R!TS%bj8BBJtQ4%mSwJ=ULPqr{LF*7qaH!+=jLEdk2 cz!a9rycOM(18M{&2PBE|fr9Bj6fiOX0M(+F7XSbN delta 23 fcmZ2+kg0PQ69*fkDFXuoWBla8wBU`=>*fFeQBntJ diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.CoreCompileInputs.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.CoreCompileInputs.cache index 0a9cb199..580f3997 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.CoreCompileInputs.cache +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -ed4ce7b1bb04de42fff3749f79cf419639b58942 +4d6195b11542c12c4ac7e1a55faa76619762e62b diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.FileListAbsolute.txt b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.FileListAbsolute.txt index 4319c5d0..05287b09 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.FileListAbsolute.txt +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.FileListAbsolute.txt @@ -192,3 +192,6 @@ C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod Manager (Facelift Development)\Stardew Mod Manager\obj\Release\Stardew_Mod_Manager.Forms.TelemetryOnboarding.resources C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod Manager (Facelift Development)\Stardew Mod Manager\obj\Release\Stardew_Mod_Manager.Forms.Repair.RepairApplication.resources C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod Manager (Facelift Development)\Stardew Mod Manager\bin\Release\EnvDTE.xml +C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod Manager (Facelift Development)\Stardew Mod Manager\bin\Release\DotNetZip.dll +C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod Manager (Facelift Development)\Stardew Mod Manager\bin\Release\DotNetZip.pdb +C:\Users\rwalpole\Documents\GitHub\Stardew-Valley-Mod-Framework\source-code\Mod Manager (Facelift Development)\Stardew Mod Manager\bin\Release\DotNetZip.xml diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache index 94d96b08c57f3ea7126b6b4800e6a202f76765df..1d6a45f9a9e0caf735246f2a5d8373f442c3980c 100644 GIT binary patch delta 31 pcmV+)0O0@49L*fC_W=f~nJG}}Qrb5>@!F7Oh>r^?Ys`7 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe index f1973a78..8f618eb8 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4186482a2818bae7c714b4dbc8ec22227bc1feef395c037966f01dd7ddde6afa -size 8261120 +oid sha256:e54a4ac5b7c9059fadf793b7496a81001da6e501b2a3a9d60a75df465f951657 +size 8260608 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.pdb index 6df5bc711b3c24fa97b2eaca53b08bb1d2a5d835..3269853acbc6ea65810366e13b1788f1c9af4e93 100644 GIT binary patch delta 60505 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 From 15b836810d6c22ebda1fc5cd460d870b82e2f056 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 4 Apr 2024 18:18:39 +1100 Subject: [PATCH 06/62] [v220402] - Rewrite Code (Issue #124) Rewrote the code to use Ionic.ZipFile instead of System.IO.Compression in an attempt to fix issue #124 Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MPInstaller.cs | 143 ++++++++---------- 1 file changed, 63 insertions(+), 80 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.cs index b0046eae..e04c0bb9 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.cs @@ -1,4 +1,5 @@ -using Stardew_Mod_Manager.Startup; +using Ionic.Zip; +using Stardew_Mod_Manager.Startup; using System; using System.Collections.Generic; using System.ComponentModel; @@ -24,24 +25,29 @@ public MPInstaller() string SMAPIVersionText = "SMAPI " + "v" + SMAPIVersion.ProductVersion; SMAPIVersionInfo.Text = SMAPIVersionText; + //For each mod in mods directory... foreach (string folder in Directory.GetDirectories(Properties.Settings.Default.ModsDir)) { + //Add to disable list ModsToDisable.Items.Add(Path.GetFileName(folder)); } + //For each mod in the disable list foreach (string item in ModsToDisable.Items) { + //Move to the inactive mods folder Directory.Move(Properties.Settings.Default.ModsDir + item, Properties.Settings.Default.InactiveModsDir + item); } - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; string UnpackLocation = Properties.Settings.Default.StardewDir + @"\tmp\unpack\"; string LA = Path.GetFileName(Properties.Settings.Default.LaunchArguments); + //for every folder in the modpack (unpacked) foreach (string folder in Directory.GetDirectories(UnpackLocation)) { + //mark mod as one to be overwritten if (Directory.Exists(Properties.Settings.Default.InactiveModsDir + Path.GetFileName(folder))) { OverwriteMods.Items.Add(Path.GetFileName(folder)); @@ -52,6 +58,7 @@ public MPInstaller() try { + //read the metadata for the modpack if possible MetaInfRead.LoadFile(UnpackLocation + @"meta.ini", RichTextBoxStreamType.PlainText); foreach(string line in MetaInfRead.Lines) { @@ -92,19 +99,20 @@ private void DoModInstall_DoWork(object sender, DoWorkEventArgs e) string zipPath = UnpackLocation + LA.Replace(".sdvmp", ".zip"); string extractPath = Properties.Settings.Default.InactiveModsDir; + //move the modpack to the unpack location, as a zip file File.Move(Properties.Settings.Default.LaunchArguments, UnpackLocation + LA.Replace(".sdvmp", ".zip")); - using (ZipArchive archive = ZipFile.OpenRead(zipPath)) + //extract the zip file to the inactive mods folder + using (Ionic.Zip.ZipFile zipFile = Ionic.Zip.ZipFile.Read(zipPath)) { - foreach (ZipArchiveEntry entry in archive.Entries) + foreach(ZipEntry zipEntry in zipFile) { - if (Directory.Exists(Properties.Settings.Default.InactiveModsDir + entry.FullName)) - { - Directory.Delete(Properties.Settings.Default.InactiveModsDir + entry.FullName, true); - } + //overwrite if the file already exists! + zipEntry.Extract(extractPath, ExtractExistingFileAction.OverwriteSilently); } } + //delete the metadata for the modpack after installation if(File.Exists(Properties.Settings.Default.ModsDir + @"\meta.ini")) { File.Delete(Properties.Settings.Default.ModsDir + @"\meta.ini"); @@ -139,96 +147,71 @@ private void DoModInstall_RunWorkerCompleted(object sender, RunWorkerCompletedEv private void DoMovementOperation_Tick(object sender, EventArgs e) { DoMovementOperation.Stop(); - DoModDelete.RunWorkerAsync(); + DoFinish(); } - private void DoModDelete_DoWork(object sender, DoWorkEventArgs e) + private void DoFinish() { - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; + string PresetName = Path.GetFileNameWithoutExtension(Properties.Settings.Default.LaunchArguments); + //string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + //string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; string UnpackLocation = Properties.Settings.Default.StardewDir + @"\tmp\unpack\"; string LA = Path.GetFileName(Properties.Settings.Default.LaunchArguments); - string zipPath = UnpackLocation + LA.Replace(".sdvmp", ".zip"); - string extractPath = Properties.Settings.Default.InactiveModsDir; - - ZipFile.ExtractToDirectory(zipPath, extractPath); - } + //Move the zip file back to the original location, with SDVMP file extension + File.Move(UnpackLocation + LA.Replace(".sdvmp", ".zip"), Properties.Settings.Default.LaunchArguments); - private void DoModDelete_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - if (e.Cancelled == true) + //Generate a preset based on the installed modpack + foreach (string item in ModsToInstall.Items) { - MessageBox.Show("The operation was cancelled by the user or the system.", "Stardew Valley Modpack Installer", MessageBoxButtons.OK, MessageBoxIcon.Warning); - CreateErrorLog("Modpack installation was cancelled by the user or the system: " + e.Error.Message); - Application.Exit(); + PresetGenerator.AppendText(item + Environment.NewLine); } - else if (e.Error != null) - { - //resultLabel.Text = "Error: " + e.Error.Message; - MessageBox.Show("The application experienced an issue whilst trying to install the modpack: " + Environment.NewLine + e.Error.Message, "Stardew Valley Modpack Installer", MessageBoxButtons.OK, MessageBoxIcon.Error); - CreateErrorLog("The application experienced an issue whilst trying to install the modpack: " + e.Error.Message); - Application.Exit(); - } - else + + PresetGenerator.AppendText("ConsoleCommands" + Environment.NewLine); + PresetGenerator.AppendText("ErrorHandler" + Environment.NewLine); + PresetGenerator.AppendText("SaveBackup" + Environment.NewLine); + + //Save the preset + PresetGenerator.SaveFile(Properties.Settings.Default.PresetsDir + PresetName + ".txt", RichTextBoxStreamType.PlainText); + + //Tell user it was successful. + DialogResult dr = MessageBox.Show("The modpack has been successfully installed. We've added a preset so you can easily one-click enable this modpack. The preset is called: " + PresetName + Environment.NewLine + Environment.NewLine + "Would you like to open the Stardew Valley Mod Manager now, to re-enable your mods?", "Stardew Valley Mod Manager", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dr == DialogResult.Yes) { - string PresetName = Path.GetFileNameWithoutExtension(Properties.Settings.Default.LaunchArguments); - string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - string SDVAppData = AppData + @"\RWE Labs\SDV Mod Manager\"; - string UnpackLocation = Properties.Settings.Default.StardewDir + @"\tmp\unpack\"; - string LA = Path.GetFileName(Properties.Settings.Default.LaunchArguments); + this.Hide(); + + Properties.Settings.Default.LaunchArguments = null; + Properties.Settings.Default.Save(); - File.Move(UnpackLocation + LA.Replace(".sdvmp", ".zip"), Properties.Settings.Default.LaunchArguments); + MainPage splash = new MainPage(); + splash.Show(); + splash.Activate(); - foreach (string item in ModsToInstall.Items) + string DeleteLocation = Properties.Settings.Default.StardewDir + @"\tmp\"; + try { - PresetGenerator.AppendText(item + Environment.NewLine); + Directory.Delete(DeleteLocation, true); } + catch (Exception ex) + { + CreateErrorLog("Cleanup operations were unable to take place. Error Message: " + ex.Message); + } + } + else + { + Properties.Settings.Default.LaunchArguments = null; + Properties.Settings.Default.Save(); + Application.Exit(); - PresetGenerator.AppendText("ConsoleCommands" + Environment.NewLine); - PresetGenerator.AppendText("ErrorHandler" + Environment.NewLine); - PresetGenerator.AppendText("SaveBackup" + Environment.NewLine); - - PresetGenerator.SaveFile(Properties.Settings.Default.PresetsDir + PresetName + ".txt", RichTextBoxStreamType.PlainText); - - DialogResult dr = MessageBox.Show("The modpack has been successfully installed. We've added a preset so you can easily one-click enable this modpack. The preset is called: " + PresetName + Environment.NewLine + Environment.NewLine + "Would you like to open the Stardew Valley Mod Manager now, to re-enable your mods?", "Stardew Valley Mod Manager", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) + string DeleteLocation = Properties.Settings.Default.StardewDir + @"\tmp\"; + try { - this.Hide(); - - Properties.Settings.Default.LaunchArguments = null; - Properties.Settings.Default.Save(); - - MainPage splash = new MainPage(); - splash.Show(); - splash.Activate(); - - string DeleteLocation = Properties.Settings.Default.StardewDir + @"\tmp\"; - try - { - Directory.Delete(DeleteLocation, true); - } - catch (Exception ex) - { - CreateErrorLog("Cleanup operations were unable to take place. Error Message: " + ex.Message); - } + Directory.Delete(DeleteLocation, true); } - else + catch (Exception ex) { - Properties.Settings.Default.LaunchArguments = null; - Properties.Settings.Default.Save(); - Application.Exit(); - - string DeleteLocation = Properties.Settings.Default.StardewDir + @"\tmp\"; - try - { - Directory.Delete(DeleteLocation, true); - } - catch (Exception ex) - { - //MessageBox.Show("Cleanup operations were unable to take place."); - CreateErrorLog("Cleanup operations were unable to take place. Error Message: " + ex.Message); - } + //MessageBox.Show("Cleanup operations were unable to take place."); + CreateErrorLog("Cleanup operations were unable to take place. Error Message: " + ex.Message); } } } From 4807e9b7a9cc2e1b6b66f39b062fda8b7c43aa87 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 4 Apr 2024 18:18:59 +1100 Subject: [PATCH 07/62] [v220402] - Update MPInstaller Update form visual designer to reflect changes made in last commit. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MPInstaller.Designer.cs | 9 --------- 1 file changed, 9 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.Designer.cs index b728dfb4..9c446587 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.Designer.cs @@ -42,7 +42,6 @@ private void InitializeComponent() this.DoModInstall = new System.ComponentModel.BackgroundWorker(); this.PresetGenerator = new System.Windows.Forms.RichTextBox(); this.DoMovementOperation = new System.Windows.Forms.Timer(this.components); - this.DoModDelete = new System.ComponentModel.BackgroundWorker(); this.ErrorLog = new System.Windows.Forms.RichTextBox(); this.label1 = new System.Windows.Forms.Label(); this.SMAPITarget = new System.Windows.Forms.TextBox(); @@ -160,13 +159,6 @@ private void InitializeComponent() this.DoMovementOperation.Interval = 11000; this.DoMovementOperation.Tick += new System.EventHandler(this.DoMovementOperation_Tick); // - // DoModDelete - // - this.DoModDelete.WorkerReportsProgress = true; - this.DoModDelete.DoWork += new System.ComponentModel.DoWorkEventHandler(this.DoModDelete_DoWork); - this.DoModDelete.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.DoModDelete_ProgressChanged); - this.DoModDelete.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.DoModDelete_RunWorkerCompleted); - // // ErrorLog // this.ErrorLog.Location = new System.Drawing.Point(12, 12); @@ -269,7 +261,6 @@ private void InitializeComponent() private System.ComponentModel.BackgroundWorker DoModInstall; private System.Windows.Forms.RichTextBox PresetGenerator; private System.Windows.Forms.Timer DoMovementOperation; - private System.ComponentModel.BackgroundWorker DoModDelete; private System.Windows.Forms.RichTextBox ErrorLog; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox SMAPITarget; From a939d73007d15462f4853c3c9d80b79217862c97 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:04:38 +1100 Subject: [PATCH 08/62] [v240402] - Update MainPage Designer Update MainPage designer Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/MainPage.Designer.cs | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs index 6ce485ff..785644c0 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs @@ -96,6 +96,7 @@ private void InitializeComponent() this.OpenSaves = new System.Windows.Forms.ToolStripButton(); this.Tab_Main = new Syncfusion.Windows.Forms.Tools.TabPageAdv(); this.SMAPIWarning = new System.Windows.Forms.Panel(); + this.SMAPIBundleInstall = new System.Windows.Forms.LinkLabel(); this.SMAPIDownload = new System.Windows.Forms.LinkLabel(); this.label3 = new System.Windows.Forms.Label(); this.pictureBox2 = new System.Windows.Forms.PictureBox(); @@ -154,7 +155,6 @@ private void InitializeComponent() this.StartSMAPIUpdateCheck = new System.Windows.Forms.Timer(this.components); this.Debug_BackupMods = new System.Windows.Forms.Button(); this.DoTelemetricChecks = new System.ComponentModel.BackgroundWorker(); - this.SMAPIBundleInstall = new System.Windows.Forms.LinkLabel(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.Icon_SMAPIUpToDate)).BeginInit(); this.groupBox5.SuspendLayout(); @@ -1003,12 +1003,26 @@ private void InitializeComponent() this.SMAPIWarning.Controls.Add(this.SMAPIDownload); this.SMAPIWarning.Controls.Add(this.label3); this.SMAPIWarning.Controls.Add(this.pictureBox2); - this.SMAPIWarning.Location = new System.Drawing.Point(22, 449); + this.SMAPIWarning.Location = new System.Drawing.Point(22, 375); this.SMAPIWarning.Name = "SMAPIWarning"; this.SMAPIWarning.Size = new System.Drawing.Size(553, 61); this.SMAPIWarning.TabIndex = 14; this.SMAPIWarning.Visible = false; // + // SMAPIBundleInstall + // + this.SMAPIBundleInstall.ActiveLinkColor = System.Drawing.Color.White; + this.SMAPIBundleInstall.AutoSize = true; + this.SMAPIBundleInstall.LinkColor = System.Drawing.Color.White; + this.SMAPIBundleInstall.Location = new System.Drawing.Point(278, 33); + this.SMAPIBundleInstall.Name = "SMAPIBundleInstall"; + this.SMAPIBundleInstall.Size = new System.Drawing.Size(112, 13); + this.SMAPIBundleInstall.TabIndex = 3; + this.SMAPIBundleInstall.TabStop = true; + this.SMAPIBundleInstall.Text = "Install Bundled SMAPI"; + this.SMAPIBundleInstall.VisitedLinkColor = System.Drawing.Color.White; + this.SMAPIBundleInstall.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.SMAPIBundleInstall_LinkClicked); + // // SMAPIDownload // this.SMAPIDownload.ActiveLinkColor = System.Drawing.Color.White; @@ -1711,20 +1725,6 @@ private void InitializeComponent() this.DoTelemetricChecks.DoWork += new System.ComponentModel.DoWorkEventHandler(this.DoTelemetricChecks_DoWork); this.DoTelemetricChecks.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.DoTelemetricChecks_RunWorkerCompleted); // - // SMAPIBundleInstall - // - this.SMAPIBundleInstall.ActiveLinkColor = System.Drawing.Color.White; - this.SMAPIBundleInstall.AutoSize = true; - this.SMAPIBundleInstall.LinkColor = System.Drawing.Color.White; - this.SMAPIBundleInstall.Location = new System.Drawing.Point(278, 33); - this.SMAPIBundleInstall.Name = "SMAPIBundleInstall"; - this.SMAPIBundleInstall.Size = new System.Drawing.Size(112, 13); - this.SMAPIBundleInstall.TabIndex = 3; - this.SMAPIBundleInstall.TabStop = true; - this.SMAPIBundleInstall.Text = "Install Bundled SMAPI"; - this.SMAPIBundleInstall.VisitedLinkColor = System.Drawing.Color.White; - this.SMAPIBundleInstall.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.SMAPIBundleInstall_LinkClicked); - // // MainPage // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); From 1d2e69580a2fe920e7c0f9d1e705566eef441df3 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:05:00 +1100 Subject: [PATCH 09/62] [v240402] - Update MPInstaller Update the MPInstaller resources file with changes made in previous commits. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MPInstaller.resx | 3 --- 1 file changed, 3 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.resx b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.resx index 95590dfe..9a233d71 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.resx +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MPInstaller.resx @@ -123,9 +123,6 @@ 142, 17 - - 323, 17 - From 67c06c91b09662ccee45003e32a3bfa291898793 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:05:21 +1100 Subject: [PATCH 10/62] [v240402] - Update Project Files Update project files and debug build. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 268800 -> 224768 bytes .../Stardew Mod Manager.csproj | 3 +++ .../bin/Release/Stardew Mod Manager.exe | 4 ++-- .../bin/Release/Stardew Mod Manager.pdb | Bin 337408 -> 337408 bytes .../Stardew Mod Manager/packages.config | 1 + 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 58b8a6e3346eb3b8841326dea6305b6d69ffcef7..b796aeca2da66e4438576015126e877e76c7ec38 100644 GIT binary patch delta 6451 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%0A7*l!}Z^Vn2SeL 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 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Stardew Mod Manager.csproj b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Stardew Mod Manager.csproj index bdc79dab..0d4297b8 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Stardew Mod Manager.csproj +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Stardew Mod Manager.csproj @@ -72,6 +72,9 @@ app.manifest + + ..\packages\DotNetZip.1.16.0\lib\net40\DotNetZip.dll + diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe index f1973a78..8f618eb8 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4186482a2818bae7c714b4dbc8ec22227bc1feef395c037966f01dd7ddde6afa -size 8261120 +oid sha256:e54a4ac5b7c9059fadf793b7496a81001da6e501b2a3a9d60a75df465f951657 +size 8260608 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index 6df5bc711b3c24fa97b2eaca53b08bb1d2a5d835..3269853acbc6ea65810366e13b1788f1c9af4e93 100644 GIT binary patch delta 60505 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 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/packages.config b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/packages.config index 368091cd..0b5ca1e6 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/packages.config +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/packages.config @@ -1,5 +1,6 @@  + From 5e56a9406824633a7cac1f325fcda8ad25c8ac91 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:26:08 +1100 Subject: [PATCH 11/62] [v240402] - Adjust user settings page Add a new section for SMAPI related settings + include a way to install the bundled copy of SMAPI Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/MainPage.Designer.cs | 60 ++++++++++++++++--- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs index 785644c0..78463d45 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs @@ -155,6 +155,9 @@ private void InitializeComponent() this.StartSMAPIUpdateCheck = new System.Windows.Forms.Timer(this.components); this.Debug_BackupMods = new System.Windows.Forms.Button(); this.DoTelemetricChecks = new System.ComponentModel.BackgroundWorker(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.SMAPIRunRepairButton = new Syncfusion.WinForms.Controls.SfButton(); + this.InstallBundledSMAPIButton = new Syncfusion.WinForms.Controls.SfButton(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.Icon_SMAPIUpToDate)).BeginInit(); this.groupBox5.SuspendLayout(); @@ -182,6 +185,7 @@ private void InitializeComponent() this.groupBox9.SuspendLayout(); this.groupBox8.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + this.groupBox6.SuspendLayout(); this.SuspendLayout(); // // ModFolderPath @@ -330,12 +334,11 @@ private void InitializeComponent() this.groupBox5.Controls.Add(this.WebToolsWarningEnabled); this.groupBox5.Controls.Add(this.label17); this.groupBox5.Controls.Add(this.ThemeColor); - this.groupBox5.Controls.Add(this.CheckSMAPIUpdatesOnStart); this.groupBox5.Controls.Add(this.CheckForUpdatesOnStartup); this.groupBox5.Font = new System.Drawing.Font("Segoe UI", 8.25F); this.groupBox5.Location = new System.Drawing.Point(21, 310); this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(541, 165); + this.groupBox5.Size = new System.Drawing.Size(541, 131); this.groupBox5.TabIndex = 35; this.groupBox5.TabStop = false; this.groupBox5.Text = "Application Settings"; @@ -344,7 +347,7 @@ private void InitializeComponent() // this.WebToolsWarningEnabled.AutoSize = true; this.WebToolsWarningEnabled.Font = new System.Drawing.Font("Segoe UI", 9.25F); - this.WebToolsWarningEnabled.Location = new System.Drawing.Point(11, 127); + this.WebToolsWarningEnabled.Location = new System.Drawing.Point(11, 95); this.WebToolsWarningEnabled.Name = "WebToolsWarningEnabled"; this.WebToolsWarningEnabled.Size = new System.Drawing.Size(336, 21); this.WebToolsWarningEnabled.TabIndex = 38; @@ -383,7 +386,7 @@ private void InitializeComponent() // this.CheckSMAPIUpdatesOnStart.AutoSize = true; this.CheckSMAPIUpdatesOnStart.Font = new System.Drawing.Font("Segoe UI", 9.25F); - this.CheckSMAPIUpdatesOnStart.Location = new System.Drawing.Point(11, 100); + this.CheckSMAPIUpdatesOnStart.Location = new System.Drawing.Point(11, 21); this.CheckSMAPIUpdatesOnStart.Name = "CheckSMAPIUpdatesOnStart"; this.CheckSMAPIUpdatesOnStart.Size = new System.Drawing.Size(318, 21); this.CheckSMAPIUpdatesOnStart.TabIndex = 35; @@ -676,6 +679,7 @@ private void InitializeComponent() this.Tab_Settings.AutoScroll = true; this.Tab_Settings.AutoScrollMargin = new System.Drawing.Size(0, 15); this.Tab_Settings.BackColor = System.Drawing.Color.White; + this.Tab_Settings.Controls.Add(this.groupBox6); this.Tab_Settings.Controls.Add(this.groupBox3); this.Tab_Settings.Controls.Add(this.groupBox7); this.Tab_Settings.Controls.Add(this.SettingsResetButton); @@ -703,7 +707,7 @@ private void InitializeComponent() this.groupBox3.Controls.Add(this.label19); this.groupBox3.Controls.Add(this.TelemetryOptInOut); this.groupBox3.Font = new System.Drawing.Font("Segoe UI", 8.25F); - this.groupBox3.Location = new System.Drawing.Point(21, 616); + this.groupBox3.Location = new System.Drawing.Point(21, 696); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(539, 127); this.groupBox3.TabIndex = 39; @@ -769,7 +773,7 @@ private void InitializeComponent() this.groupBox7.Controls.Add(this.ViewErrorLogs); this.groupBox7.Controls.Add(this.Setting_CreateErrorLogs); this.groupBox7.Font = new System.Drawing.Font("Segoe UI", 8.25F); - this.groupBox7.Location = new System.Drawing.Point(21, 495); + this.groupBox7.Location = new System.Drawing.Point(21, 453); this.groupBox7.Name = "groupBox7"; this.groupBox7.Size = new System.Drawing.Size(541, 105); this.groupBox7.TabIndex = 36; @@ -816,7 +820,7 @@ private void InitializeComponent() // this.SettingsResetButton.AccessibleName = "Button"; this.SettingsResetButton.Font = new System.Drawing.Font("Segoe UI", 9F); - this.SettingsResetButton.Location = new System.Drawing.Point(261, 757); + this.SettingsResetButton.Location = new System.Drawing.Point(261, 837); this.SettingsResetButton.Name = "SettingsResetButton"; this.SettingsResetButton.Size = new System.Drawing.Size(233, 28); this.SettingsResetButton.TabIndex = 38; @@ -827,7 +831,7 @@ private void InitializeComponent() // this.LegacySettings.AccessibleName = "Button"; this.LegacySettings.Font = new System.Drawing.Font("Segoe UI", 9F); - this.LegacySettings.Location = new System.Drawing.Point(19, 757); + this.LegacySettings.Location = new System.Drawing.Point(19, 837); this.LegacySettings.Name = "LegacySettings"; this.LegacySettings.Size = new System.Drawing.Size(236, 28); this.LegacySettings.TabIndex = 37; @@ -1725,6 +1729,41 @@ private void InitializeComponent() this.DoTelemetricChecks.DoWork += new System.ComponentModel.DoWorkEventHandler(this.DoTelemetricChecks_DoWork); this.DoTelemetricChecks.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.DoTelemetricChecks_RunWorkerCompleted); // + // groupBox6 + // + this.groupBox6.Controls.Add(this.SMAPIRunRepairButton); + this.groupBox6.Controls.Add(this.InstallBundledSMAPIButton); + this.groupBox6.Controls.Add(this.CheckSMAPIUpdatesOnStart); + this.groupBox6.Font = new System.Drawing.Font("Segoe UI", 8.25F); + this.groupBox6.Location = new System.Drawing.Point(21, 575); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(541, 105); + this.groupBox6.TabIndex = 40; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "SMAPI"; + // + // SMAPIRunRepairButton + // + this.SMAPIRunRepairButton.AccessibleName = "Button"; + this.SMAPIRunRepairButton.Font = new System.Drawing.Font("Segoe UI", 9F); + this.SMAPIRunRepairButton.Location = new System.Drawing.Point(190, 56); + this.SMAPIRunRepairButton.Name = "SMAPIRunRepairButton"; + this.SMAPIRunRepairButton.Size = new System.Drawing.Size(171, 28); + this.SMAPIRunRepairButton.TabIndex = 40; + this.SMAPIRunRepairButton.Text = "Uninstall or Repair SMAPI"; + this.SMAPIRunRepairButton.Click += new System.EventHandler(this.SMAPIRunRepairButton_Click); + // + // InstallBundledSMAPIButton + // + this.InstallBundledSMAPIButton.AccessibleName = "Button"; + this.InstallBundledSMAPIButton.Font = new System.Drawing.Font("Segoe UI", 9F); + this.InstallBundledSMAPIButton.Location = new System.Drawing.Point(19, 56); + this.InstallBundledSMAPIButton.Name = "InstallBundledSMAPIButton"; + this.InstallBundledSMAPIButton.Size = new System.Drawing.Size(165, 28); + this.InstallBundledSMAPIButton.TabIndex = 39; + this.InstallBundledSMAPIButton.Text = "Install Bundled SMAPI"; + this.InstallBundledSMAPIButton.Click += new System.EventHandler(this.InstallBundledSMAPIButton_Click); + // // MainPage // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1793,6 +1832,8 @@ private void InitializeComponent() this.groupBox9.ResumeLayout(false); this.groupBox8.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -1923,5 +1964,8 @@ private void InitializeComponent() private System.Windows.Forms.CheckBox WebToolsWarningEnabled; private Syncfusion.WinForms.Controls.SfButton VolunteerTelemetry; private System.Windows.Forms.LinkLabel SMAPIBundleInstall; + private System.Windows.Forms.GroupBox groupBox6; + private Syncfusion.WinForms.Controls.SfButton SMAPIRunRepairButton; + private Syncfusion.WinForms.Controls.SfButton InstallBundledSMAPIButton; } } \ No newline at end of file From b766d40d2efcbea3752b24fa8f3c63273169174d Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:26:35 +1100 Subject: [PATCH 12/62] [v240402] - Create Bundled SMAPI Install Button Create a button that allows the user to install the bundled version of SMAPI Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index eb4c2624..876618d8 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -1847,5 +1847,18 @@ private void SMAPIBundleInstall_LinkClicked(object sender, LinkLabelLinkClickedE Application.Exit(); } + + private void SMAPIRunRepairButton_Click(object sender, EventArgs e) + { + string SMAPIPath = ""; + //do SMAPI things + } + + private void InstallBundledSMAPIButton_Click(object sender, EventArgs e) + { + //run SMAPI Bundled Installer + string BundledSMAPI = Path.GetDirectoryName(Application.ExecutablePath); + Process.Start(BundledSMAPI + @"\smapi.bat"); + } } } From 10aee47372747f5b00103831ce3aa327e2c31f12 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:27:35 +1100 Subject: [PATCH 13/62] [v240402] - Update FirstRunSetup Update the first run setup to attempt to fix the image not stretching the entire width of the window. Might need to migrate the window to a regular form instead of sfwindow. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/First Run/FirstRunSetup.Designer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs index 84848a32..6a6f5608 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs @@ -190,7 +190,7 @@ private void InitializeComponent() // pictureBox1 // this.pictureBox1.Image = global::Stardew_Mod_Manager.Properties.Resources.GameDirExample; - this.pictureBox1.Location = new System.Drawing.Point(-4, -26); + this.pictureBox1.Location = new System.Drawing.Point(-1, -26); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(604, 329); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; From c426386ee6dded03d228eac85f1f8188e520ad7d Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Sat, 6 Apr 2024 14:27:52 +1100 Subject: [PATCH 14/62] [v240402] - Update Project Files Update SUO file and resources for MainPage. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 224768 -> 238080 bytes .../Stardew Mod Manager/Forms/MainPage.resx | 6 ++++++ 2 files changed, 6 insertions(+) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index b796aeca2da66e4438576015126e877e76c7ec38..1aed9ae3c6ad65a5592af9861d20fbb0e2980742 100644 GIT binary patch delta 5787 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 372, 6 + + 705, 5 + + + 372, 6 + Please note that the mod install process was designed for mods distributed on NexusMods. If you received your ZIP file from a different vendor, it might not install correctly. If you're having issues, ensure that the ZIP archive contains a folder named after the mod and that the mod files are not in the root directory of the ZIP archive. From d3e3ec5b5ac9b198f39709a49d8269f7f3c7eb45 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 10 Apr 2024 14:39:35 +1000 Subject: [PATCH 15/62] [v220402] - Update Build v220402_1004239P Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe index 8f618eb8..043f9536 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e54a4ac5b7c9059fadf793b7496a81001da6e501b2a3a9d60a75df465f951657 -size 8260608 +oid sha256:9e941951566a870fe6a6c74c78a4caa6a85bb4f5eb0c18192d5a3a1789cea334 +size 8261632 From 95fa2bf51893a5feac37b9a5d87f167b6fd1b2c4 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 10 Apr 2024 14:39:46 +1000 Subject: [PATCH 16/62] [v220402] - Update Build Objects Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- ... Mod Manager.csproj.GenerateResource.cache | Bin 3661 -> 3661 bytes .../obj/Release/Stardew Mod Manager.exe | 4 ++-- .../obj/Release/Stardew Mod Manager.pdb | Bin 337408 -> 339456 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/obj/Release/Stardew Mod Manager.csproj.GenerateResource.cache index 1d6a45f9a9e0caf735246f2a5d8373f442c3980c..2e5612172dfca4e48dc7e4c9924e2779906c2996 100644 GIT binary patch delta 31 ncmX>rb5>@9A|tzDd_Sji*qzB5jOW?zGlm#Chi(4L7{CJnuto~y delta 31 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 Date: Wed, 10 Apr 2024 14:39:55 +1000 Subject: [PATCH 17/62] [v220402] - Update Project Files Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 238080 -> 236032 bytes .../bin/Release/Stardew Mod Manager.pdb | Bin 337408 -> 339456 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 1aed9ae3c6ad65a5592af9861d20fbb0e2980742..dac1bcfdc123d06894df71564396101873f0724f 100644 GIT binary patch delta 5337 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 diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/bin/Release/Stardew Mod Manager.pdb index 3269853acbc6ea65810366e13b1788f1c9af4e93..7f5e575be4cf8d2017b6f40520acd5d5820cc98e 100644 GIT binary patch delta 52436 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 Date: Wed, 10 Apr 2024 14:42:56 +1000 Subject: [PATCH 18/62] [v220402] - Update MainPage Disable the SMAPI repair/uninstall button until I can re-work it. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/MainPage.Designer.cs | 109 +++++++++--------- .../Stardew Mod Manager/Forms/MainPage.resx | 12 -- 2 files changed, 55 insertions(+), 66 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs index 78463d45..2502a71c 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs @@ -46,8 +46,8 @@ private void InitializeComponent() this.WebToolsWarningEnabled = new System.Windows.Forms.CheckBox(); this.label17 = new System.Windows.Forms.Label(); this.ThemeColor = new System.Windows.Forms.ComboBox(); - this.CheckSMAPIUpdatesOnStart = new System.Windows.Forms.CheckBox(); this.CheckForUpdatesOnStartup = new System.Windows.Forms.CheckBox(); + this.CheckSMAPIUpdatesOnStart = new System.Windows.Forms.CheckBox(); this.label6 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.SettingsIconImage = new System.Windows.Forms.PictureBox(); @@ -73,6 +73,9 @@ private void InitializeComponent() this.DisableModButton = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.Tab_Settings = new Syncfusion.Windows.Forms.Tools.TabPageAdv(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.SMAPIRunRepairButton = new Syncfusion.WinForms.Controls.SfButton(); + this.InstallBundledSMAPIButton = new Syncfusion.WinForms.Controls.SfButton(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.VolunteerTelemetry = new Syncfusion.WinForms.Controls.SfButton(); this.ViewTelemetryPolicy = new System.Windows.Forms.LinkLabel(); @@ -155,9 +158,6 @@ private void InitializeComponent() this.StartSMAPIUpdateCheck = new System.Windows.Forms.Timer(this.components); this.Debug_BackupMods = new System.Windows.Forms.Button(); this.DoTelemetricChecks = new System.ComponentModel.BackgroundWorker(); - this.groupBox6 = new System.Windows.Forms.GroupBox(); - this.SMAPIRunRepairButton = new Syncfusion.WinForms.Controls.SfButton(); - this.InstallBundledSMAPIButton = new Syncfusion.WinForms.Controls.SfButton(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.Icon_SMAPIUpToDate)).BeginInit(); this.groupBox5.SuspendLayout(); @@ -166,6 +166,7 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.ValidDirectory)).BeginInit(); this.EnableDisableMods.SuspendLayout(); this.Tab_Settings.SuspendLayout(); + this.groupBox6.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox7.SuspendLayout(); this.Tab_GameMan.SuspendLayout(); @@ -185,7 +186,6 @@ private void InitializeComponent() this.groupBox9.SuspendLayout(); this.groupBox8.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - this.groupBox6.SuspendLayout(); this.SuspendLayout(); // // ModFolderPath @@ -382,18 +382,6 @@ private void InitializeComponent() this.ThemeColor.TabIndex = 36; this.ThemeColor.SelectedValueChanged += new System.EventHandler(this.ThemeColor_SelectedValueChanged); // - // CheckSMAPIUpdatesOnStart - // - this.CheckSMAPIUpdatesOnStart.AutoSize = true; - this.CheckSMAPIUpdatesOnStart.Font = new System.Drawing.Font("Segoe UI", 9.25F); - this.CheckSMAPIUpdatesOnStart.Location = new System.Drawing.Point(11, 21); - this.CheckSMAPIUpdatesOnStart.Name = "CheckSMAPIUpdatesOnStart"; - this.CheckSMAPIUpdatesOnStart.Size = new System.Drawing.Size(318, 21); - this.CheckSMAPIUpdatesOnStart.TabIndex = 35; - this.CheckSMAPIUpdatesOnStart.Text = "Check for SMAPI updates automatically on startup"; - this.CheckSMAPIUpdatesOnStart.UseVisualStyleBackColor = true; - this.CheckSMAPIUpdatesOnStart.CheckStateChanged += new System.EventHandler(this.CheckSMAPIForUpdatesOnStartup_CheckStateChanged); - // // CheckForUpdatesOnStartup // this.CheckForUpdatesOnStartup.AutoSize = true; @@ -406,6 +394,18 @@ private void InitializeComponent() this.CheckForUpdatesOnStartup.UseVisualStyleBackColor = true; this.CheckForUpdatesOnStartup.CheckStateChanged += new System.EventHandler(this.CheckForUpdatesOnStartup_CheckStateChanged); // + // CheckSMAPIUpdatesOnStart + // + this.CheckSMAPIUpdatesOnStart.AutoSize = true; + this.CheckSMAPIUpdatesOnStart.Font = new System.Drawing.Font("Segoe UI", 9.25F); + this.CheckSMAPIUpdatesOnStart.Location = new System.Drawing.Point(11, 21); + this.CheckSMAPIUpdatesOnStart.Name = "CheckSMAPIUpdatesOnStart"; + this.CheckSMAPIUpdatesOnStart.Size = new System.Drawing.Size(318, 21); + this.CheckSMAPIUpdatesOnStart.TabIndex = 35; + this.CheckSMAPIUpdatesOnStart.Text = "Check for SMAPI updates automatically on startup"; + this.CheckSMAPIUpdatesOnStart.UseVisualStyleBackColor = true; + this.CheckSMAPIUpdatesOnStart.CheckStateChanged += new System.EventHandler(this.CheckSMAPIForUpdatesOnStartup_CheckStateChanged); + // // label6 // this.label6.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold); @@ -699,6 +699,42 @@ private void InitializeComponent() this.Tab_Settings.Text = "Settings"; this.Tab_Settings.ThemesEnabled = false; // + // groupBox6 + // + this.groupBox6.Controls.Add(this.SMAPIRunRepairButton); + this.groupBox6.Controls.Add(this.InstallBundledSMAPIButton); + this.groupBox6.Controls.Add(this.CheckSMAPIUpdatesOnStart); + this.groupBox6.Font = new System.Drawing.Font("Segoe UI", 8.25F); + this.groupBox6.Location = new System.Drawing.Point(21, 575); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(541, 105); + this.groupBox6.TabIndex = 40; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "SMAPI"; + // + // SMAPIRunRepairButton + // + this.SMAPIRunRepairButton.AccessibleName = "Button"; + this.SMAPIRunRepairButton.Enabled = false; + this.SMAPIRunRepairButton.Font = new System.Drawing.Font("Segoe UI", 9F); + this.SMAPIRunRepairButton.Location = new System.Drawing.Point(190, 56); + this.SMAPIRunRepairButton.Name = "SMAPIRunRepairButton"; + this.SMAPIRunRepairButton.Size = new System.Drawing.Size(171, 28); + this.SMAPIRunRepairButton.TabIndex = 40; + this.SMAPIRunRepairButton.Text = "Uninstall or Repair SMAPI"; + this.SMAPIRunRepairButton.Click += new System.EventHandler(this.SMAPIRunRepairButton_Click); + // + // InstallBundledSMAPIButton + // + this.InstallBundledSMAPIButton.AccessibleName = "Button"; + this.InstallBundledSMAPIButton.Font = new System.Drawing.Font("Segoe UI", 9F); + this.InstallBundledSMAPIButton.Location = new System.Drawing.Point(19, 56); + this.InstallBundledSMAPIButton.Name = "InstallBundledSMAPIButton"; + this.InstallBundledSMAPIButton.Size = new System.Drawing.Size(165, 28); + this.InstallBundledSMAPIButton.TabIndex = 39; + this.InstallBundledSMAPIButton.Text = "Install Bundled SMAPI"; + this.InstallBundledSMAPIButton.Click += new System.EventHandler(this.InstallBundledSMAPIButton_Click); + // // groupBox3 // this.groupBox3.Controls.Add(this.VolunteerTelemetry); @@ -1729,41 +1765,6 @@ private void InitializeComponent() this.DoTelemetricChecks.DoWork += new System.ComponentModel.DoWorkEventHandler(this.DoTelemetricChecks_DoWork); this.DoTelemetricChecks.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.DoTelemetricChecks_RunWorkerCompleted); // - // groupBox6 - // - this.groupBox6.Controls.Add(this.SMAPIRunRepairButton); - this.groupBox6.Controls.Add(this.InstallBundledSMAPIButton); - this.groupBox6.Controls.Add(this.CheckSMAPIUpdatesOnStart); - this.groupBox6.Font = new System.Drawing.Font("Segoe UI", 8.25F); - this.groupBox6.Location = new System.Drawing.Point(21, 575); - this.groupBox6.Name = "groupBox6"; - this.groupBox6.Size = new System.Drawing.Size(541, 105); - this.groupBox6.TabIndex = 40; - this.groupBox6.TabStop = false; - this.groupBox6.Text = "SMAPI"; - // - // SMAPIRunRepairButton - // - this.SMAPIRunRepairButton.AccessibleName = "Button"; - this.SMAPIRunRepairButton.Font = new System.Drawing.Font("Segoe UI", 9F); - this.SMAPIRunRepairButton.Location = new System.Drawing.Point(190, 56); - this.SMAPIRunRepairButton.Name = "SMAPIRunRepairButton"; - this.SMAPIRunRepairButton.Size = new System.Drawing.Size(171, 28); - this.SMAPIRunRepairButton.TabIndex = 40; - this.SMAPIRunRepairButton.Text = "Uninstall or Repair SMAPI"; - this.SMAPIRunRepairButton.Click += new System.EventHandler(this.SMAPIRunRepairButton_Click); - // - // InstallBundledSMAPIButton - // - this.InstallBundledSMAPIButton.AccessibleName = "Button"; - this.InstallBundledSMAPIButton.Font = new System.Drawing.Font("Segoe UI", 9F); - this.InstallBundledSMAPIButton.Location = new System.Drawing.Point(19, 56); - this.InstallBundledSMAPIButton.Name = "InstallBundledSMAPIButton"; - this.InstallBundledSMAPIButton.Size = new System.Drawing.Size(165, 28); - this.InstallBundledSMAPIButton.TabIndex = 39; - this.InstallBundledSMAPIButton.Text = "Install Bundled SMAPI"; - this.InstallBundledSMAPIButton.Click += new System.EventHandler(this.InstallBundledSMAPIButton_Click); - // // MainPage // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1803,6 +1804,8 @@ private void InitializeComponent() this.EnableDisableMods.PerformLayout(); this.Tab_Settings.ResumeLayout(false); this.Tab_Settings.PerformLayout(); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); this.groupBox7.ResumeLayout(false); @@ -1832,8 +1835,6 @@ private void InitializeComponent() this.groupBox9.ResumeLayout(false); this.groupBox8.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - this.groupBox6.ResumeLayout(false); - this.groupBox6.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.resx b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.resx index f621e648..155b10bd 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.resx +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.resx @@ -131,15 +131,6 @@ If you're experiencing problems with the application, consider resetting it with 863, 5 - - 863, 5 - - - 705, 5 - - - 372, 6 - 705, 5 @@ -149,9 +140,6 @@ If you're experiencing problems with the application, consider resetting it with Please note that the mod install process was designed for mods distributed on NexusMods. If you received your ZIP file from a different vendor, it might not install correctly. If you're having issues, ensure that the ZIP archive contains a folder named after the mod and that the mod files are not in the root directory of the ZIP archive. - - 984, 6 - 1099, 6 From 99f22736c99139e43d8b1f8f6fd164209276d9bc Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Thu, 11 Apr 2024 16:12:08 +1000 Subject: [PATCH 19/62] Update Project Files Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 236032 -> 231424 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index dac1bcfdc123d06894df71564396101873f0724f..9cce6062cfb3237fd37ff36622a98b154ab04f27 100644 GIT binary patch delta 3502 zcmb_eeNa@_72k92TU;m-1YA)!d?*q`!iQqih`M}4DKV(1=%~S!_(3gELRUkX6jsHm z4Q6n!;c9FuKA0DiSVQ(HFEtbqXfn1*O({XE#L$itQ=3VhRQ)5Z(sLKqP$qR~rf=pq z=j^%noOAE_oqND_D#%q6RFf7x(quB33HSQ?`bd}z1c1aAlvDn}7 z`if6Sy?7a(<=b!(?_kN;2mB7^Dl!7Unq}o%zp`>CbB%lyOs4bUWTnr-K?zNmLK@}h zn@V!ofIfocLj;`=OSntxV@Ptl5>q*i6dR$LLRFHK&g)6fAYDeDIba)2GL;Zd7)$sq zA(JqN5K4H2aF+Zgk(4nOll%c;2_cf85H=F*gk(ZA;nzSZvq?!HNT(-Bet$rJjAT0D z3Bogka}?Z4vW?{TNKPiqCu|}}-wkA6Px?H<_yOCyWD6e9<(>rtdI8DRUVVi$_w|jV zA2S9PWqH<;?jWoqY#_)zvq+wyfObMUL9(%#AUTa7xr!itw~&nE>mtXD+(z2-1nFJD z|2%uVvrr_NO=g#$tgn=kblC*62YyS^A13%n4r?4*R`7$oD9#GT;%VzJTu5Oy15?xU;ni`$q7uTXW>F;LdZ^?hq$z zR#ZExC6=Kibm#KyzywKxT8^HT z4&;va>O{(JHiz5apT!-u{y6J6-%($$$GCdTo~}$Vn`Fn|Kd1BKYN3WQhwj*0XO`95 zf^KV!9`jNUlLtEZP0`dt7O}G%yF}vWIF5hWnJ0E}Hb)%gEI>{JlSt2p>A`QEU)xZ( z+?nE9KdG!>^=EsdPd-jEgdod2o#di^YA>nB(S5MP zGLcM=5PW^;e%a}lL2k}aUjFhP;c3PgW71B%0!=P-fpG0Zm)eN#GKDJz zQf>k6iOf|`p;p0Aq!=(x+X+Y%1**X0;Z&fVVy@~>*yWD+`L|vo|ACh%qSgDC zfO`kl%^2pvdCL2v#Uc&I=n1u5!0qBW>LNe=`MQ0;laGz8eG10waoQ#3y%`VwS*_mq z-eR+OyBQ}5Vj&$q;z?qs^fCUv6GwsjR0_4=L%RJ`E2tk~QybcWAA8*nC;MCSWRJJ& z5AvQTY@9+3ZCqnVJ1&Lq&~U@;wjU03o9C(>Qsw)l+I#<7y1+h(zp?w4Sh_qjBVl#n zKbJh-QItpeZ$6xFe3I|qx}0>{YSNwms7Cc9dOnK-c#coLKG7;U{+O1!2^R^O6!T9e zUU>bCZo7OOEYW21jtcLLyb|T<&H{@J_RW;JSofU|#GRj3t9KOj2C849oO8Y@?wxb$ z9gAo+gCZgr%=OM1V-%T|9yTJ&(F$VPTKrI3g-X*Y z0OV6|hKQtgNHrFe;u&}i3Nb{?TY8_;u?84!`XuL42Qbz2jlKp+y-LXTlk`I?ZoBMW88lf0q|M=4Avs`zTLd%kGY+j}MWdU_*-FMejj7^ZC>`9riEYtb4Aoq0 z+Rj#v5P8qA<32+b+r`Az!)%GDYsMtL^^Z2OYY&Sy>^01VY-v`$aMfbCIJ<}K5G{My z6xc6H4zrn}l{33m#gKPSix=^=ET3)KP%3&g%o4eWS+w|@n}s(CW=8?L*|VaAvrss} I&&AFAH;jhL1ONa4 delta 4136 zcma)<4^UNA9>?GBcQ5!bME-?Os+U8nG7uhzfB6>eD>D3#VYHLjKGQfp(=?zD|tJGisk7;nGl@gQnl>&|@c@0{N` z=XZX;-}&A9?sGMTxQ>T3Wh5-N*=zxz*X#8{*fekp2mxWBKy10v@M={exp{Sv>yyd_ z*PgjVHDUu7*yAy*mWs=Hk>c{lw-SqgalW0P${J7?#|xL{9QG$D&PL;gD@KqWky4Hp z_VoUsZvLyojH z&fAzf73~@R{yTkZ7pXC?IwoJke;bDW3ZPD1<*{ne_{0A86ObQ+CqW(93|v5&*aqXO zAVQyMdq@?;+M5)Fj=47Rc}|r0%g0f|sktK4py@9LWlddfJyL{v^s&Fe$PS)KRI>Osv@^`MSX)x#{%Uk~HZR`oC+sCrNbqH@(= z57W?20H}usTP_-^9+W{<4}oAj7!9(3ss}YTP!DkKZs;Bb6Tv+|RmW=RZ&n=+j4M0p zQU|80!|T1p>z#ptRCMkYU)(=3T@`{V096RSxwr+Pe-iy=ki&t}uYz0&oLDtt*f@-C z@{iOjJ3*hLr_Q(6q@lA|oQX-1<051 zo)k0jk!}*p&6M3$rDEr(W?C&O%(UHA@uFt*VKXtdn~Yp`x9*Ec#-1v|@sMh}6v(^4 zbkX+a{V~)0S~WvuIZKT~KC0ePBF@YRTIip#9GbK-E6{rc49=Od+JEKQM5~$a{xZ?$ zpD~8ro-fCpz=Aixo8T?~;#h2w2Gqg@kf)))PgPz}IC_&oWnVxCjHD2ExRaLMFkzx6 z{KFudTB3fK`qMb{Dmv;lY_plYleNHT7~cvS{hM!x+yP!jObxrM^r^3)^9OJc90G^I z5pWb711;cH&Nna9Pi$oEwYOhe8G>Q&a~chfSFT>__f zyNu&(#IZcp#a*K8hbZ&XYf04VK20iMvqu!*)m4CH>gDWPTK;VFfaA0E?fvS@Lm~t7 z`lHC#hYskGq0sCXv%i9!+o4S8A1DuN{=X^WV4L~<$Uv6vPTnKBXU3T=?-mBQ%Yx0| zGd!^wpMs%uG}7V0ebcLeFFI@xCnAcEWL8V=ePP08d#?MHa=(LYZk7U zq#H&XFWg(5vgth@CG!3rVm5zM{wpIj5h)uzcH>(@XL)id$`i=J z!WEljB~{WT@`Q7WXD_iV+Cy=B_fw=bVH%GLm+^1VI_s@=${~vmk~hrwo;{VU|HNE& zyPflAOUDaTDO0gjj;bTOZ2vul%jOr*QaaCmBF{nC4-2KSa@}d#X&pI5^T>0U0_E;I z={9ThMvfwR_X0lWX{F%yRZMm<@tbg&)=87BSyjAss7&ajRedw+*}k`y&zfhC-b+=ftZ{H4vkK@qF=?n2L8McJ7WWgSO+84$z zh9oQIQraN5L~3cUeCu_%+VK(({khWt%4uIN9rC+29xFSJa;)?koG#lX&k-#rGerE6 zF!_MNNpixA{73m<6aRIv6E}`8Q*JrLMb^nZ96@sJLW+|0FY$KyMH^36Tde%G;SWCH zpF~n@DVOM$bLz|2cST$EFY;Esy`7y}psgCZsd9Q3KkYfec1t_X>jPxVF}_=+rW86| ze$h_RqC7c7?8}L=GEQ+?s`e4OOOtK4F>oZ&+9bTE4^Fy5xKwPf*p zPNZ)E$<|VuD0W)W)|^kcouu&}o?=bu;`d2*l~Rh88mgTiEy8o^t$MrGNNue32FR_Q ze84*JE|+Ss80ZPt?vYz(Qj%Dk9B<{`qn(KHEY);ze%nRs;$qDeBF_)U(-!|V?=jlh zvr1!Y%rI>f$&x?W3=9WHI3<*3&>Nd9w}HqDw= zsl}39xJG*gX4>ntZS>Q5E|%-()2;F!E-gy_tx=1X@sDZovivEnTsZb;%8o6X!}l>E znv!aztCy4Y9Q=>_ Date: Fri, 12 Apr 2024 12:49:43 +1000 Subject: [PATCH 20/62] [v220402] - Update FirstRunSetup Fixed some visual inconsistencies with the first run setup. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Forms/First Run/FirstRunSetup.Designer.cs | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs index 6a6f5608..244035bd 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.Designer.cs @@ -113,9 +113,9 @@ private void InitializeComponent() // this.StepOneContinue.AccessibleName = "Button"; this.StepOneContinue.Font = new System.Drawing.Font("Segoe UI Semibold", 9F); - this.StepOneContinue.Location = new System.Drawing.Point(222, 546); + this.StepOneContinue.Location = new System.Drawing.Point(225, 541); this.StepOneContinue.Name = "StepOneContinue"; - this.StepOneContinue.Size = new System.Drawing.Size(147, 28); + this.StepOneContinue.Size = new System.Drawing.Size(147, 32); this.StepOneContinue.TabIndex = 9; this.StepOneContinue.Text = "Continue"; this.StepOneContinue.Click += new System.EventHandler(this.StepOneContinue_Click); @@ -134,7 +134,7 @@ private void InitializeComponent() // SubHeading // this.SubHeading.Font = new System.Drawing.Font("Segoe UI Semilight", 9.25F); - this.SubHeading.Location = new System.Drawing.Point(14, 398); + this.SubHeading.Location = new System.Drawing.Point(12, 396); this.SubHeading.Name = "SubHeading"; this.SubHeading.Size = new System.Drawing.Size(568, 128); this.SubHeading.TabIndex = 7; @@ -179,7 +179,7 @@ private void InitializeComponent() this.StepTwoContinue.ForeColor = System.Drawing.Color.Black; this.StepTwoContinue.Location = new System.Drawing.Point(439, 544); this.StepTwoContinue.Name = "StepTwoContinue"; - this.StepTwoContinue.Size = new System.Drawing.Size(130, 28); + this.StepTwoContinue.Size = new System.Drawing.Size(130, 35); this.StepTwoContinue.Style.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242))))); this.StepTwoContinue.Style.ForeColor = System.Drawing.Color.Black; this.StepTwoContinue.TabIndex = 27; @@ -190,9 +190,9 @@ private void InitializeComponent() // pictureBox1 // this.pictureBox1.Image = global::Stardew_Mod_Manager.Properties.Resources.GameDirExample; - this.pictureBox1.Location = new System.Drawing.Point(-1, -26); + this.pictureBox1.Location = new System.Drawing.Point(-8, -26); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(604, 329); + this.pictureBox1.Size = new System.Drawing.Size(609, 329); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 18; this.pictureBox1.TabStop = false; @@ -285,9 +285,9 @@ private void InitializeComponent() // this.WhatsNew.AccessibleName = "Button"; this.WhatsNew.Font = new System.Drawing.Font("Segoe UI Semibold", 9F); - this.WhatsNew.Location = new System.Drawing.Point(95, 515); + this.WhatsNew.Location = new System.Drawing.Point(93, 515); this.WhatsNew.Name = "WhatsNew"; - this.WhatsNew.Size = new System.Drawing.Size(194, 28); + this.WhatsNew.Size = new System.Drawing.Size(194, 37); this.WhatsNew.TabIndex = 11; this.WhatsNew.Text = "What\'s New In This Update"; this.WhatsNew.Click += new System.EventHandler(this.WhatsNew_Click); @@ -296,9 +296,9 @@ private void InitializeComponent() // this.FinishSetup.AccessibleName = "Button"; this.FinishSetup.Font = new System.Drawing.Font("Segoe UI Semibold", 9F); - this.FinishSetup.Location = new System.Drawing.Point(295, 515); + this.FinishSetup.Location = new System.Drawing.Point(297, 515); this.FinishSetup.Name = "FinishSetup"; - this.FinishSetup.Size = new System.Drawing.Size(204, 28); + this.FinishSetup.Size = new System.Drawing.Size(204, 37); this.FinishSetup.TabIndex = 10; this.FinishSetup.Text = "Complete Setup"; this.FinishSetup.Click += new System.EventHandler(this.FinishSetup_Click); @@ -490,9 +490,6 @@ private void InitializeComponent() this.MinimumSize = new System.Drawing.Size(598, 639); this.Name = "FirstRunSetup"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Style.MdiChild.IconHorizontalAlignment = System.Windows.Forms.HorizontalAlignment.Center; - this.Style.MdiChild.IconVerticalAlignment = System.Windows.Forms.VisualStyles.VerticalAlignment.Center; - this.Style.TitleBar.Font = new System.Drawing.Font("Segoe UI", 10F); this.Text = "Get Started - Setup | Stardew Valley Modded Framework"; this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FirstRunSetup_FormClosed); this.Step.ResumeLayout(false); From a0b60dec0699f4e66e02d6171621c73758803a2d Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 12 Apr 2024 14:35:49 +1000 Subject: [PATCH 21/62] [v240402] - Update FirstRunSetup Changed from SfForm to Form, to try and solve weird visual glitch with window width. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs index 24c145df..90b86de3 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/First Run/FirstRunSetup.cs @@ -17,7 +17,7 @@ namespace Stardew_Mod_Manager { - public partial class FirstRunSetup : SfForm + public partial class FirstRunSetup : Form { protected override CreateParams CreateParams From df486fd1823d8d78dc8640076cafc4fdaafed285 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 12 Apr 2024 15:02:57 +1000 Subject: [PATCH 22/62] [v240402] - Code Cleanup Project Clean up the code by adding some commenting to the code. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index 876618d8..1f5f809a 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -90,6 +90,7 @@ public MainPage() } } + //Get color profile from user settings and apply private void GetColorProfile() { //MainTabs.ActiveTabColor @@ -157,6 +158,7 @@ private void GetColorProfile() } + //Check If the Game Is Running private void CheckIfGameRunning() { int counter = 0; @@ -216,6 +218,7 @@ private void CheckIfGameRunning() } } + //Compare SMAPI Versions (Installed to Available) private void CompareVersions() { string SMAPIVERNUM = SMAPIVer.Text; @@ -277,37 +280,44 @@ private void CompareVersions() //this.Show(); } + //Load MainPage private void MainPage_Load(object sender, EventArgs e) { string EnabledModList = Properties.Settings.Default.ModsDir; string DisabledModsList = Properties.Settings.Default.InactiveModsDir; string ModPresets = Properties.Settings.Default.StardewDir + @"\mod-presets\"; + //If SMAPI is installed, show the control buttons. if (File.Exists(Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe")) { SMAPIWarning.Visible = false; SMAPIVer.Visible = true; //MessageBox.Show(Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe"); } + //If SMAPI is not installed, show a warning. else if (!File.Exists(Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe")) { SMAPIWarning.Visible = true; SMAPIVer.Visible = true; } + //Populate the enabled mods list foreach (string folder in Directory.GetDirectories(EnabledModList)) { InstalledModsList.Items.Add(Path.GetFileName(folder)); } + //Populate the disabled mods list foreach (string folder in Directory.GetDirectories(DisabledModsList)) { AvailableModsList.Items.Add(Path.GetFileName(folder)); } + //Populate the Game Save Tab PopulateGameSaveTab(); //DoSMAPICheck(); } + //Populate the Game Save tab with a list of saves private void PopulateGameSaveTab() { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); @@ -322,6 +332,7 @@ private void PopulateGameSaveTab() Properties.Telemetry.Default.Save(); } + //Lists the selected mod(s) that the user requests be disabled private void DisableMod_Click(object sender, EventArgs e) { try @@ -360,6 +371,7 @@ private void DisableMod_Click(object sender, EventArgs e) } + //Disables the mod(s) requested to be disabled private void DoDisableMods() { string ModList = Properties.Settings.Default.ModsDir; @@ -382,6 +394,7 @@ private void DoDisableMods() //RefreshObjects(); } + //Lists the selected mod(s) that the user requests be enabled private void EnableMod_Click(object sender, EventArgs e) { try @@ -414,6 +427,7 @@ private void EnableMod_Click(object sender, EventArgs e) } + //Enables the mod(s) requested to be enabled. private void DoEnableMods() { string ModList = Properties.Settings.Default.ModsDir; @@ -436,6 +450,7 @@ private void DoEnableMods() //RefreshObjects(); } + //Refreshes the mods lists and game save lists private void RefreshObjects() { InstalledModsList.Items.Clear(); @@ -463,6 +478,7 @@ private void RefreshObjects() } } + //Handles deselection when clicking whitepsace in the enabled mods list private void InstalledModsList_Click(object sender, EventArgs e) { if(InstalledModsList.SelectedIndex < 0) @@ -479,7 +495,8 @@ private void InstalledModsList_Click(object sender, EventArgs e) DisableModButton.Enabled = true; } } - + + //Handles deselection when clicking whitepsace in the disabled mods list private void AvailableModsList_Click(object sender, EventArgs e) { if (AvailableModsList.SelectedIndex < 0) @@ -498,35 +515,36 @@ private void AvailableModsList_Click(object sender, EventArgs e) } + //Handles the closing of the main window private void MainPage_FormClosed(object sender, FormClosedEventArgs e) { string dataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); string updatelocation = Path.Combine(dataPath, "SDVMMlatest.exe"); string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + //Delete update files if they exist if (File.Exists(updatelocation)) { File.Delete(updatelocation); } + //Reset the IsUpdateModInactive setting Properties.Settings.Default.IsUpdateModInactive = false; + //Hide the window if the "repairactive" setting is set to yes if(Properties.Settings.Default.RepairActive == "Yes") { this.Hide(); } - else if(Properties.Settings.Default.RepairActive == "No") + //Save the application settings if the "repairactive" setting is set to no + else if (Properties.Settings.Default.RepairActive == "No") { DoApplicationSettingSave(); } } - private void DoApplicationSettingSaveWithoutClose() - { - - } - + //Handle saving the application settings to settings.ini private void DoApplicationSettingSave() { this.Hide(); From 4e7816caf243e7aa453dab474508f311d59d7565 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 12 Apr 2024 15:03:26 +1000 Subject: [PATCH 23/62] [v240402] - Update MainPage Re-place the SMAPI Not Installed warning. Moved earlier to adjust UI behind, in designer mode. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.Designer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs index 2502a71c..077940fa 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.Designer.cs @@ -1043,7 +1043,7 @@ private void InitializeComponent() this.SMAPIWarning.Controls.Add(this.SMAPIDownload); this.SMAPIWarning.Controls.Add(this.label3); this.SMAPIWarning.Controls.Add(this.pictureBox2); - this.SMAPIWarning.Location = new System.Drawing.Point(22, 375); + this.SMAPIWarning.Location = new System.Drawing.Point(22, 449); this.SMAPIWarning.Name = "SMAPIWarning"; this.SMAPIWarning.Size = new System.Drawing.Size(553, 61); this.SMAPIWarning.TabIndex = 14; From 3c42afe68ebd908742d020d14f274c3820149f73 Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Fri, 12 Apr 2024 15:04:26 +1000 Subject: [PATCH 24/62] [v240402] - Update Project Files Update project SUO file. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../.vs/Mod Manager/v17/.suo | Bin 231424 -> 233984 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo b/source-code/Mod Manager (Facelift Development)/.vs/Mod Manager/v17/.suo index 9cce6062cfb3237fd37ff36622a98b154ab04f27..7ff6273e91fcd184a23f1fa36c956856053db9d7 100644 GIT binary patch delta 7148 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 z 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 SvFe3+vaW%5r{{4482MME{YaJo From 4b1953661535432638a4866827b3ee3a7c9bac9e Mon Sep 17 00:00:00 2001 From: Ryan Walpole Date: Wed, 17 Apr 2024 16:09:57 +1000 Subject: [PATCH 25/62] [v220402] - Code Cleanup Add more comments for code blocks in the code cleanup effort. Also moved some code to be together for ease of use. Co-Authored-By: Ryan Walpole <69621127+RyanWalpole@users.noreply.github.com> --- .../Stardew Mod Manager/Forms/MainPage.cs | 254 +++++++++--------- 1 file changed, 132 insertions(+), 122 deletions(-) diff --git a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs index 1f5f809a..33b109fb 100644 --- a/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs +++ b/source-code/Mod Manager (Facelift Development)/Stardew Mod Manager/Forms/MainPage.cs @@ -613,6 +613,7 @@ private void DoApplicationSettingSave() Application.Exit(); } + //Save a preset file private void SavePreset_Click(object sender, EventArgs e) { string EnabledModsDir = Properties.Settings.Default.ModsDir; @@ -631,6 +632,7 @@ private void SavePreset_Click(object sender, EventArgs e) } } + //Load a preset file private void LoadPreset_Click(object sender, EventArgs e) { string PresetsDir = Properties.Settings.Default.PresetsDir; @@ -688,6 +690,7 @@ private void LoadPreset_Click(object sender, EventArgs e) } } + //Delete selected mod(s) private void DeleteMod_Click(object sender, EventArgs e) { ModsToMove.Clear(); @@ -742,6 +745,7 @@ private void DeleteMod_Click(object sender, EventArgs e) } } + //Handle when the user clicks the SMAPI download button private void SMAPIDownload_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start("https://smapi.io/"); @@ -751,6 +755,7 @@ private void SMAPIDownload_LinkClicked(object sender, LinkLabelLinkClickedEventA Clipboard.SetText(Dir); } + //Handles the SMAPI version number when clicked... private void SMAPIVer_Click(object sender, EventArgs e) { var SMAPIVersion = FileVersionInfo.GetVersionInfo(Properties.Settings.Default.StardewDir + @"\StardewModdingAPI.exe"); @@ -764,6 +769,130 @@ private void SMAPIVer_Click(object sender, EventArgs e) SMAPIValidationWorker.RunWorkerAsync(); } + //Check SMAPI version and whether updates are available + private void SMAPIValidationWorker_DoWork(object sender, DoWorkEventArgs e) + { + string URL = "https://www.nexusmods.com/stardewvalley/mods/2400/"; + + + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); + HttpWebResponse response = (HttpWebResponse)request.GetResponse(); + + request.Timeout = 45000; + + if (response.StatusCode == HttpStatusCode.OK) + { + Stream receiveStream = response.GetResponseStream(); + StreamReader readStream = null; + + if (response.CharacterSet == null) + { + readStream = new StreamReader(receiveStream); + } + else + { + readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet)); + } + + string data = readStream.ReadToEnd(); + + WebData.Invoke(new MethodInvoker(delegate { WebData.Text = data; })); + } + } + private void SMAPIValidationWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (e.Cancelled == true) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); + HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); + CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); + } + else if (e.Error != null) + { + Icon_SMAPIUpToDate.Image = Properties.Resources.sdvQuestion; + HelpTooltip.SetToolTip(Icon_SMAPIUpToDate, "We couldn't determine if SMAPI was up to date. Click to retry."); + HelpTooltip.SetToolTip(SMAPIVer, "We couldn't determine if SMAPI was up to date. Click to retry."); + CreateErrorLog("SDV Mod Manager was unable to determine if SMAPI was up to date." + "SMAPI Version: " + SMAPIVer.Text + "SMAPI Update Version:" + SMAPIUpdateVer.Text + Environment.NewLine + e.Error.Message); + } + else + { + SMAPIValidationWorker2.RunWorkerAsync(); + } + } + private void SMAPIValidationWorker2_DoWork(object sender, DoWorkEventArgs e) + { + string regex = "
    "; + + string selectstart = "