diff --git a/.vs/hMarkdown/CopilotIndices/17.14.995.13737/CodeChunks.db b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/CodeChunks.db new file mode 100644 index 0000000..4f0a02c Binary files /dev/null and b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/CodeChunks.db differ diff --git a/.vs/hMarkdown/CopilotIndices/17.14.995.13737/SemanticSymbols.db b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/SemanticSymbols.db new file mode 100644 index 0000000..1f70f77 Binary files /dev/null and b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/SemanticSymbols.db differ diff --git a/.vs/hMarkdown/FileContentIndex/0e842505-b547-49c5-85f0-77c5e3d51362.vsidx b/.vs/hMarkdown/FileContentIndex/0e842505-b547-49c5-85f0-77c5e3d51362.vsidx new file mode 100644 index 0000000..ba035ee Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/0e842505-b547-49c5-85f0-77c5e3d51362.vsidx differ diff --git a/.vs/hMarkdown/FileContentIndex/3fc82320-0102-4af3-888f-3fcbb45626f7.vsidx b/.vs/hMarkdown/FileContentIndex/3fc82320-0102-4af3-888f-3fcbb45626f7.vsidx new file mode 100644 index 0000000..c1cf312 Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/3fc82320-0102-4af3-888f-3fcbb45626f7.vsidx differ diff --git a/.vs/hMarkdown/FileContentIndex/4ba33e62-f62e-428e-8612-7db0bb21b0e7.vsidx b/.vs/hMarkdown/FileContentIndex/4ba33e62-f62e-428e-8612-7db0bb21b0e7.vsidx new file mode 100644 index 0000000..f8d8b39 Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/4ba33e62-f62e-428e-8612-7db0bb21b0e7.vsidx differ diff --git a/.vs/hMarkdown/FileContentIndex/9493309d-d9bd-4945-a92d-bab840e7d581.vsidx b/.vs/hMarkdown/FileContentIndex/9493309d-d9bd-4945-a92d-bab840e7d581.vsidx new file mode 100644 index 0000000..c86fe4a Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/9493309d-d9bd-4945-a92d-bab840e7d581.vsidx differ diff --git a/.vs/hMarkdown/FileContentIndex/b3e8eafa-0473-466b-b3a6-769e4b98e82d.vsidx b/.vs/hMarkdown/FileContentIndex/b3e8eafa-0473-466b-b3a6-769e4b98e82d.vsidx new file mode 100644 index 0000000..be70181 Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/b3e8eafa-0473-466b-b3a6-769e4b98e82d.vsidx differ diff --git a/.vs/hMarkdown/copilot-chat/8cc87631/sessions/9dad8692-9b2d-48ef-996d-4f7381fd31c5 b/.vs/hMarkdown/copilot-chat/8cc87631/sessions/9dad8692-9b2d-48ef-996d-4f7381fd31c5 new file mode 100644 index 0000000..5abd275 Binary files /dev/null and b/.vs/hMarkdown/copilot-chat/8cc87631/sessions/9dad8692-9b2d-48ef-996d-4f7381fd31c5 differ diff --git a/.vs/hMarkdown/v17/.suo b/.vs/hMarkdown/v17/.suo new file mode 100644 index 0000000..f4f91de Binary files /dev/null and b/.vs/hMarkdown/v17/.suo differ diff --git a/.vs/hMarkdown/v17/DocumentLayout.backup.json b/.vs/hMarkdown/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..11004b7 --- /dev/null +++ b/.vs/hMarkdown/v17/DocumentLayout.backup.json @@ -0,0 +1,36 @@ +{ + "Version": 1, + "WorkspaceRootPath": "D:\\Calismalar\\C#\\hMarkdown\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|d:\\calismalar\\c#\\hmarkdown\\hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", + "RelativeMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|solutionrelative:hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Form1.cs [Design]", + "DocumentMoniker": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs", + "RelativeDocumentMoniker": "hMarkdown\\Form1.cs", + "ToolTip": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs [Design]", + "RelativeToolTip": "hMarkdown\\Form1.cs [Design]", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-08-25T23:19:08.49Z", + "EditorCaption": " [Design]" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/hMarkdown/v17/DocumentLayout.json b/.vs/hMarkdown/v17/DocumentLayout.json new file mode 100644 index 0000000..f397a5e --- /dev/null +++ b/.vs/hMarkdown/v17/DocumentLayout.json @@ -0,0 +1,53 @@ +{ + "Version": 1, + "WorkspaceRootPath": "D:\\Calismalar\\C#\\hMarkdown\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|d:\\calismalar\\c#\\hmarkdown\\hmarkdown\\readme.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}", + "RelativeMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|solutionrelative:hmarkdown\\readme.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}" + }, + { + "AbsoluteMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|d:\\calismalar\\c#\\hmarkdown\\hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", + "RelativeMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|solutionrelative:hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "README.md", + "DocumentMoniker": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\README.md", + "RelativeDocumentMoniker": "hMarkdown\\README.md", + "ToolTip": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\README.md", + "RelativeToolTip": "hMarkdown\\README.md", + "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAABWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|", + "WhenOpened": "2025-08-25T23:31:10.806Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Form1.cs [Design]", + "DocumentMoniker": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs", + "RelativeDocumentMoniker": "hMarkdown\\Form1.cs", + "ToolTip": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs [Design]", + "RelativeToolTip": "hMarkdown\\Form1.cs [Design]", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-08-25T23:19:08.49Z", + "EditorCaption": " [Design]" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/hMarkdown.ico b/hMarkdown.ico new file mode 100644 index 0000000..31ae85b Binary files /dev/null and b/hMarkdown.ico differ diff --git a/hMarkdown.sln b/hMarkdown.sln new file mode 100644 index 0000000..f5a3e60 --- /dev/null +++ b/hMarkdown.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36408.4 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "hMarkdown", "hMarkdown\hMarkdown.csproj", "{A8E10C05-F985-4702-8AE2-B5D95E9AED83}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {32D59AF9-824D-4CD3-849A-7B796CCD714E} + EndGlobalSection +EndGlobal diff --git a/hMarkdown/App.config b/hMarkdown/App.config new file mode 100644 index 0000000..3d9ac87 --- /dev/null +++ b/hMarkdown/App.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hMarkdown/FodyWeavers.xml b/hMarkdown/FodyWeavers.xml new file mode 100644 index 0000000..5029e70 --- /dev/null +++ b/hMarkdown/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/hMarkdown/FodyWeavers.xsd b/hMarkdown/FodyWeavers.xsd new file mode 100644 index 0000000..f2dbece --- /dev/null +++ b/hMarkdown/FodyWeavers.xsd @@ -0,0 +1,176 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/hMarkdown/Form1.Designer.cs b/hMarkdown/Form1.Designer.cs new file mode 100644 index 0000000..3b2a61a --- /dev/null +++ b/hMarkdown/Form1.Designer.cs @@ -0,0 +1,124 @@ +namespace hMarkdown +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.tbDosya = new System.Windows.Forms.ToolStripTextBox(); + this.tbGozat = new System.Windows.Forms.ToolStripButton(); + this.webBrowser = new System.Windows.Forms.WebBrowser(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + + // toolStrip1 + // + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripLabel1, + this.tbDosya, + this.tbGozat}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1026, 27); + this.toolStrip1.TabIndex = 1; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(61, 24); + this.toolStripLabel1.Text = "Dosya : "; + this.toolStripLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tbDosya + // + this.tbDosya.AcceptsReturn = true; + this.tbDosya.AcceptsTab = true; + this.tbDosya.Font = new System.Drawing.Font("Segoe UI", 9F); + this.tbDosya.Name = "tbDosya"; + this.tbDosya.Size = new System.Drawing.Size(640, 27); + // + // tbGozat + // + this.tbGozat.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.tbGozat.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.tbGozat.ImageTransparentColor = System.Drawing.Color.Magenta; + this.tbGozat.Name = "tbGozat"; + this.tbGozat.Size = new System.Drawing.Size(29, 24); + this.tbGozat.Text = "..."; + this.tbGozat.Click += new System.EventHandler(this.tbGozat_Click); + // + // webBrowser + // + this.webBrowser.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser.Location = new System.Drawing.Point(0, 27); + this.webBrowser.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser.Name = "webBrowser"; + this.webBrowser.Size = new System.Drawing.Size(1026, 616); + this.webBrowser.TabIndex = 2; + this.webBrowser.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(this.webBrowser_Navigated); + // + // openFileDialog + // + this.openFileDialog.FileName = "openFileDialog"; + // + // Form1 + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1026, 643); + this.Controls.Add(this.webBrowser); + this.Controls.Add(this.toolStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.IsMdiContainer = true; + this.Name = "Form1"; + this.Text = "hOLOlu Markdown Viewer"; + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripLabel toolStripLabel1; + private System.Windows.Forms.ToolStripTextBox tbDosya; + private System.Windows.Forms.ToolStripButton tbGozat; + private System.Windows.Forms.OpenFileDialog openFileDialog; + } +} + diff --git a/hMarkdown/Form1.cs b/hMarkdown/Form1.cs new file mode 100644 index 0000000..c9c1c7d --- /dev/null +++ b/hMarkdown/Form1.cs @@ -0,0 +1,70 @@ +using Markdig; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + + +namespace hMarkdown +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + this.AllowDrop = true; + } + + private void tbGozat_Click(object sender, EventArgs e) + { + openFileDialog.Filter = "(*.md)|*.md|Tüm Dosyalar (*.*)|*.*"; + openFileDialog.FilterIndex = 2; + openFileDialog.RestoreDirectory = true; + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + tbDosya.Text = openFileDialog.FileName; + string contents = File.ReadAllText(@tbDosya.Text); + + var result = Markdown.ToHtml(contents); + + webBrowser.DocumentText = result; + webBrowser.Document.Body.Style = "font-family: Tahoma, Threbucet, Verdana; font-size: large;"; + webBrowser.Document.ExecCommand("SelectAll", false, "null"); + webBrowser.Document.ExecCommand("font-family", false, "Tahoma"); + webBrowser.Document.ExecCommand("Unselect", false, "null"); + } + } + + private void Form1_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + foreach (string file in files) Console.WriteLine(file); + } + + private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e) + { + string file = e.Url.LocalPath.ToString(); + + if (file!="blank") + { + + tbDosya.Text = file.Replace("file:///", ""); ; + string contents = File.ReadAllText(@tbDosya.Text); + + var result = Markdown.ToHtml(contents); + + webBrowser.DocumentText = result; + webBrowser.Document.ExecCommand("SelectAll", false, "null"); + webBrowser.Document.ExecCommand("FontName", false, "Tahoma"); + webBrowser.Document.ExecCommand("Unselect", false, "null"); + } + } + } +} diff --git a/hMarkdown/Form1.resx b/hMarkdown/Form1.resx new file mode 100644 index 0000000..3433b7d --- /dev/null +++ b/hMarkdown/Form1.resx @@ -0,0 +1,2760 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 244, 17 + + + + + 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 + Li0Qlu2sMRuAkMAEmUSzZTXHqNe5At7XLghAdBHqYM25xgbtC7BbHkxpOPEluqWASyi8fqSTSagbcpCc + z8k5jsQQYk7ocYANgWnQ03QaHxG39O8uOxlgDBo4qVrKBInvbaINgl4bN30ubSMmUZhIzBZPY/kBt0cR + DcSCUCN+ZLgNTxP0+7G1cajdFCgEH5ji3fZHc6XsTLCoVHAGMDOPTWmATn7GmLJjdMoSAWUGpJWs7ASF + G8kuftJt/UurBWptkEuXXoRC0ttkMWuCBFRDozoXZaxXsOl0dbGfNkevOsI5izQm8aBAeRiQHZ/wAR4e + PisOJknRgeWaGgoGAQTJYle8pwDFi12T829IsDmiML03WK2a5bdw1swo6mzz0wf/DwNfmAFVzLlaAAAA + AElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAO/w8f/v8PH/7+/x + /+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/u7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx + /+/v8f/v8PH/7+/x/+/w8f/u7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7u/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x + /+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/u7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7u/x/+7v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x + /+/v8f/u7/H/7/Dx/+/v8f/v7/H/7u/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+7v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x + /+7v8f/u7/H/7u/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/u7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+7v8f/v7/H/7+/x + /+/v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+/w8f/u7/H/7u/x/+/v8f/v7/H/7+/x + /+7v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7u/x/+/v8f/u7/H/7u/x/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+7v8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/v7/H/7/Dx + /+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x + /+7v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v8PH/7u/x/+/v8f/v7/H/7+/x + /+7v8f/v8PH/7+/x/+7v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/w8f/v8PH/7u/x/+/v8f/u7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/u7/H/7u/x/+/w8f/v7/H/7u/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+7v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+7v8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+7v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/u7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x + /+/v8f/u7/H/7+/x/+7v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/u7/H/7/Dx + /+/v8f/v7/H/7u/x/+7v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+7v8f/v8PH/7/Dx + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7u/x/+/w8f/v8PH/7+/x/+7v8f/u7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/w8f/u7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7u/x + /+/w8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+7v8f/v7/H/7u/x/+/v8f/u7/H/7+/x + /+7v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+/w8f/v7/H/7+/x/+7v8f/u7/H/7+/x + /+/w8f/v8PH/7u/x/+/w8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/u7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v8PH/7u/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+7v8f/v7/H/7u/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx + /+/v8f/u7/H/7+/x/+/v8f/u7/H/7u/x/+/v8f/u7/H/7+/x/+7v8f/v8PH/7+/x/+/v8f/v7/H/7u/x + /+/v8f/u7/H/7+/x/+/v8f/u7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x + /+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7u/x/+/v8f/v8PH/7+/x/+/v8f/u7/H/7+/x + /+/v8f/u7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/w8f/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/w8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7u/x/+/v8f/u7/H/7u/x + /+/v8f/v7/H/7+/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x + /+7v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+7v8f/u7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/u7/H/7+/x + /+7v8f/v7/H/7u/x/+/v8f/u7/H/7u/x/+7v8f/v8PH/7+/x/+/v8f/u7/H/7u/x/+/v8f/u7/H/7u/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+7v8f/v7/H/7u/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x + /+/v8f/v8PL/7+/x/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/v7/H/7u/x + /+7v8f/u7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+7v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+7v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/w8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x + /+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7u/x/+/v8f/u7/H/7/Dx/+/v8f/v8PH/7+/x + /+7v8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/u7/H/7/Dx/+/w8f/v7/H/7/Dx + /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/u7/H/7u/x/+7v8f/v7/H/7u/x + /+7v8f/u7vD/7u7w/+7u8P/u7/D/7u/w/+7v8P/u7/H/7u/w/+7u8P/u7vD/7u7w/+7u8P/u7vD/7u7w + /+7u8P/u7/D/7u7w/+7u8P/u7vD/7u7w/+3u8P/u7vD/7u7w/+7v8P/u7/D/7u7w/+7u8P/u7vD/7u7w + /+7u8P/u7vD/7u7w/+7u8P/u7vD/7u7w/+7v8P/u7vD/7e7w/+7u8P/u7/D/7u/w/+7u8P/u7vD/7u7w + /+7u8P/u7vD/7u7w/+7v8P/u7vD/7u7w/+3u8P/u7vD/7e7w/+7u8P/u7vD/7u7w/+3u8P/t7vD/7e7w + /+3u8P/u7/D/7u7w/+7u8P/u7vD/7u7w/+7u8P/t7vD/7u7w/+7v8P/u7vD/7u/w/+7u8P/u7/D/7u7w + /+7v8P/u7vD/7u/x/+7v8f/u7/D/7u/w/+7u8P/u7/D/7u7w/+7u8P/u7/H/7u/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8v/v8PH/7/Dx/+/v8f/v7/H/3d3e/7W0tP+cmpn/j4yL/4yKiP+Lioj/i4mI/4uJiP+KiYf/i4mI + /4uJiP+LiYj/i4mI/4uJiP+Lioj/i4mI/4uJiP+KiYj/i4mI/4qJh/+KiYj/i4mI/4uJiP+Mioj/i4mJ + /4uJiP+LiYn/i4mI/4uJiP+LiYj/i4mI/4uJiP+LiYj/iomI/4uJiP+LiYj/i4mI/4qJiP+LiYj/iomI + /4uJiP+LiYj/i4mJ/4uKif+Lioj/i4mI/4uJiP+LiYj/jIqJ/4uKif+Lion/i4mI/4uJiP+LiYj/iomI + /4uKiP+KiYj/iomI/4uJiP+LiYn/i4qJ/4uJiP+LiYj/iomI/4qJiP+LiYj/iomI/4uJiP+LiYj/i4mI + /4uJiP+LiYj/i4mI/4uJiP+LiYj/i4mI/4uJiP+LiYj/i4mI/4uJiP+KiYf/i4mI/4uKiP+Lioj/i4qJ + /4uKif+LiYj/jIqJ/42Mi/+WlZT/sK+w/9jY2v/u7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/q6uv/oJ+f/1xZVv84NDD/OzYy + /zo2Mf86NjL/OzYy/zs2Mv87NjL/OjYy/zo2Mv86NjH/OjYy/zo2Mf87NjL/OzYy/zo2Mf87NjL/OjYx + /zs2Mf86NjH/OjYy/zo2Mf86NjH/OzYx/zo2Mf87NjL/OjUx/zs2Mv86NjL/OzYy/zs2Mv87NjL/OjYx + /zo2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy/zs2Mf87NjH/OjYx + /zo2Mv87NjH/OzYy/zs2Mv87NjH/OjYy/zs2Mv86NjL/Ozcy/zo2Mf86NjL/OjYx/zs2Mv87NjL/OzYy + /zs2Mv86NjH/OjYy/zs2Mv87NjL/OzYy/zs2Mv86NjH/OjYx/zo2Mv87NjL/OjYy/zs2Mv86NjH/OjYy + /zs2Mv86NjH/OzYy/zs2Mv86NjL/OzYy/zs2Mv87NjL/OzYy/zs2Mv86NjL/Ozcy/zs2Mv87NjL/ODQw + /1dUUf+cmpr/5eXm/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/urm5/01KRv87NjL/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mv87NjH/OjYx/zs2Mf86NjH/OzYx/zs2Mv87NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYy/zs2Mf86NjH/OzYy/zo2Mv87NjL/OjYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OzYy + /zs2Mv87NjH/OzYy/zs2Mv87NjL/OzYy/zs2Mv86NjL/OzYy/zs3M/9IRED/rq2s/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7u/w/4yLiv85NDD/OjYx/zs2Mv86NjH/OjYy + /zs2Mv86NjH/OzYy/zo2Mf86NjH/OzYx/zs2Mv86NjL/OzYy/zo2Mf86NjH/OzYy/zs2Mv87NjL/OjUx + /zo2Mv86NjL/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjUx/zs2Mv86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf87NjL/OzYx/zs2Mf87NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OzYy/zs2Mv87NjL/OjYy/zs2Mf87NjL/OjYy + /zo2Mf87NjL/OzYy/zs2Mv86NjH/f3x7/+vr7f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx + /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f+CgH7/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv87NjH/OjYx/zs2Mf87NjL/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYy + /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zs2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zs2Mf86NjH/OjYx/zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OzYx + /zo2Mf86NjL/OzYx/zs2Mv86NjL/OjYx/zo2Mf87NjL/OzYy/zo2Mv86NjH/OjYy/zo2Mf86NjL/b21s + /+7u8P/v7/H/7/Dy/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/w8f/v7/H/oqCf/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjUx + /zs2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mf86NTH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mv87NjH/OzYy + /zs2Mv87NjL/OjYy/zo2Mf87NjH/OzYx/zo2Mf87NjL/lJOS/+7v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /9nZ2v9APDj/OjYx/zs2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy + /zo2Mf86NjH/OjUx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo1Mf86NTH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf88ODT/09PU/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/fnx6/zo2Mv86NjH/OzYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx + /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx + /zs2Mf86NjH/OjYx/zs2Mf87NjL/OjYy/zo2Mf86NjH/OjYy/zo2Mv9+fHn/7+/x/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x + /+Pj5f8+OTb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo1Mf86NjH/OzYx + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYy/zo2Mf86NjH/OzYx + /zo2Mf86NjH/OzYy/zs2Mv86NjL/OjYx/zo2Mf87NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv87NjH/OzYy/zw4Nf/m5uj/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/w8v/v8PH/rKqq/zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx + /zo2Mf86NjL/OjUy/zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo1Mf86NTH/OzYx + /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjUx/zo2Mf86NjH/OjUx + /zo2Mf87NjL/OjYx/zs2Mv87NjL/OjYx/zs2Mf86NjH/OjYy/zo2Mf87NjL/OzYy/7Oysv/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x + /+/v8f+FgoH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zJgdf8oirv/KIm5/zNcbf86NTL/OjUx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx + /zo2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zs2Mf86NjH/OzYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjH/OzYy/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy + /zs2Mf87NjH/OjYx/zs2Mv87NjL/jIqI/+/w8f/v8PH/7/Dy/+/w8v/v8PH/7+/x/+/w8f/v8PH/7+/x + /+/w8f/v8PH/7+/x/+/w8f/v8PL/7+/x/+/v8f/v8PH/7+/x/21qaP86NjH/OjYx/zo2Mf86NTH/OzYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NTH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYy/zkyL/86My//OjYy + /zo2Mf86NjL/KIOw/yCo8v8gqPL/IKfp/zozMv86NjH/OjYy/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjQy + /zo2M/86NjL/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjYy/zo2Mf87NjH/OzYx/zo2Mf86NjH/OjUx + /zo2Mf87NjL/OjYx/zo2Mf87NjL/OjYx/zs2Mv87NjH/OjYx/zs2Mv87NjL/OzYy/zs2Mv90cW//7u/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/u7/D/Yl5b/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mv8yXG3/Hqvr/ySXzP84QEH/OjUx/zo2Mv8uaIH/IKfy/yCo8v8gqPL/NFBY + /zo2Mf86NTH/OjYx/zs2Mv86NjH/OjUx/zNUYf8ipuT/I6Pi/zVNWP86NTH/OjUx/zs2Mv87NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYy/2NgXf/u7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/v8f9iX1z/OjYx/zo1Mf86NjH/OjUx + /zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjUx + /zo1Mf86NTH/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYy/zo1Mf86NjP/Mllr/yCp7/8gqPL/IKjy + /yWY0v84PT3/OjUx/zRMVf8gqPL/IKfy/yCn8v8tbYr/OjYy/zo2Mv86NjH/OjYx/zo1Mf82S1H/IaXo + /yCo8v8gqPL/IqPm/zVPWP86NTL/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zo1Mf86NjL/OzYy/zo2Mv86NjH/YV5b + /+7v8P/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7+/x/2FfW/86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjUx + /zo2Mv86NTL/OjYz/zFbav8hqe//IKjy/yCo8v8gqPL/IKfx/zRUX/86NjL/OjIv/yCm5/8gp/L/IKfy + /yaKu/85NjP/OjYy/zo2Mf86NjH/OjUx/zBlfP8gp/L/IKfy/yCo8v8hqPL/IaTo/zVPWf86NjL/OjYy + /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjL/OjYx/zs2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv87NjH/OjYy/zo2Mf9iX1z/7u7w/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v7/H/YV5b/zo1Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYy/zo2Mv8xWmv/IKnu/yCn8v8gp/L/IKfy + /yCo8v8reJn/OjQw/zo1Mf86NjL/KIa1/yCn8v8gp/L/IKjs/zozMv86NjL/OjYy/zo2Mf86NTH/OjYz + /yeNu/8gp/H/IKfy/yCn8v8gp/L/IqPo/zRPWf86NjL/OjYy/zo2Mv86NjH/OjUx/zo1Mf86NjL/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf87NjL/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYy/zs2Mv86NjH/OjYx + /2JeXP/u7/D/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+7v8P9iX1z/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo1Mf86NjL/Mltt/yCo7v8gp/L/IKfy/yCn8v8gp/L/K3mZ/zo0Mf86NTH/OjYy/zo2Mv8uaob/IKfy + /yCn8v8gp/L/M1Je/zo2Mv86NTH/OjYx/zo2Mf86NTH/Ojg3/yeMuv8gqPL/IKjy/yCn8v8gqPL/IaTn + /zRQWf86NTL/OjYy/zo1Mv86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy + /zo2Mf87NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/Yl9c/+7u8P/v8PH/7/Dx/+/w8v/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7u/w/2JeW/86NTH/OjUx + /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjUy/zJcbf8gqfD/IKjy/yCn8v8gp/L/IKfx + /yx3l/86NTH/OjYy/zo1Mf86NjH/OjUx/zVNVP8gqPL/IKfy/yCn8v8scJD/OjUy/zo2Mv86NjL/OjUx + /zo1Mf86NTH/OTg2/yaMuf8gp/L/IKfy/yCn8v8gqPL/IqTo/zRPWf86NTL/OjYy/zo2Mv86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy + /zs2Mv9iX1z/7u7w/+/w8f/v8PH/7+/x/+/w8v/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/v8f/u7/H/Yl5b/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mv8xX3L/Ianw/yCo8v8gp/L/IKfy/yCo8v8reJf/OjUy/zo2Mf86NjH/OjYx/zo2Mf86NTH/OzIv + /yGl5v8gqPL/IKfy/yeMwf86NTL/OjYy/zo2Mv86NjH/OjYx/zo1Mf86NTL/Ojc1/yeHsv8gp/L/IKfy + /yCn8v8gqPL/IaTo/zRPWv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mv86NjH/OjUx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy/zs2Mv87NjL/OzYx/2JfXP/u7/D/7+/x/+/v8f/v8PH/7/Dy + /+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/v8f9iXlz/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mv86NjH/OjUx/zo1Mf87NjH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mv86NTH/OjYx/zo2Mv86NjL/Ml9y/yCp8f8gp/L/IKfy/yCn8v8gqPL/K3aV + /zo0Mv86NjL/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjL/KIW0/yCo8v8gp/L/IKrw/zg2Nf86NjH/OjYx + /zo2Mf86NjH/OjYy/zo2Mv86NjL/OTcz/yeGr/8gqPL/IKfy/yCn8v8hqPL/IqTo/zNRW/86NjL/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mv86NjH/OzYy/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/Yl9c/+7v8P/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx + /+/w8v/v8PH/7/Dx/+/w8f/v7/H/7u/w/2JeW/86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zNUYv8gqfD/IKjy/yCn8v8gp/L/IKjx/y11lv86NTH/OjYy/zo2Mv86NjH/OjYx/zo1Mf86NjL/OjYy + /zo2Mv8vaoT/IKjy/yCn8f8gp/L/MlZj/zo2Mv86NjL/OjUx/zo2Mf86NjL/OjYy/zo2Mv86NjL/OjYz + /yiHr/8gqPL/Iajy/yCo8v8gqPL/Iabo/zZITP87NjL/OzYy/zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zs2Mv86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mf9iX1z/7u/w/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/u7/D/YV5b + /zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjUx + /zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjL/K3eZ/yCo8v8fp/L/IKfy/yCn8v8hntv/OTg4 + /zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zVOVf8gp/L/IKfx/yCn8v8tc5X/OjYy + /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mv86NjL/N0JF/yCo7P8gqPL/IKfy/yCo8v8gqPL/L2d+ + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OzYx + /zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf87NjL/OjYy/2JfXP/u7/D/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+7v8f9iX1z/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo1Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYx + /zo1Mf82RUn/IqDe/yCo8v8gqPL/IKjy/yCn8v8lkMH/ODo5/zo2Mv86NjH/OjYx/zo1Mf86NTH/OjYx + /zo1Mf86NTH/OzMw/yGm5v8gp/L/IKfy/yWQxv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUy + /zZESP8jnNj/IKjy/yCo8v8gqPL/IKjy/yaQwf86OTj/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjL/OjYy/zo2Mf87NjH/Y19c/+7v8f/v8PH/7/Dy + /+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7u/w + /2JeW/86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mv81R03/IaHe/yCo8v8gp/L/IKfy + /yCn8v8kkML/OTo6/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjL/KIax/yCn8v8gp/L/H6rx + /zk4N/86NjH/OjYx/zo2Mf86NTH/OjYy/zo1Mv83RUn/I53a/yCo8v8gp/L/IKjy/yCo8v8lkMP/OTo5 + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv9iX1v/7u/w/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dy + /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OzYy/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NTH/OjUx/zo2Mv80R03/I6Dd/yCn8v8gp/L/IKfy/yCo8v8lkML/OTk4/zo1Mf86NjH/OjUx + /zo1Mf86NTH/OjYx/zo1Mf8vaIL/IKjy/yCn8v8gp/L/Mllo/zo2Mf86NjH/OjYx/zo2Mv86NjL/N0ZK + /ySe2v8gp/L/IKfy/yCo8v8gqPL/JpHD/zk7Ov86NjL/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/2FeW//u7/D/7u/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+7v8f9hXlv/OzYx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYy/zo2Mv81R0z/IqHe + /yCo8v8gp/L/IKjy/yCo8v8lkML/OTk4/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYy/zZKUv8fqfL/IKfy + /yCn8v8rdZn/OjYy/zo2Mv86NTH/OjYy/zRGS/8jn9z/IKjy/yCo8v8gp/L/IKfy/yaQwv86Ozn/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf87NjL/OjYx + /zs2Mf86NjH/OjYx/zs2Mf86NjH/Yl9c/+7v8P/v8PL/7/Dx/+/w8v/v8PL/7/Dx/+/w8v/v8PH/7+/x + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7u/w/2FeW/86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zs2Mv86NTH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mv87NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv87NjL/OjUx/zo2Mv86NTH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYy/zo2Mv80R0z/IqDe/yCo8v8gqPL/IKjy/yCn8v8lkML/OTk3 + /zo1Mf86NjL/OjYx/zo2Mv86NjH/OzMw/yGj4v8gp/L/IKjy/yWTyv85NTL/OjYy/zo2Mf81Rkr/Ip7e + /yCn8v8gp/L/IKfy/yCo8v8mkML/ODo6/zo2Mf86NjL/OjYy/zs2Mv86NjL/OjYx/zo2Mv86NjH/OjUx + /zo2Mf86NjH/OzYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjYx/zs2Mv87NjL/OzYy/zs2Mv9iXlv/7u7w + /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy + /+/w8v/u7/H/YV9c/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OjYy + /zo1Mf86NTH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv82RUz/JKDe/yCo8v8gp/L/IKjy/yCo8v8mj7//OTYz/zo2Mf86NjH/OjYx/zo2Mf86NjP/KYOu + /yCn8v8gqPL/Hqzz/zk6O/86NTH/NUVI/yKf3f8hqPL/IKfy/yCn8v8gp/L/Jo/B/zk6OP86NjL/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NTH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/2JfXP/u7/D/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PL/7/Dx/+/w8v/v8PH/7/Dy/+/w8v/v8PL/7/Dx/+7v8f9iXlz/OjYx/zo2Mf86NjH/OjUx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx + /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjL/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx + /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo2Mv82RUr/I57c/yCn8v8gp/L/IKfy + /yGm8f81UVj/OjUx/zo2Mf86NjH/OjYy/zo2Mv8vZX3/IKjy/yCn8v8gp/L/MVxs/zo2Mv8va4T/IKfy + /yCn8v8gp/L/IKfy/yeQwP85Ojn/OjUx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zs2Mf86NjH/OjYy/zo2Mf86NjH/Y19c + /+7u8P/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8v/v8PH/7/Dx + /+/w8v/v8PL/7u/x/2FdW/86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx + /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjUx/zo1Mf82REj/I53a/yCo8v8gp/L/KIeu/zo1Mv86NjH/OjYx/zo2Mf86NTH/OjYx + /zZHTP8gqPL/IKjy/yCo8v8qep//OjUx/zk5N/8mjbv/IKjy/yCo8v8nkMH/OTs5/zo1Mv86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx + /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mv86NjH/OzYy/zo2Mv86NjH/OjYx/zs2Mf9iX1z/7u7w/+/v8f/v8PL/7/Dy/+/w8f/v8PH/7/Dy + /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/u7/H/Yl5b/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo1Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjYx + /zo2Mf86NTH/OjUx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo1Mf82Q0X/KoGp + /yx0lP85NjL/OjUx/zo1Mf86NTH/OjUx/zo1Mf86NTH/OjMv/yKi3/8gqPL/IKjy/yOX0f85NDH/OjUx + /zk4Nf8sc47/LHeW/zk6OP86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjUx + /zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjUx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy + /2JfXP/t7vD/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PL/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx + /+/w8v/v8PL/7/Dy/+7v8f9hXlv/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx + /zo1Mf86NTH/OjYx/zo1Mf86NTH/OjUx/zo1Mf85NTH/OTUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYy + /zo1Mf86NTL/LmqF/yCq7f8gr/T/JZPD/zozL/86NjH/OjYx/zo1Mf86NTH/OjYy/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OzYy/zo1Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zs2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/Yl5c/+7u8P/v8PH/7/Dy/+/w8f/v8PH/7+/x + /+/w8v/v7/H/7+/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/w/2FeW/87NjH/OjYy + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NjL/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjUx + /zo2Mv86NjL/OjYy/zo1Mf86NjH/OjYx/zo2Mv86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx + /zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NjL/OjIw/zk3N/86NDD/OjUx + /zo2Mf86NjH/OjUx/zo2Mv87NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf9iX1z/7u7w/+/w8f/v8PL/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy + /+/w8f/v8PH/7/Dx/+/w8f/u7/H/YV5b/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx + /zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NTH/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mv86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx + /zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/2JeW//u7vD/7/Dx/+/w8v/v8PH/7/Dx + /+/w8f/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+7v8f9hXlv/OzYx + /zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYy + /zo2Mf86NjH/OjYx/zo1Mf86NTH/OzYy/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/Yl9c/+7v8P/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/w/2JeXP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYx/zo2Mf86NTH/OjUx/zo2Mv86NjL/OjYy/zo2Mv86NjL/OjYx + /zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mv86NjL/OjYy/zo2Mv86NjH/OjYy + /zo2Mv86NjL/OjYy/zo2Mv86NjH/OjYy/zs2Mv86NjL/OjYy/zo2Mf86NjL/OjYy/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zs2Mv86NjH/OjYx/zo2Mf9iX1z/7u7w/+/w8f/v8PH/7/Dy + /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7/D/YV5b + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjUx/zk1Mf9xb27/jo+O/5CQj/+QkJD/kI+P/4SDgf9EQD3/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/PDg0/3x6ev+Oj4//kJCQ/4+Pj/+Ojo7/ioqK/3l3dv8/Ozf/OjYy/zo2Mf86NTH/OjYx + /zo2Mv9xb27/n6Ch/6anqP+mp6j/pqen/6Wmp/+lpqf/paen/6Wmp/+lp6f/pqen/6Wmpv+jpaX/n6Ch + /5eYmf+Ojo3/hYSD/3Bubf9VUk//NzMv/zs3Mv86NjL/OzYy/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PL/7+/x/+/w8f/v8PL/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+7v8f9hXlv/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/U1BM/+rv8v/q7/L/6e/y + /+rv8v/p7/L/6e/y/5mbmv86NjH/OjYx/zo1Mf86NjH/OjYy/zo1Mf86NjL/OjUx/zo1Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf9lY2L/6e/z/+nv8v/p7/L/6e/z + /+nv8v/q7/P/6e/z/3Fvbv87NjH/OjYx/zo1Mf86NjH/NTAt/+br7f/q7/L/6u/z/+rv8//q7/L/6u/y + /+rv8v/p7/L/6u/z/+nv8v/p7/L/6e/y/+nv8v/p7/P/6u/z/+rv8//p7/P/6e/z/+nv8v/f5Of/ra6v + /3Z0cv8+OjX/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/Yl5c/+7u8P/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/x + /2FeXP86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf9lYmD/6e7x/+rv8//p7/L/6e/y/+rv8v/p7/L/qaur/zo2Mf86NTH/OjYx + /zo1Mf86NTH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx + /zo1Mf86NTH/OjYx/3Rzcf/q7/P/6u/y/+nv8v/q7/L/6u/y/+nv8v/p7/L/dnVz/zo1Mf86NjH/OjYx + /zo2Mf8zLyv/7fL1/+rv8//q7/L/6u/y/+rv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/z + /+nv8v/q7/P/6e/y/+nv8v/q7/P/6e/y/+nv8v/q7/L/6u/z/9vf4v+Pj4//Qj46/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYy/zo2Mf9iX1z/7e7w/+/w8v/v8PH/7+/x/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/2ViX//p7vL/6u/y + /+rv8v/p7/L/6u/y/+nv8v+rrq7/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx + /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NjH/d3Z1/+rv8//p7/L/6u/z + /+rv8v/p7/L/6u/y/+nv8v92dXP/OjUx/zo2Mf86NjH/OjYx/zMvK//t8vX/6e/y/+nv8v/p7/L/6u/y + /+nv8v/q7/L/6u/y/+nv8v/p7/L/6u/y/+rv8//p7/L/6e/y/+nv8v/q7/L/6e/y/+nv8v/q7/L/6e/y + /+nv8v/p7/L/6e/y/+rv8v/Y3N//bm1r/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2JeW//u7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+7v8P9hXlv/OjUx/zo1Mf86NjH/OjYx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/ZWJf/+ju8f/q7/L/6u/y/+rv8v/q7/L/6e/y/6utrv86NjH/OjUx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/1tYVf94d3b/eXd2/3d2dP9WUlD/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf94eHb/6e/y/+nv8v/q7/L/6e/y/+rv8v/q7/L/6u/y/3d1c/86NjH/OjYx + /zo2Mf86NjH/My8r/+3y9f/p7/L/6u/z/+nv8v/p7/L/6u/y/+nv8v/q7/L/6e/y/+nv8v/p7/L/6e/y + /+rv8//p7/L/6u/y/+nv8v/q7/L/6u/y/+rv8v/p7/L/6e/y/+rv8v/p7/L/6e/y/+nv8v/q7/L/nJ2e + /zs3M/86NjL/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/Yl9c/+7v8P/v8PH/7/Dx/+/v8f/v8PL/7/Dy/+/w8v/v8PH/7/Dx + /+/w8v/v8PH/7/Dy/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7u/w/2FeW/86NTH/OjUx/zo1Mf86NjH/OjUx + /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf9lYl//6e7x + /+rv8v/q7/P/6u/y/+nv8v/q7/L/rK6v/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf9mZGH/6e/y + /+rv8//q7/P/6u/z/+br7/9OSkf/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjUx/3l3dv/p7/L/6e/y + /+rv8v/p7/L/6u/y/+nv8v/p7/L/dnVz/zo2Mv86NjH/OjYx/zo2Mf8zLyv/7fH1/+rv8v/p7/L/6u/y + /+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/z/+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y + /+rv8//q7/L/6u/y/+nv8v/p7/L/6e/y/+nv8v/q7/L/ra+w/zo2M/86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9iX1z/7u/x + /+7w8f/v8PL/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7+/x/+/w8f/v8PL/7/Dy/+/w8f/v8PH/7+/x + /+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf87NjL/OjYx + /zo1Mf86NjL/OjYx/zo2Mv86NTH/OjYx/2ViX//p7vL/6u/y/+rv8v/q7/L/6u/y/+rv8v+srq//OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/7q8vv/q7/P/6e/y/+nv8v/p7/L/6u/y/5+foP86NjL/OjYx + /zo2Mv86NTH/OjYx/zo1Mf86NTH/eHZ1/+rv8v/p7/L/6u/y/+nv8v/q7/L/6e/y/+rv8v92dXL/OjYx + /zo2Mf86NTH/OjYx/zMvK//t8vX/6e/y/+rv8v/q7/L/6u/y/+rv8v/p7vL/6u/y/+nv8v/p7/L/6e/z + /+nv8v/p7/L/6e7y/+nu8v/p7/L/6u/y/+rv8v/q7/P/6u/z/+rv8//q7/L/6u/y/+rv8v/q7/L/6u/y + /+rv8v/q7/P/mZqZ/zo1Mf87NjL/OjYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/2FeXP/u7/D/7/Dy/+/w8v/v8PH/7+/x/+/w8v/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+7u8P9hXlv/OjYx/zo2Mf86NTH/OjYx + /zo2Mv86NTH/OjUx/zo2Mf86NjH/OjUx/zs2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/ZWJf + /+ju8f/q7/L/6u/y/+nv8v/q7/L/6u/z/6ytrv86NjH/OjUx/zo2Mf86NTH/OjYy/zo2Mv9cWVf/6u/z + /+rv8//p7/L/6u/y/+rv8v/p7/L/5ert/0hFQf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf94dnX/6e/y + /+nv8v/q7/L/6u/y/+rv8v/p7/L/6u/y/3Z1cv86NjH/OjUx/zo1Mf86NjH/My8r/+7y9f/q7/L/6e/y + /+nv8v/p7/L/6e/y/+nv8v/p7/L/g4OB/2JfXf9hX1v/X11a/2BeW/9hXlv/cG9t/4KBgP+foKH/z9PW + /+rv8//p7/P/6u/z/+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/P/Z2Vk/zo2Mv86NjL/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYy/zo2Mf86NjH/Yl9c + /+7v8P/u7/H/7/Dy/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/v8f/u7/H/7/Dx + /+7v8f/v7/H/7u/x/2FeW/86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf9mY2D/6e7y/+rv8v/q7/L/6e/y/+rv8v/p7/L/ra6v + /zo2Mv86NjH/OjYx/zo2Mf87NjL/OzYy/7CytP/q7/L/6u/z/+rv8v/q7/L/6u/y/+nv8v/q7/L/lZWW + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3h3df/p7/L/6u/y/+rv8v/p7/L/6e/y/+rv8v/p7/L/dnVy + /zo2Mf86NjH/OjYx/zo2Mv8zLyz/7fL1/+rv8v/p7/L/6e/y/+rv8//p7/L/6e/y/+nv8v9hX1z/OjYx + /zo2Mf87NjL/OjYx/zo2Mv86NjL/OjYx/zo2Mv85NTH/YmBe/8XHyP/q7/P/6u/y/+rv8v/q7/L/6u/z + /+rv8v/q7/L/6u/y/+rv8v/R1Nf/PDg1/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zs2Mv86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv87NjL/OjYy/zo2Mv9iX1z/7u/w/+/w8f/v8PH/7+/x/+/w8v/v8PH/7/Dx + /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/u7/H/YV5a/zo1Mf86NTH/OjUx + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /2ZiYP/o7vH/6u/y/+rv8v/q7/L/6e/y/+rv8v+tr6//OjYy/zo2Mf86NTH/OjYx/zo2Mv9VUU//6u/z + /+rv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+rv8v/g5Of/Qj46/zo2Mf86NjH/OjYx/zo1Mf86NjH/eHd2 + /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v92dHP/OjYx/zo2Mf86NjH/OjYx/zMvK//t8vX/6u/y + /+nv8v/q7/L/6u/y/+nv8v/p7/L/6e7y/2JfXf86NjH/OjYx/zo2Mf86NjL/OjYy/zo1Mf86NjH/OjYx + /zo2Mf86NjL/Ozcz/6Giov/q7/P/6u/y/+rv8v/q7/L/6u/y/+rv8//q7/P/6u/y/+nv8v9+fXz/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYy + /2JfXP/u7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/u7/H/7/Dx/+7v8f9hXlv/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/ZGFf/+ju8f/q7/L/6u/y/+nv8v/p7/L/6e/y + /62ur/86NjH/OjYy/zo2Mf86NjH/Ozcy/6ipqv/q7/L/6u/z/+nv8v/q7/L/6e/y/+rv8v/q7/L/6u/y + /+rv8/+JiYn/OjYx/zo1Mf86NjH/OjYx/zo2Mv94d3X/6u/y/+nv8v/q7/L/6u/y/+rv8v/q7/L/6e/y + /3Z1c/86NTH/OjUx/zo2Mf86NjH/My8r/+7y9f/p7vL/6e/y/+rv8//p7/L/6u/y/+rv8v/p7vL/YV5b + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/7GztP/q7/P/6u/z + /+nv8v/q7/L/6u/y/+rv8//q7/L/6u/y/8zP0f85NDH/OjYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjL/Yl9c/+7u8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7u/x/+7v8f/v8PH/7u/x/2FdW/86NjH/OjUx + /zo2Mf87NjL/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf9lYl//6O3x/+rv8v/q7/L/6u/y/+nv8v/p7/L/rK6v/zo2Mv86NjL/OjYx/zo2Mf9MSEX/6O3w + /+rv8v/q7/P/6u/y/+rv8v/q7/L/6u/z/+nv8v/p7/L/6u/y/9nd4P89OTb/OjUx/zo2Mf86NjL/OjYx + /3h3df/p7/L/6e/y/+rv8v/p7/L/6e/y/+nv8v/p7/L/dnVz/zo2Mf86NjH/OjYx/zo2Mf8zLyz/7fL1 + /+rv8v/p7/L/6u/y/+nv8v/q7/L/6u/y/+nu8v9iX1z/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/Q0A9/9zg4//q7/P/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y + /1pXVP86NjL/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv9iX1z/7u/x/+/w8f/v7/H/7/Dy/+/w8v/v8PH/7/Dx/+/v8f/u7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7u/x/+/w8f/u7/H/YV5b/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2VjYP/o7vL/6u/y/+nv8v/p7/L/6e/y + /+nv8v+srq//OjYy/zo2Mv87NjL/OzYy/5ucnP/q7/P/6e/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y + /+nv8v/p7/L/6e/y/4B/fv86NjH/OjYx/zo2Mf86NjH/eHd2/+rv8v/p7/L/6u/y/+nv8v/p7/L/6e/y + /+nv8v92dXP/OjYx/zo2Mf86NjH/OjYx/zMvLP/t8vX/6e/y/+rv8//q7/L/6u/y/+rv8v/q7/L/6e/y + /2JgXP86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/jo+P + /+rv8//q7/L/6e/y/+rv8v/p7/L/6u/y/+rv8v/q7/L/j4+O/zo2Mv87NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OzYy/zo2Mv86NjL/OjYx/2JfXP/u7vD/7/Dy/+/w8v/v8PH/7u/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/u7/H/7/Dx/+7v8f9hXlv/OjYx + /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx + /zo2Mf87NjL/ZWJf/+nu8v/q7/L/6u/y/+rv8v/q7/L/6u/y/62usP86NjH/OjYx/zo2Mv9EQD3/5Ojq + /+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y/+nv8v/q7/L/6u/y/+rv8v/p7/L/0tXY/zo2M/86NjL/OjYy + /zo2Mf94d3X/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6e/y/3Z1c/86NjH/OjYx/zo2Mv86NjH/My8s + /+3x9f/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/Yl9c/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf9OSkf/6u/y/+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y + /+rv8v+0trj/Ojcy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/Yl9c/+3v8P/u7/H/7/Dx/+/w8v/v8PH/7/Dx/+/v8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+7v8f/v7/H/7/Dx/+7v8f/u7/H/7u/x/2FeW/86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv9lYmD/6O7x/+rv8v/p7/L/6u/y + /+nv8v/p7/L/rK6v/zo2Mv86NjL/OjYy/4+PkP/q7/P/6u/y/+nv8v/p7/L/6e/y/+rv8v/q7/P/6e/y + /+nv8v/q7/L/6u/y/+nv8v/p7/L/dHNx/zo2Mf86NjH/OjYx/3h3df/q7/P/6u/y/+rv8v/p7/L/6u/y + /+nv8v/p7/L/dnVz/zo2Mf86NjH/OjYx/zo2Mv8yLyv/7fL1/+nv8v/q7/L/6u/y/+nv8v/p7/L/6e/y + /+nv8v9iYFz/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy + /zk1Mf/R1dj/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/9fa3f83My//OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf9iX1z/7u/w/+/w8f/v8PH/7u/x + /+/w8f/v7/H/7/Dx/+/w8v/u7/H/7/Dy/+/w8f/v8PL/7/Dx/+/v8f/v8PH/7/Dy/+/w8f/u7/D/YV5b + /zs2Mf86NjH/OjYx/zo2Mv86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/2ViYP/p7vL/6u/y/+rv8v/q7/L/6e/y/+nv8v+srq//OjYy/zs2Mv8/Ojf/2t7h + /+rv8v/q7/L/6e/y/+nv8v/p7/L/6u/y/9XZ3P/p7/L/6e7y/+rv8v/q7/L/6u/y/+rv8v/Jy87/OjUx + /zs2Mv86NjL/eHd2/+rv8v/q7/L/6e/y/+nv8v/q7/L/6e/y/+rv8v92dHL/OjYx/zo2Mf86NjH/OjYx + /zMvK//t8fX/6e/y/+rv8v/q7/L/6u/y/+nv8v/q7/L/6e7y/2JfXf87NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/7Cys//q7/L/6u/y/+rv8v/q7/L/6u/z + /+rv8v/q7/P/6/Dz/zYyLv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NTH/OzYx/zo2Mf86NjH/OjYx + /zs2Mv87NjL/OzYx/2JfXP/t7/H/7u/x/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy + /+/w8f/v8PH/7+/x/+/w8f/v7/H/7u/x/+7v8f9iXlv/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/ZWJf/+nu8f/q7/L/6u/y + /+rv8v/q7/L/6e/y/62vsP86NjH/OjYx/4SEgv/q7/P/6e/y/+nv8v/q7/L/6e/y/+nv8v+/wcL/YF1b + /+rv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v9samj/OjYx/zo2Mf94dnb/6e/y/+nv8v/p7/L/6u/y + /+rv8v/p7/L/6e/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/My8s/+3y9f/q7/L/6e/y/+nv8v/q7/L/6e/y + /+rv8v/p7vL/Yl9c/zs2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/oqOk/+rv8v/q7/L/6u/y/+rv8v/q7/P/6u/y/+rv8v/r8PP/SkZD/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjL/OjYx/zo2Mf87NjL/Yl5c/+7v8P/v7/H/7u/x + /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/u7/H/7/Dx/+7v8f/v7/H/7u/x + /2FeW/86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv9lYl//6O7x/+rv8v/q7/L/6e/y/+nv8v/q7/L/ra+w/zo2Mv89OTX/1tnc + /+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/2hmZP85NTD/v8LE/+rv8//q7/L/6e/y/+rv8v/q7/L/6u/y + /8HDxP85NTD/OjYx/3l3dv/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/dnVz/zo2Mf86NjH/OjYx + /zo2Mf8zLyz/7fL1/+rv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+nu8v9iX1z/OjYx/zo1Mf87NjL/OjUx + /zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Xl5j/6u/y/+rv8v/q7/L/6u/y + /+rv8v/p7/L/6e/y/+rw8/9LR0P/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYy + /zo2Mf86NjH/OjYx/zo2Mf9iXlv/7u/w/+7w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /+/w8v/v8PH/7+/x/+/w8f/v8PH/7u/x/+/w8f/u7/H/YV5b/zo1Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYy/2ViX//o7vH/6e/y + /+nv8v/p7/L/6u/y/+rv8v+sr7D/OjUx/359fP/p7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/Ex8n/ODQw + /zo1Mf9saWj/6u/y/+nv8v/p7/L/6u/y/+rv8v/q7/P/6u/z/2NgXv86NjL/eHd2/+rv8v/q7/L/6u/y + /+nv8v/p7/L/6u/y/+nv8v92dHL/OjUx/zo2Mf86NjH/OjYx/zMvLP/u8vX/6u/y/+nv8v/p7/L/6e/y + /+nv8v/p7/L/6e/y/2JfXP87NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/52dnv/q7/P/6u/y/+rv8v/q7/L/6u/y/+nv8v/p7/L/6/Dz/0tHRP86NTH/OjYx + /zo1Mf86NTH/OjYx/zs2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/2JfXP/u7/H/7/Dy + /+/w8f/v7/H/7/Dx/+/w8v/v8PL/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8v/v8PH/7+/x + /+7v8f9hXlv/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/ZWJf/+nu8v/q7/L/6e/y/+nv8v/p7/L/6e/y/62vsf86NjL/0dTX + /+rv8//q7/L/6u/y/+rv8v/q7/L/6u/y/3BubP86NjH/OjYy/zk1Mf/Lzc//6u/z/+rv8v/q7/L/6u/y + /+rv8v/p7/L/ury9/zo1Mf95eHb/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6u/y/3Z0cv86NjH/OjYx + /zo2Mf86NjH/My8s/+3y9P/q7/L/6u/y/+rv8v/p7/L/6e/y/+nv8v/p7vL/Yl9c/zo2Mf86NjH/OzYy + /zo2Mf86NjH/OzYx/zs2Mv86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjL/qaqr/+nv8v/q7/L/6u/z + /+rv8//p7/L/6u/z/+rv8v/r8PP/SkZD/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjH/OzYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/Yl9c/+7v8f/v8PH/7/Dy/+7w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx + /+/w8f/v8PL/7/Dx/+/w8v/v8PH/7vDx/+7v8f/v8PH/7u/x/2FeW/86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf9lYmD/6O7x + /+nv8v/q7/L/6e/y/+nv8v/p7/L/rrCx/3Rycf/p7/L/6u/y/+rv8//p7/L/6u/y/+rv8v/MztH/OjUx + /zo2Mf86NjL/OzYy/3h2df/q7/P/6e/y/+rv8v/q7/L/6u/z/+rv8v/q7/P/X1xa/3l4dv/p7/L/6u/y + /+nv8v/q7/L/6u/y/+rv8v/q7/L/dnVy/zo1Mf86NjL/OjYx/zo2Mf8zLyv/7fH1/+nu8v/p7/L/6u/y + /+nv8v/q7/L/6u/y/+nu8v9iYFz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/zs3M//Dxsf/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+zx8/85NTH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf9iX1z/7u/x + /+/w8v/v8PL/7/Dx/+/w8v/v8PL/7/Dy/+/w8f/v7/H/7/Dy/+/w8f/v8PH/7/Dx/+7v8f/v8PH/7/Dx + /+/v8f/u7/H/Yl9c/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/2ViYP/p7vH/6e/y/+rv8v/p7/L/6e/y/+nv8v+tr7D/yMzO + /+nv8//q7/L/6e/y/+nv8v/q7/P/6e/y/3d2df86NTH/OjYx/zo2Mf86NjL/PDg1/9XY2v/p7/L/6u/y + /+rv8v/p7/L/6u/y/+rv8v+2uLn/eXh2/+nv8//p7/L/6e/y/+rv8v/p7/L/6u/y/+nv8v92dXL/OjYx + /zo1Mf86NjL/OjYx/zMvK//t8fT/6e/y/+rv8v/p7/L/6e/y/+rv8v/p7/L/6e7y/2JfXf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/PTk2/+fs7v/p7/L/6u/y + /+rv8v/q7/L/6u/y/+nv8v/p7/L/2Nzf/zczL/86NjH/OjYy/zo2Mf86NTH/OjYx/zs2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/2JfXP/u7/H/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PL/7/Dx/+/w8v/u7/H/7+/x/+/w8f/v7/H/7u/x/+7v8f9hXlv/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo1Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/ZmJg + /+nu8f/p7/L/6e/y/+nv8v/q7/L/6e/y/+Ln6v/p7vL/6u/y/+rv8v/q7/L/6u/y/+rv8//T1tn/Ozcz + /zo2Mv86NjL/OzYx/zo2Mv86NjL/hIOD/+nv8//q7/P/6u/y/+rv8v/q7/L/6e/y/+rv8/+foaD/6u/y + /+nv8v/p7/L/6u/y/+rv8v/q7/L/6e/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/NDAs/+3y9f/q7/L/6u/y + /+rv8v/p7/L/6u/y/+rv8v/p7/L/Yl9c/zs2Mv86NjH/OjUx/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf9zcnH/6e7y/+rv8v/p7/L/6u/z/+rv8v/q7/L/6e/y/+rv8v+0tbf/OzYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYx/zo1Mf86NjH/OzYy/zs2Mf87NjL/Yl9c + /+7v8f/v7/H/7u/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8v/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/u7/H/7u/x/2JfXP86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf9lYmD/6e7x/+nv8v/q7/L/6u/y/+nv8v/q7/L/6e/z + /+rv8//q7/L/6u/y/+rv8//q7/P/6u/y/4GBf/86NjL/OjYx/zo2Mf87NjL/OjYx/zs2Mv9APDn/3ODj + /+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+vw8//q7/P/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/dnVy + /zo2Mf86NjH/OjUx/zo1Mf80Lyz/7fL1/+rv8v/q7/L/6u/z/+rv8v/p7/L/6u/y/+nu8v9iX13/OzYy + /zo2Mf86NjL/OjYx/zs2Mv87NjL/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjL/OjUx/77Awf/q7/L/6u/y + /+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/42NjP86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mv9iX1z/7u/x/+/v8f/v8PH/7/Dx/+/w8v/v8PL/7/Dx + /+/w8f/v8PH/7/Dy/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7vDx/+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy + /2ViX//o7vH/6u/y/+nv8v/p7/L/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6u/z/+nv8//a3eD/Pjk2 + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+RkZD/6u/z/+rv8v/q7/L/6u/y/+nv8v/q7/L/6u/z + /+rv8v/q7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v92dHL/OjYx/zo2Mf86NjH/OjYx/zQwLP/t8vX/6u/y + /+nv8v/q7/L/6u/y/+rv8v/q7/L/6e7y/2JgXf87NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mv86NjL/OjYx/zo2Mf9vbWv/6u/y/+rv8//q7/L/6u/y/+rv8//q7/L/6u/y/+rv8v/q7/L/WVZT + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx + /2JfXP/u7/D/7vDy/+/w8v/v8PL/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/u8PH/7+/x/+7v8f9iX1v/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx + /zs2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mv86NjL/ZWJg/+ju8f/q7/L/6u/y/+rv8v/q7/L/6u/y + /+rv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/4iIiP86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /0RAPf/j6Ov/6u/z/+rv8v/q7/L/6u/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/q7/L/6e/y + /3d1c/86NjL/OjYx/zo2Mf86NjH/NDAs/+3y9f/q7/L/6u/y/+rv8v/q7/L/6u/y/+nv8v/p7/L/Yl9c + /zo2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/VVNQ/93h5P/q7/L/6u/z + /+rv8v/q7/P/6u/y/+rv8v/q7/L/6u/y/8/R1P84NC//OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjL/Yl9c/+7v8f/v8PL/7/Dx/+/w8f/v8PH/7+/x + /+/w8f/v8PH/7+/x/+/w8v/v8PL/7+/x/+/w8f/v7/H/7+/x/+/w8f/u7/H/7u/x/2FeW/86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv9lYl//6e7y/+rv8v/q7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/c4OP/Pzs3 + /zo2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/5ydnf/q7/L/6e/y/+rv8v/q7/L/6e/y + /+rv8v/p7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/p7/L/dXRy/zo1Mf86NjH/OjYx/zo2Mf80MCz/7fL1 + /+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+nu8v9iYF3/OzYy/zo2Mf86NjH/OjUx/zo2Mv86NjH/OjYx + /zo2Mf86NjL/ODQw/3Vzcf/e4uX/6u/y/+nv8v/q7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v/p7/L/hIOC + /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf9iX1v/7u/x/+/w8f/u8PH/7/Dy/+/w8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy + /+/w8f/v8PH/7/Dx/+/v8f/u7/H/YV5b/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OzYx/zo2Mf86NjL/OjYx/zo1Mf86NjH/OzYx/2ViYP/o7vL/6u/y/+nv8v/q7/L/6e/y + /+rv8v/p7/L/6e/y/+rv8v/p7/L/6u/y/4+Pjv86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/TUlG/+js8P/p7/L/6u/y/+rv8v/p7/L/6u/y/+nv8v/p7/L/6e/y/+rv8v/p7/L/6e/y + /+nv8v93dXP/OjUx/zo2Mf86NTH/OjYx/zQwLP/t8vX/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6e7y + /2BdW/84MzD/ODQw/zg0MP84NDH/OTQw/zYyLf86NzP/WVdU/4iHhv/Hysz/6u/z/+rv8v/q7/L/6u/y + /+rv8v/q7/L/6u/y/+rv8v/p7/L/6e/y/9LW2P8+Ojf/OjYx/zo2Mf86NjL/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2JgXP/u7/H/7u/x/+/w8f/v8PL/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PL/7/Dy/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy/+7v8f9hXlv/OjYx + /zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/ZWJf/+ju8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v/q7/L/6u/z/+rv8//h5ej/Qz88 + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/qKmp/+rv8v/q7/P/6u/y + /+rv8v/q7/P/6e/y/+nv8v/q7/L/6u/y/+nv8v/q7/L/6u/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/NDAs + /+3y9f/q7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/2N3f/9HV1//R1Nf/0NTW/9DT1v/R1Nf/3+Pm + /+zw8//p7/L/6e/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/p7vH/YmBe + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OzYx + /zo2Mf86NjH/Yl9c/+7v8P/v8PL/7/Dy/+/w8v/v8PL/7/Dx/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/x/2FeW/86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mv9mYmD/6e7x/+rv8v/q7/L/6e/y + /+rv8v/p7/L/6u/y/+nv8v/q7/L/6u/y/5WWlf86NjL/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjYx/zo2Mf9TUE7/6u/z/+rv8//q7/P/6u/z/+rv8v/p7/L/6u/y/+rv8v/q7/P/6e/y + /+rv8v/p7/L/dnVy/zo2Mf86NjH/OjYx/zo2Mv80MCz/7fL1/+rv8v/p7/L/6u/z/+nv8v/p7/L/6u/y + /+nv8v/q7/L/6u/z/+rv8//q7/L/6e/y/+nv8v/q7/P/6e/y/+rv8v/p7/L/6e/y/+rv8//p7/L/6u/y + /+rv8v/q7/P/6u/y/+rv8//q7/L/6u/y/4uLiv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zs2Mf9iX1z/7u/x/+/w8v/v8PL/7/Dy + /+/w8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/u7/H/YV5b + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjYx/2ViYP/o7vH/6u/y/+nv8v/q7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/l6e3/R0NA + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYy/zo2Mf+xs7T/6u/z + /+rv8//q7/L/6u/y/+nv8v/q7/L/6e/y/+nv8v/p7/P/6u/y/+rv8v92dXL/OjYx/zo1Mf86NjH/OjYy + /zQwLf/t8fT/6u/z/+rv8v/q7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/y/+nv8v/p7/L/6u/y + /+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/y/+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v+YmZn/OTQw + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo1Mf86NTH/OjUx + /zo2Mf86NjL/OjYx/2NgXP/t7vD/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PL/7/Dx/+/w8f/v8PL/7/Dy + /+/w8v/v8PH/7/Dy/+/w8v/v8PH/7/Dx/+7v8f9hXlv/OzYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OzYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zs2Mf86NjH/ZWJg/+ju8f/p7/L/6u/y + /+rv8v/p7/L/6u/y/+rv8v/p7/L/6e/z/52dnv86NjL/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/1xZV//q7/P/6u/z/+rv8//p7/L/6e/y/+rv8v/p7/L/6u/y + /+rv8v/p7/L/6u/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/NDAs/+3x9P/q7/P/6e/y/+nv8v/q7/L/6e/y + /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y + /+nv8v/q7/L/6u/y/+rv8v/n6+//g4KB/zk1MP86NjH/OjYx/zo2Mv86NjH/OjYy/zo2Mv86NjH/OzYy + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjL/Yl9c/+7v8f/v8PL/7/Dx + /+/w8v/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7u/x + /2JeXP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo1Mf86NTH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf9lYmD/6e7x/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/z/+rv8v/o7fD/TUpH + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /7u9v//q7/P/6u/z/+rv8//p7/L/6u/y/+rv8v/p7/L/6u/y/+rv8//q7/L/dnVz/zo2Mf86NjH/OjYx + /zo2Mf81MCz/7fL1/+rv8v/p7/L/6u/y/+nv8v/q7/L/6e/y/+nv8v/p7/L/6u/y/+rv8v/q7/L/6e/y + /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+nv8v/q7/L/xMjK/1pXVf86NjL/OzYy + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OzYy/zs2Mv9iX1z/7u/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dy + /+/w8v/v8PH/7/Dy/+/w8f/v8PL/7/Dy/+/w8f/u7/H/Yl5b/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/2NgXf/p7vH/6u/z + /+rv8//p7/L/6u/y/+rv8//q7/L/6u/z/6ipqf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/aWdl/+rv8//q7/P/6u/y/+nv8v/q7/P/6u/y + /+nv8v/q7/P/6u/y/+rv8/92dHL/OjYx/zo2Mf86NjH/OjYx/zQwLf/t8fT/6e/y/+rv8v/q7/L/6u/y + /+nv8v/q7/L/6e/y/+rv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/z/+rv8//q7/P/6u/y + /+rv8//r8PP/wcPF/3Nxb/85NTD/OjYx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/2JfXP/u7/D/7/Dy + /+/w8f/v8PH/7/Dy/+/w8f/v7/H/7+/x/+/w8f/v8PL/7/Dy/+/w8f/v8PL/7/Dx/+/w8v/v8PL/7/Dx + /+7v8f9iXlz/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf87NjH/OjYx/zo2Mf86NjH/PDcz/4eHh/+lpqf/pKWl/6OkpP+oqan/rK6w/7K0tf+io6T/TUpG + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf85NDD/ra+v/+fs7//t8fT/7PH0/+zx9P/t8fT/7PH0/+zx9P/s8fT/4+fp/11bWf86NjH/OjYx + /zo1Mf86NjH/NzMv/9jc3//p7vL/6e/y/+nv8v/p7/L/6u/y/+rv8v/p7/L/6u/z/+rv8//q7/L/6u/z + /+nv8v/p7/P/6e/y/+nu8v/q8PP/7PDz/9DU1v+ws7T/h4eG/1BNSv85NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/YV5b/+7v8P/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7+/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/2JeW/86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OTUx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/NTEt/zMvK/8zLyv/My8r + /zUxLf82MzD/OTUx/zo3NP82Mi7/OzYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/SERB/2JgXf9hX1z/Yl9c + /2JfXf9kYl//ZmRh/2VkYv9oZmT/a2pp/21sav9vbmz/cG9t/2tqaP9jYV7/YF5b/05LSP86NjP/OTUw + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjUx/zo2Mv87NjH/OjYx/zo1Mf9iX1z/7u/w + /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PL/7/Dx + /+/w8f/u7/D/Yl9c/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OjYy + /zo2Mf86NjH/OzYx/zUxMf81MTH/NTEx/zUxMf87NjL/OjYy/zo2Mf86NjH/OjYx/zczMf85MzL/OTUy + /zYwMf83MzH/OjYy/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mv86NjH/OjYy/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/2FeW//u7/D/7+/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+/w8v/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy/+7v8P9hXlv/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf91ZjP/6ro2/+28Nv/puDb/57Y3 + /25fNP86NjL/OjYx/zo1Mf86NjL/qIs0//K+Nv/yvjX/8b81/9uwNf9SSjL/OjYy/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx + /zo1Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/Yl5b + /+7v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7u/x/2JeW/86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OzYx + /zo2Mf87NjL/OjYy/4NuNP/xuTX/8rk2//G5Nv/xuTb/ooQ1/zo2Mv86NjH/OjUx/zo2Mv+fhDX/8bk2 + //G5Nv/xuTb/8bk2/4FtNP86NjL/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9iX1z/7u/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dy/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7/H/YV5b/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/aFo0//G4Nf/yuTb/8bk2 + //G5Nf+7lTX/Ozcy/zo2Mf86NTH/OjYy/3tqM//xuTb/8bk2//G4Nv/xuTb/n4M0/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx + /zs2Mv86NTH/OjYx/zo2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYy + /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjL/OzYy/zs2Mf86NjH/OzYy + /2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx + /+/w8f/v7/H/7+/x/+7v8f9hXlv/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv9HQTP/8bw1//G5Nf/xuTb/8bk2/+CxN/83MzL/OjYy/zo2Mf86NjL/WFE0 + //G4Nv/xuTb/8bk2//G5Nv++mTX/OzYx/zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjUx + /zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjL/Yl9c/+7v8P/v8PH/7/Dx/+/w8v/v8PH/7/Dy + /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/w/2JeXP86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjL/OjYy/zYyMv/mtjb/8bk1 + //K5Nv/xuTb/8bs1/0ZBMf86NjL/OjYy/zo2Mv88NzL/8sA1//G5Nv/xuTb/8bk2/+a3Nv82MjL/OjYy + /zo1Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx + /zo2Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYy/zo1Mf86NTH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf87NjL/OjUx + /zo2Mf9iX1z/7u/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/w8f/u7/H/Yl5b/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv9PRzL/h281/453Nv+QeDT/kXk1/96vNf/xuTb/8bk2//G5Nv/xuDb/spE1/5l+NP+TeTT/kHg0 + /5B3NP/suDb/8bk2//G5Nv/xuTf/8bk3/6mKNf+dgTT/nH80/5t/NP9RSDH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/2JfXP/u7/D/7/Dx/+/w8f/v8PL/7/Dx + /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+7v8f9hXlr/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/454NP/xuTX/8rk2//K5Nv/yuTb/8bk2 + //G5Nv/xuTb/8rk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2 + //G5Nf/xuTb/8bg1/7yXNf87NjH/OjYx/zo1Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYy/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zs2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/Yl9b/+7v8P/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PL/7+/x/+/w8f/v8PL/7/Dy + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7u/w/2JeW/86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx + /zo2Mf86NTH/dmUy//G5Nf/xuTb/8bk2//K5Nv/xuTb/8bk2//G5Nv/yuTb/8bk2//G5Nv/xuTf/8bk2 + //G5N//xuTb/8bk2//K5N//xuTf/8bk2//G5N//xuDb/8bk2//G5Nv/xuTb/5LU2/zUxMv86NjL/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjUx/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf87NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy/zo2Mf9iX1v/7u/w/+/w8f/v8PH/7/Dx + /+/w8v/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/u7/H/Yl5b + /zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf9ZUTP/8Lg2//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk3//G5Nv/xuTb/8bk2 + //G5Nv/yuTf/8bk2//G5Nv/yvTb/RD4y/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NTH/OjUx + /zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYy + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf87NjH/OjYy/2JeW//u7/D/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx + /+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+7v8f9iXlv/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OzYy/z03Mf/rujX/8bk2//G5Nv/xuTb/8bg3//G5Nv/xuTb/8bk3//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//K5Nv/xuTb/8bk2//G5Nv/yuTb/8rk2//G4Nv/xuTb/8bk1/++4Nf9QSDL/OzYy + /zo2Mv86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/OzYy/zs2Mv86NjH/Yl9c/+7v8P/v8PH/7/Dx + /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx//Dw8v/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7u/w + /2FeW/86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYy/1xRMf95ZzL/eGYz + /3RjMv9zYTL/3rA3//G5Nv/xuTb/8bk2//C4Nv+SezT/emg0/3lnM/95ZzP/dmQ0//G9Nv/xuTb/8bk2 + //G5Nv/yvDf/eGY0/3poM/94ZjL/X1Q0/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYy + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx + /zo2Mv86NjL/OjYy/zo2Mf9iX1z/7u7w/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v7/H/7/Dy + /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8v/u7/H/Yl5b/zo2Mf86NjH/OjYy/zo1Mf86NjH/OjYx + /zs2Mf86NjL/OjYx/zs2Mv86NjL/OjYx/zo2Mv86NjL/OjYy/zo2Mv+xkDT/8bk2//G5Nv/xuTb/8bk2 + /3FhNP86NjL/OjYy/zo2Mv86NTL/0KY0//G5Nv/xuTb/8bk2//C4Nv9WTzL/OjYy/zo2Mv86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYy/zo2Mf86NjH/OjUx/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjL/OzYx/zs2Mv86NjH/OzYy/zo2Mv87NjL/OzYy/2JfXP/u7/D/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+7v8f9hXlv/OzYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYy/zo2Mf87NjL/OjYx/zs2Mv86NjH/OjYy + /zs2Mv86NjL/OjYy/4x0NP/xuTb/8bk2//G5Nv/xuTb/l300/zo2Mv86NjL/OjYy/zo2Mv+piTX/8bk1 + //G5Nv/xuTb/8bg2/31pNP86NjL/OjYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYy + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mv86NjH/OjYy/zo2Mv86NjH/OjYx + /zo2Mf86NjL/OjYx/zs2Mv87NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjL/OjYy + /zo2Mf86NjL/OjYy/zo2Mf86NjL/Yl9c/+7u8P/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/2JfW/87NjH/OjYx/zo2Mf86NTH/OzYy + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/b2Ay//G4Nv/xuTb/8bg2 + //G5Nv+8mDX/PDYx/zo2Mv86NjL/OjYy/4RwNP/xuTb/8bk2//G5Nv/xuTb/oIQ1/zo2Mv86NjL/OjYy + /zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjYx + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv9iX1z/7u/x + /+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx + /+/v8f/u7/D/YV5b/zo2Mf86NjH/OzYy/zo1Mf86NjH/OjYx/zo2Mv86NjL/OjYy/zo2Mf86NjH/OjUx + /1BIMf9rXDL/Z1ky/2haMv+BbjX/8Lg2//G5Nv/xuTb/8bk2/+m3N/9iVTH/ZFgy/2RYMv9oWjT/k3s1 + //G5Nv/xuTb/8bk2//G5Nv/NpTb/ZFky/2NXMv9oWjP/X1Uy/zk0Mv86NjH/OzYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mv86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zs2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+7v8P9jX1z/OzYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OzYy/zo2Mf87NjL/OjYx/zo2Mf83MjH/3K80//G5Nv/xuTX/8bk1//G4Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//G5N//xuDX/8bg1//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuDb/8bk2 + //G4Nf/xuDb/aFwz/zo2Mv86NjL/OzYy/zs2Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/Yl9b + /+7v8P/v8PH/7+/x/+/w8v/v7/H/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dy + /+/w8f/v8PH/7u/x/2FeW/86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OzYx/zo2Mf86NTH/OjYx + /zo2Mv/PpTT/8bk1//G5Nv/xuTX/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//G4Nv/xuTb/8bk2//G5Nv/xuTb/8bk1//G5Nf+XfTT/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf9iXlv/7u/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/8PDy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/u7/D/YV5c/zo2Mf86NTH/OjUx + /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6+OM//xuTb/8bk2//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bg2//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk1/7iUNP87NjH/OjYy/zo2Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OzYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/w8PL/7/Dx/+/w8v/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f9iXlz/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zs2Mv86NjH/OzYy + /zo2Mf86NjL/i3Q0//G5Nf/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nf/xuTX/1Ko1/zk0Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo1Mf86NjL/OjYx + /zo2Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zs2Mv87NjL/OzYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mv86NjL/OjYy + /zo2Mf87NjL/OjYx/zo2Mf87NjL/OjYx/zs2Mv86NjL/Yl9c/+7v8P/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8v/v8PH/7+/x/+/w8f/v8PL/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/2FdW/87NjL/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9IQjH/noM1/6aINP+mhzT/p4c0 + /7WTNf/xuTf/8bk2//G5Nv/xuTb/7Lg2/6SGNP+piTX/qIk0/6eJNP/BmzX/8bk2//G5Nv/xuTb/8bk2 + /+CvNf+khjT/poc0/6aGNf9yYjT/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zs2Mv86NjL/OjYy/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zs2Mv86NjH/OjYx/zs2Mv86NjL/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx/zo2Mv87NjH/OjYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf9iX1z/7u/w/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dy/+/w8f/u7/D/Yl5c/zo2Mv86NjH/OjYy/zs2Mf87NjH/OjYx/zo2Mv86NjH/OzYx + /zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NjL/Pzkz//G+N//xuTb/8bk2//G4Nv/vvjf/NjEz + /zo2Mv86NjL/OjYy/15VM//wuDb/8bk2//G5Nv/xuTb/1ag2/zk0Mf86NjL/OjYy/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYy + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mv86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mv87NjL/OjYy + /zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy/2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+7v8P9hXlv/OzYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYy + /zo2Mv86NTH/z6Q0//G5Nv/xuTb/8bk2//C5Nv9XTzL/OjYy/zo2Mv86NjL/PTgy//K+Nf/xuDb/8bk2 + //G5Nv/wvTb/OjQx/zo2Mv86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYy/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy + /zs2Mv87NjL/Yl9c/+7v8P/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7+/x/2NgXv86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf86NjL/OjYx + /zo2Mv86NjL/OjYx/zs2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo2Mv+oiDX/8bk2//G5Nv/xuTb/8bk2 + /35qM/86NjL/OjYy/zo2Mf85NTH/1qo1//G5Nv/xuTb/8bk2//C4Nf9ZUDP/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mv87NjL/OjYy/zo2Mv86NjL/OjUx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjL/OzYy/zs2Mv9pZmT/7u/w/+/v8f/v8PH/7/Dy + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/c3Bu + /zo2Mv86NjL/OjYx/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/4NuM//xujX/8bk2//G5Nv/xuTb/p4c0/zo2Mv87NjL/OjYy/zs3Mv+2lDX/8bk2 + //G5Nv/xuTb/8bk2/3toM/86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjUx/zo2Mf86NTH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYx/zo2Mv87NjH/OjYy + /zo2Mv86NjL/OzYy/3x6eP/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f+Jh4X/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx + /zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYy/zo2Mf87NjL/OjYx/zo2Mv86NjL/UUoy/+S1NP/xvTb/8b41 + //LBNv+ihTX/OzYy/zo2Mv86NjH/OjYy/4JtM//xvjb/8r42//G/Nv/xvTX/gGsy/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYy + /zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYy + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mv87NzP/mZeX/+/w8f/v7/H/7/Dx + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7+/x + /7Kxsf87NjL/OzYy/zo2Mv86NjH/OzYy/zo2Mv86NjH/OjYy/zo2Mv87NjL/OzYy/zo2Mf86NjH/OjYx + /zo2Mf87NjH/OzYx/zs2Mv86NjL/NjEx/zQvMf8zLzD/My8w/zk0Mf86NjH/OjYx/zo2Mv87NjH/OjUx + /zYxM/80MDH/NTAx/zs1Mv85NTH/OjYx/zs2Mv86NjH/OjYx/zo1Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mv87NjH/OzYx/zo2Mf87NjH/OzYy/zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYx/zo2Mf86NTH/OjUx + /zo2Mf86NjH/OjYx/zs2Mf86NjL/OzYx/zo2Mv86NjL/OzYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OjYx + /zs2Mv86NjH/OzYy/zo2Mf87NjH/OjYx/zo2Mv87NjL/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv87NjL/Ozcy/zs3Mv/Gxcb/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy + /+/w8f/v8PH/7/Dy/+/w8f/v8PH/7+/x/+/w8f/v8PH/6Ojp/0A8OP87NjH/OjYy/zo2Mf86NjL/OjYy + /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zs2Mv86NjL/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjUx/zs2Mf86NjH/OjYx + /zs2Mv86NjH/OjYx/zs2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjL/OzYy + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYy/zo2Mf86NjH/OzYy/zs2Mf87NjL/OjYx/zs2Mv87NjL/OzYy + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy/zs2Mv87NjL/TEhF/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx + /+/w8f/v7/H/h4WE/zo2Mv86NjH/OjYy/zs2Mv86NjL/OjYx/zo2Mf86NjL/OzYy/zs2Mf86NjL/OjYx + /zs2Mv86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zs2Mv87NjL/OzYy/zs2Mv86NjH/OzYy + /zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zs2Mv87NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYx + /zs2Mv87NjL/OjYx/zs2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv87NjL/OzYy + /zo2Mf87NjL/OzYy/zs2Mv+Yl5b/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/f3+D/REA8/zo2Mv87NjL/OzYy + /zo2Mv86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mv86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx + /zs2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYy/zo2Mf87NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mv87NzL/TEdE/+fn6P/v8PH/7+/x + /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v7/H/7/Dx/+/v8f+uraz/OTQw/zs2Mv86NjH/OzYy/zs2Mv86NjL/OzYy/zs2Mv87NjL/OjYy + /zs2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OzYx/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYy + /zs2Mf87NjL/OzYy/zo2Mf87NjL/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy + /zo2Mf86NjH/OjUx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OzYx/zs2Mf87NjL/OzYx + /zo2Mv86NjH/OjYx/zs2Mf86NjH/OzYy/zo1Mf86NjH/OjYx/zs2Mv86NTH/OzYy/zo2Mf86NTH/OjYx + /zo2Mf87NjL/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf87NjH/OzYy + /zs2Mv86NjH/OjYx/zo2Mf87NjL/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYy/zo2Mv86NjH/OjYx + /zs2Mv86NjL/OzYy/zs2Mv+7urr/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PL/7+/x/+/v8f+Mi4r/OTUx + /zs2Mv86NjH/OzYy/zo2Mf87NjL/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OzYy/zo2Mf86NjL/OzYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mf86NjL/OzYy + /zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYy/zs2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf87NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYy/zo2Mv86NjH/OzYy + /zo2Mf86NjH/OzYy/zo2Mv86NjL/OjYy/zo2Mv87NjH/OjYx/zs2Mv85NTD/nJqa/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f+Yl5f/PDcz/zs2Mv86NjL/OzYy/zs2Mf86NjH/OzYy + /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjL/OzYx/zo2Mv87NjL/OjYy/zo2Mf87NjH/OzYy + /zo2Mf86NjL/OjYy/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf87NjL/OjYx/zo2Mf86NjL/OjYy/zs2Mv86NjH/OjYx/zs2Mv86NjH/OzYx/zs2Mf87NjL/OjYy + /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NTH/OjYx/zs2Mv87NjL/OjYx/zs2Mv86NjH/OjYx + /zo1Mf86NjL/OjYy/zs2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYy/zo2Mv86NjL/OzYy/zs2Mv86NjL/OzYx/zs2Mv87NjL/OjYy/zs2Mf87NjL/OzYy + /zs2Mv87NjL/OzYy/5uamP/v8PH/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/BwcH/Uk9L/zs2Mv86NjH/OzYy/zo2Mf87NjL/OzYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf87NjL/OzYy + /zo2Mv87NjL/OzYx/zo2Mf86NjL/OzYy/zs2Mv87NjL/Ozcz/1FNSv/Av7//7+/x/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+7v8f/s7O7/p6am/11bWP84NDD/OjYx + /zo2Mf87NzL/OjYy/zs2Mv87NjL/OjYy/zs2Mv87NjL/OjYy/zs2Mv87NjL/OzYy/zs2Mv87NjL/OzYy + /zs2Mv87NjL/OzYy/zo2Mv87NjL/OzYy/zs2Mv86NjL/OzYy/zs2Mv87NjL/OjYy/zo2Mf86NjH/OzYy + /zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mv87NjL/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjL/OjYy + /zs2Mv87NjL/OzYy/zo2Mv87NjL/OjYy/zo2Mv86NjL/OjYx/zs2Mv87NjL/OzYy/zs2Mv87NjH/OjYy + /zo2Mv87NjL/OzYy/zo2Mv86NjL/OjYx/zs2Mf86NjH/OjYx/zs2Mv87NjL/OjYy/zs2Mv86NjL/OjYy + /zo2Mv87NjL/OjYy/zs2Mv87NjL/OzYy/zs2Mv87NjL/OjYy/zs3Mv87NjL/OzYy/zs2Mv87NjL/OjUx + /1xZVv+mpqX/7Ozt/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v7/H/7+/x/+/w8f/v7/H/7u/x/9vb3P+vrq3/lZOR/5GQjv+SkJD/kpCP/5KQj/+SkI//kpCQ + /5KQj/+SkI//kpCP/5KQj/+SkI//kpCP/5KQj/+SkI//kpCP/5KQj/+RkI7/kZCP/5GQjv+RkI//kY+P + /5KQj/+SkI//kpCP/5KQj/+SkI//kZCP/5KQj/+SkI//kpCP/5GQj/+SkI//kpCP/5GQj/+SkI//kpCP + /5KQj/+SkI//kpCP/5KQj/+SkI//kpCP/5KQj/+SkI//kY+O/5GQj/+SkI//kpCP/5KQj/+SkI//kpCP + /5KQjv+SkI//kpCP/5ORkP+SkI//kpCO/5KQj/+SkI//kpCP/5KRj/+SkY//kpCP/5KQj/+RkI7/kpCP + /5KQj/+Rj47/kpCP/5KRj/+RkI//kpCQ/5GQj/+Rj4//kpCO/5GQj/+SkI//kpCP/5KQj/+RkI//kpCP + /5KQj/+SkY//kpCP/5KQj/+SkI//k5CQ/6qpqf/V1dX/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+7v8f/u7/H/7u/x/+/v8f/u7/H/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/D/7u/w/+7v8P/u7vD/7u/w + /+7v8P/u7/D/7u/w/+7u8P/u7/D/7u/w/+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/w/+7u8P/u7/D/7u/w + /+7v8P/u7/D/7u/w/+7u8P/u7vD/7u/w/+7u8P/u7/D/7u7w/+7v8P/u7/D/7u7w/+7v8P/u7/D/7u/w + /+7u8P/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/H/7u7w + /+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/H/7u/w/+7v8P/u7/H/7u7w + /+7v8P/u7/H/7u/w/+7v8P/u7/D/7u/w/+7v8f/u7/D/7u7w/+7v8f/u7/H/7u/w/+7v8P/u7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/u7/H/7/Dx/+/v8f/v8PH/7+/x + /+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/u7/H/7u/w/+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+7v8f/u7/H/7u/x + /+/v8f/u7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x + /+7v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+7v8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+7v8f/u7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx + /+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x + /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7u/x/+/v8f/v7/H/7/Dx + /+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/u7/H/7+/x/+/v8f/v8PH/7u/x/+/v8f/v7/H/7/Dx + /+/v8f/v7/H/7/Dy/+/w8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8f/v8PH/7+/x + /+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x + /+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7u/x/+/w8f/v7/H/7+/x/+7v8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8P/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/w8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x + /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x + /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx//Dw8v/w8fL/7/Dy/+/w8v/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAADv8PH/7/Dx + /+/w8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+7v8f/u7/H/7+/x + /+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x + /+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x + /+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+7v8f/u7/H/7+/x + /+/v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+7v8f/u7/D/7u/x/+7v8f/u7/H/7u/x + /+7v8P/u7/D/7u/x/+7v8P/u7/D/7u/w/+7v8f/u7/H/7u/w/+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/x + /+7v8f/u7/D/7u/x/+7v8f/u7/H/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/D/7u/x + /+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7vD/tra2/4F/ff9oZWL/Y2Bd + /2NgXf9iX13/Y2Bd/2NgXf9jYF3/Y19d/2NfXf9iX13/Y2Bd/2NgXf9jYF3/Y2Bd/2NfXf9jX13/Y19d + /2JfXf9jX13/Y19d/2NgXf9jYF3/Y19d/2NgXf9jYF3/Y2Bd/2NgXf9iX13/Y2Bd/2NgXf9jYF3/Y2Bd + /2NgXf9jYF3/Y2Bd/2NgXf9jYF3/Y2Bd/2NgXf9jYF3/Y2Bd/2NgXf9jYF3/ZmNh/399e/+0s7P/7O3v + /+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/W1tf/X1tY + /zo2Mv86NjL/OjYx/zo2Mf87NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy + /zs2Mv87NjL/OzYy/1tXVP/S0tL/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/b3N3/TEhE/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mv86NjH/SERA/9jY2f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/dHJw/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9yb23/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/29vc/zs3Mv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjL/Ozcz/97e3//v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/7Szs/86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYy/yiFtf8njcD/OjUx/zo2Mf86NjH/OjYx + /zo1Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy + /zo2Mf87NjH/OjYx/zo2Mf87NjH/OzYy/zs2Mv+3t7b/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx + /+/w8f+op6b/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zg/QP8kls7/KIW0/zk3NP8pga7/IKfy + /zVKUf86NjH/OjYx/zFec/8hpur/Ml1y/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zg/QP8llc7/IKfy + /yOc3P84PTz/L2V//yCn8v8uZ4P/OjYy/zo2Mf8sdJf/IKfy/yGn7/8xXnP/OjYy/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx + /6inpv/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/6inpv86NTH/OjUx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx + /zg/Qf8klc//IKfy/yOb2/82Rkv/OjUx/zZIT/8gqPL/KIS0/zo2Mv86NjH/OjYz/yp+p/8gp/L/IKfv + /zFec/86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv+op6b/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f+op6b/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zhAQv8lltH/IKfy/yOb2/83Rkv/OjYx/zo2Mf86NTH/Ip7f/yKh5f86NjP/OjYx + /zo2Mf86NjL/Knuh/yCn8v8gp+//MV50/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo2Mf8nh7j/IKfy/yCl7P82Rkz/OjYy/zo2Mf86NjH/OjYx + /ymCr/8gp/L/NU1X/zo2Mf86NjH/OjYy/zo2Mv8ohrX/IKjy/yCn8P82Rkv/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/6inpv/v8PH/7/Dx + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/6impv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/MVhp/yCm7f8gp/L/KICs + /zo3NP86NjH/OjYx/zo1Mf8wZX7/IKfy/y5qiP86NjH/OjYx/zo2Mf8zV2f/IaXs/yCo8v8pgKz/OjYz + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx + /zo2Mv8yWWr/IKbt/yCn8v8pgKv/OjYz/zo1Mf86NjH/NkdO/yCo8v8nh7n/OjYy/zo2Mf8yWGn/IaXs + /yCn8v8pgaz/Ojc0/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zJZav8hpu3/IKfy/ymAq/86NjL/OjYx/zo1Mf8jnd3/IaTo + /zk3NP8yWGj/IaXt/yCn8v8pgKv/Ojcz/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dy + /+/w8v/v8PH/7/Dy/6impv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/Mldo/yGl7P8in+H/OTw7 + /zo2Mf86NjL/KX+r/yCn8v80UFz/LHaa/yCo8v8qgav/Ojcz/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx + /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx + /zo1Mf81TFT/NkVK/zo2Mf86NTH/OjUx/zFdcf8gqvH/L2R9/zo2Mv8zVWL/Ojcz/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/qKam/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/qKam/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjL/OjUy/zo1Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /6inpv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/enl3 + /7y/wP+9v8H/k5OT/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9GQj7/t7q7 + /72/wf+7vb//hYSD/zo2Mf86NTH/cXBv/8bJy//Iy83/x8vN/8fLzP/Hy83/x8rM/8LGyP+5vL3/pqeo + /39/fv9KRkP/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/6eoqf/q7/L/6u/y/8rN0P86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx + /zo2Mf86NTH/WFVS/+rv8v/q7/L/6u/y/7Cysv86NjH/OjYx/5CQkP/q7/L/6u/y/+nv8v/p7/L/6e/y + /+nv8v/q7/L/6e/y/+nv8v/p7/L/5uvu/6Wmpv9HQ0D/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/6empv86NTH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+nqKj/6u/y/+rv8v/KztD/OjYx/zo2Mf86NjH/RUE9 + /6qrrP+xs7T/cW9u/zo2Mf86NjH/OjYx/1lWVP/p7/L/6u/y/+nv8v+wsrP/OjYx/zo2Mf+QkJD/6e/y + /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+nv8v/p7/L/1tvd/1dUUv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f+npqb/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/p6io/+rv8v/p7/L/y87R + /zo2Mf86NjH/OjYy/46Pjv/q7/L/6e/y/9ba3P8+OjX/OjYx/zo2Mf9ZVlP/6e/y/+rv8v/p7/L/sLKy + /zo2Mf86NjH/kJCQ/+nv8v/p7/L/6e/y/9DU1v+lp6f/paam/6mqq/+9wMH/4+jr/+rv8//q7/L/6u/y + /+rv8v/W2tz/RkE+/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8v/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/p6am/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /6eoqf/q7/L/6u/y/8vP0f86NjL/OjYx/0E9Of/b4OP/6e/y/+rv8v/q7/L/fHt6/zo2Mf86NjH/WVZT + /+nv8v/p7/L/6e/y/7Cysv86NjH/OjYx/5CQkP/p7/L/6e/y/+nv8v+lp6f/OjYx/zo2Mv86NjL/OjYx + /0RAPP+jpKT/6u/y/+rv8v/q7/L/6u/y/52env86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/6empv86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+nqKj/6u/y/+nv8v/Lz9H/OjYy/zo2Mf+GhYT/6u/y/+rv8v/q7/L/6u/y + /83R0/87NzL/OjYx/1lWU//p7/L/6u/y/+nv8v+wsrL/OjUx/zo2Mf+QkJD/6e/y/+rv8v/q7/L/paan + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/66wsf/q7/L/6u/y/+rv8v/i5+r/Qj46/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+7v8f+npqb/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/p6ip/+rv8v/p7/L/y87R/zo2Mv89ODX/1Njb + /+nv8v/q7/L/6u/y/+rv8v/p7/L/cnBv/zo2Mf9ZVlP/6e/y/+rv8v/p7/L/sLKy/zo2Mf86NjH/kJCQ + /+rv8v/q7/L/6u/y/6anp/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9UUU7/6u/y/+rv8v/q7/L/6u/y + /25sav86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/p6am/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6eoqf/q7/L/6u/y + /8vP0f86NjL/eXd2/+rv8v/p7/L/6e/y/+Tp7f/p7/L/6u/y/8THyf86NjH/WVZU/+rv8v/p7/L/6u/y + /7Cysv86NjH/OjYx/5CQkP/q7/L/6u/y/+nv8v+mp6f/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /9XZ3P/q7/L/6u/y/+rv8v+MjIv/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/6impv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+nqKj/6u/y/+rv8v/Lz9H/Ozcy/8vP0f/q7/L/6u/y/7/Bw/+QkZD/6e/y/+nv8v/q7/L/aGZk + /1lWVP/q7/L/6u/y/+rv8v+wsrL/OjYx/zo2Mf+QkJD/6u/y/+nv8v/q7/L/paen/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf/Dxsj/6u/y/+rv8v/p7/L/m5ub/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/v8f+opqb/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/p6io/+nv8v/p7/L/y8/R/3Fvbv/q7/L/6u/y/+rv8v9qaGb/RkI/ + /+Ln6v/q7/L/6u/y/7y/wP9ZVlP/6e/y/+rv8v/q7/L/sLKy/zo2Mf86NjH/kJCQ/+rv8v/p7/L/6e/y + /6anp/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/xsnL/+rv8v/q7/L/6u/y/5ubm/86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dy/+/w8f/v8PL/7/Dx/+/w8f/v7/H/qKem + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6eoqf/p7/L/6e/y/8vP0f/Ex8n/6u/y + /+rv8v/GyMr/OjYx/zo2Mv+dnZ7/6u/y/+rv8v/q7/L/goGA/+nv8v/q7/L/6u/y/7Cysv86NjH/OjYx + /5CQkP/p7/L/6e/y/+rv8v+lp6f/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/Ozcz/9/k5v/q7/L/6u/y + /+rv8v+NjYz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PL/7/Dx/+/w8f/v8PH/7/Dy + /+/w8f/v8PH/7u/x/6impv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+nqKn/6e/y + /+nv8v/o7fD/6u/y/+rv8v/q7/P/cnFv/zo2Mf86NjH/TktI/+br7//q7/L/6u/y/9fc3v/q7/L/6u/y + /+rv8v+wsrL/OjYx/zo2Mf+RkZD/6u/y/+rv8v/q7/L/paen/zs2Mf86NjH/OzYy/zo2Mf86NjH/OjYx + /2lnZf/q7/L/6u/y/+rv8v/q7/L/bWtp/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv+op6b/7+/x + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/p6io/+rv8v/p7/L/6u/y/+rv8v/q7/L/zdHT/zs3M/86NjH/OjYx/zo2Mf+oqqv/6u/y + /+rv8v/q7/L/6u/y/+nv8v/p7/L/sLKy/zo2Mf86NjH/kJGQ/+rv8v/q7/L/6u/y/6anp/86NjH/OjYx + /zo2Mf86NjH/OjYx/0E9Of/Iy83/6u/y/+rv8v/q7/L/4+jr/0E9Of86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/qKem/+/w8v/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/v8f/v8PH/qKem/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6eoqP/q7/L/6e/y/+rv8v/p7/L/6u/y/3l4dv86NjH/OjYx + /zo2Mf86NjH/V1RS/+nu8v/q7/L/6u/y/+nv8v/q7/L/6e/y/7Cysv86NjH/OjYx/5GRkP/p7/L/6e/y + /+rv8v+lpqf/OTUx/zk1Mf85NDD/Qj46/3Bvbf/Jzc//6u/y/+rv8v/q7/L/6u/y/5+hof86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dy/+/w8v/v8PH/7/Dy/+/w8v/v8PH/7/Dx + /6impv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+nqKn/6u/y/+rv8v/q7/L/6u/y + /9LW2f88ODT/OjYx/zo2Mf86NjH/OjYx/zo2Mv+0trf/6u/z/+rv8v/p7/L/6u/y/+rv8v+wsrL/OjYx + /zo2Mf+RkZH/6e/y/+nv8v/q7/L/5eru/93i5f/d4eT/4eXo/+rv8v/p7/L/6u/y/+rv8v/q7/L/6u/y + /9LW2P9EQT3/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dy/+/w8v/v8PL/7/Dx + /+/w8v/v8PH/7/Dx/+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/p6ip + /+rv8v/p7/L/6u/y/+nv8v+BgH//OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/YV5b/+rv8//q7/L/6u/y + /+nv8v/q7/L/sLKy/zo2Mf86NjH/kJGQ/+rv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/p7/L/6e/y + /+rv8v/p7/L/6u/y/8/T1f9RTkv/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/qKem + /+/w8f/v8PH/7/Dy/+/w8f/v8PL/7/Dx/+/w8f/v8PL/qKem/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/6aoqP/q7/L/6u/y/+rv8//Z3eD/Pzs3/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf++wcL/6u/z/+nv8v/q7/L/6u/y/7Cysv86NjH/OjYx/5GRkf/q7/L/6u/y/+nv8v/p7/L/6e/y + /+nv8v/p7/L/6e/y/+rv8v/q7/L/4OTn/5aXl/9CPjr/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OzYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/6inpv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9OSkf/b25s/3BubP90c3L/WVZT/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/VlNQ/4+Pj/+QkI//kZGR/5OTk/9sa2j/OjYx/zo1Mf9kYmD/paen + /6anp/+nqan/qKqr/6utrv+tr6//qKqr/6Ciov+MjIv/a2ln/z87N/86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3RiM/+QdjT/cV8z/zo2Mv86NjH/gmwz + /5R5M/9oWTL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx + /+/w8f/v8PL/7/Dx/+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+zjjT/8rk2 + /9CjNf86NjH/OjYx/7+YNf/xuTb/wZk1/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/6inpv86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/lXk0//G5Nv/tuDb/PTgy/zo2Mv+egDT/8bk2/+KwNv85NTL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+VejT/wJg1/9WnNf/xuTb/8bk2/8ugNf/BmDX/16g1//G5Nv/xuTb/yp81 + /8acNf9hUzL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx/zo2Mf86NjH/rIo0//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2 + //G5Nv/xuTf/8bk2//G5Nv/xuTb/lHg0/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx + /+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/6impv86NjH/OjYx/zo2Mf86NjH/OjYy/3BeMv+1kDX/so00 + /+y2Nv/xuTb/2ak2/7aQNf+1jzX/8bo2//G5Nv/TpTb/tZA0/3ZjM/86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYy/zo2Mv/InjX/8bk2/7qUNf86NjL/OjYy/9eoNf/xuTb/rYo0/zo2Mv86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv87NjL/qKem/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/0xEMv9RSDL/tI81//G5Nv/isDb/T0Yy/1BHMv++lzX/8bk2 + /9SnNv9PRzL/T0Yy/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/6inpv86NjH/OjYx/zo2Mf86NjH/OjYx/zk1Mf/jsTX/8bk1//G5Nv/xuTb/8bk2 + //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bg2//G5Nf9dUTP/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/x501 + //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTX/gGoz/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjL/qKem/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/1dMMv9wXzP/dWIz//G6Nv/xuTb/rYs1/3FfM/+AbDP/8bk2//G5Nv+khDT/cF4z + /0hBMv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /6inp/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv/WqDX/8bk2/62LNP86NjL/OzYy + /+q2Nf/xuTb/nX40/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv+qqKj/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f+2tbX/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/qoo0 + //G7Nv/LoTX/OzYy/zo2Mv/GnjX/8bw2/7eSNP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv87NjL/vby8 + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/3t7f/zw3M/86NjH/OjYy/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zk1Mf83MjH/ODQx/zo2Mf86NjH/OTUy/zczMf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYy/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mf86NjH/OzYy/zs2Mv86NjH/OjYx + /zo2Mf87NjL/Pzs3/+Tl5v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f95dnT/OjYy + /zs2Mv86NjH/OjYy/zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/4F/ff/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/39/g/05LR/86NjL/OjYy/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv86NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mv86NjH/OzYy/1NPTP/i4uP/7/Dx/+/w8f/v8PH/7/Dx + /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/Z2dr/Yl9c/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjYx + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy + /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv87NjL/OzYy/zo2Mv87NjL/OzYy/2JeW//a2tv/7/Dx + /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+7v8P+4uLj/f317 + /2dkYf9mY2H/ZmNg/2ZjYf9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg + /2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg + /2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNh/2djYf9mY2D/fXp4 + /7i3t//u7vD/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+7v8f/u7/D/7u/x/+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x + /+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x + /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAMAAAAGAAAAABACAAAAAAAAAkAAAAAAAAAAAA + AAAAAAAAAAAA7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x + /+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x + /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7u/x + /+/v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x + /+/w8f/v7/H/7u/x/+bm6P/h4eP/4eHi/+Hh4v/h4eL/4eHi/+Hh4v/h4eL/4eHi/+Hh4v/h4eL/4eHi + /+Dh4v/g4eL/4OHi/+Hh4v/h4eL/4OHi/+Hh4v/g4eL/4OHi/+Dh4v/h4eL/4OHi/+Hh4v/g4eL/4eHi + /+Hh4v/h4eL/4eHi/+Hh4v/h4eL/4eHj/+bm6P/u7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f+9vLz/Y2Bd/0A8N/85NTH/OTUx/zk1Mf85NTH/OTUx/zk1MP85NTD/OTUw + /zk1MP85NTH/OTUx/zk1MP85NTD/OTUw/zk1MP85NTH/OTUw/zk1Mf85NTH/OTUx/zk1MP85NTH/OTUx + /zk1Mf85NTD/OTUw/zk1Mf85NTH/OTUw/zk1Mf85NTH/OTUx/z87Nv9hXlv/ubi4/+/v8f/v7/H/7+/x + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/6empf88ODT/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv86NjL/PDgz + /6KgoP/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/29vc/0I9Of86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/0E8OP/b29z/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/oqGg/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf80UV7/NFFe/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv+lpKP/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYuK + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx + /zo2Mf85Ozr/KX+r/zRPW/8scpX/JJfT/zo1Mv86NjH/MGF4/yx1mv86NzP/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+OjIv/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx + /zo2Mf86NTH/OjUx/zk8O/8mjcH/IKbv/zFfdv8zVmb/IKbv/zdDSP86NjH/LHSY/yCo8v8qfaj/Ojc0 + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx + /+/w8f/v7/H/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/ODw8/yeNwv8gp/D/MGR+/zo1Mf85Ojn/IKbu/zBfdv86NjH/Ojcz + /yt4n/8gp/L/Knym/zo3NP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv+Nion/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/KIW1/yCn8v8uaYb/OjYy/zo2Mf86NjH/Jo/G + /yp8p/86NjH/OjYx/zo3M/8qfqj/IKjy/y1xkv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/MF5z/yCl7v8lkcr/OD4+ + /zo2Mf86NTH/LHKV/yOY1/86NzP/OjYx/zZJUv8jnd7/Ip/i/zVMVf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYy + /zBfdf8hpu7/JZDJ/zg+P/86NjH/M1Vk/yCn8f82RUv/NUpS/yOd3/8in+L/NUxW/zo2Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dy + /+/w8f/v8PL/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NjH/OjUx/zo2Mf8xXXL/IKbv/y5si/86NjH/OTw7/yGk6v8wYnv/KIOx/yKf4v81TFb/OjYx + /zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/NUhP/zk4Nf86NTH/OjUx/yt3nf8vZoD/OTs6 + /zdDRv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/0dEQP+am5v/m5yc/1RRTv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/V1RR + /5ucnP+bnJz/ZGJg/zo2Mf9ZVlT/o6Wl/6Smpv+kpab/pKam/6KkpP+bnJz/hoaG/1pXVf86NjL/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ + /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//q7/L/6u/y/3p5eP86NTH/OjYx/z04NP9CPjr/Ozcz + /zo2Mf86NjH/fXx6/+rv8v/q7/L/kpOS/zo2Mf97enj/6u/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y + /+rv8v/BxMX/WVZT/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/jIqJ/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdWv/q7/L/6u/y/3t6ef86NjH/OjYx + /6yur//j6Ov/jo6O/zo2Mf86NTH/fXx7/+nv8v/p7/L/kpOS/zo2Mf97enj/6e/y/+rv8v/m6+7/3eHk + /93i5P/m6+//6u/y/+rv8v/q7/L/4OTn/19cWv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqI/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y + /3t6ef86NjH/WFVT/+fs8P/q7/L/2+Dj/0RAPP86NjH/fXx7/+rv8v/p7/L/kpOS/zo2Mf97enj/6e/y + /+nv8v+4u7z/Pzs3/0A7N/9FQT7/c3Jx/9fb3v/q7/L/6u/y/8zP0v8+OTX/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /2BdWv/p7/L/6e/y/3t6ef86NjL/qaur/+rv8v/q7/L/6u/y/4iIh/86NjH/fXx7/+rv8v/p7/L/kpOS + /zo2Mf97enj/6e/y/+rv8v+2ubr/OjYx/zo2Mf86NjH/OjYx/1xZV//m6+//6u/y/+rv8v9ubGr/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y/3t6ef9OS0j/5uvu/+nv8v/p7/L/6u/y/9XZ2/9APDj/fXx7 + /+rv8v/p7/L/kpOS/zo2Mf96enj/6u/y/+rv8v+3ubr/OjYx/zo2Mf86NjH/OjYx/zo2Mf++wcL/6u/y + /+rv8v+Zmpr/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/jIqJ + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y/3t6ef+dnp7/6u/y/+br7v+goaL/6e/y + /+rv8v9+fXv/fXx7/+rv8v/q7/L/kpOS/zo2Mf97enn/6u/y/+nv8v+2ubr/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+ipKT/6u/y/+rv8v+trq//OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6e/y/4uLi//h5un/6u/y + /6usrf9BPTn/3ODj/+rv8v/Q1Nb/gH9+/+rv8v/q7/L/kpOS/zo2Mf97enj/6u/y/+nv8v+3ubr/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+mp6j/6u/y/+rv8v+tr6//OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx + /+/w8f/v8PH/7/Dy/+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6e/y + /9TY2//q7/L/5+zw/1pXVP86NjH/kZKR/+rv8v/q7/L/vcDC/+rv8v/q7/L/kpOS/zo2Mf97enj/6u/y + /+rv8v+2ubr/OjYx/zo2Mf86NjH/OjYx/zs2Mv/Jzc//6u/y/+rv8v+Zmpr/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+Mi4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /2BdW//p7/L/6u/y/+nv8v/q7/L/tLa3/zo2Mv86NjH/SUVC/+Hl6P/q7/L/6u/y/+rv8v/p7/L/kpOS + /zo2Mf97enn/6u/y/+rv8v+3ubr/OjYx/zo2Mf86NjH/OjYx/3Bvbf/p7vH/6u/y/+rv8v9ubGr/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y/+nv8v/p7vL/X1xa/zo2Mf86NjH/OjYx/52env/q7/L/6e/y + /+nv8v/p7/L/kpOS/zo2Mf97enn/6e/y/+rv8v/BxMX/XFlX/1xaV/9qaGb/mZqa/+Tp7P/q7/L/6u/y + /8zQ0v8+Ojb/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/jIqJ + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6e/y/+rv8v+6vb//OjUx/zo2Mf86NjH/OjYx + /1BMSf/k6e3/6u/y/+rv8v/q7/L/kpOS/zo2Mf97enn/6u/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y + /+nv8v/q7/L/3OHk/1tZVv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dy + /+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdWv/q7/L/6u/y/+rv8v9oZWP/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+nqar/6u/y/+rv8v/q7/L/k5OS/zo2Mf97enn/6u/y/+rv8v/p7/L/6e/y + /+nv8v/p7/L/6u/y/+nu8f+2ubr/U1BN/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/z04Nf9gXlv/Y2Be + /2BeXP87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf9KRkP/enl4/3t6eP98fHr/VlNQ/zo2Mf9ST0v/i4uK + /4uLiv+NjYz/j4+P/4+Pj/+IiIf/dHJx/01KRv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/sY41 + /9OlNf9FPjL/SEEy/9mqNf+sijT/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx + /zo2Mf86NjL/sIw0//G5Nv9iVDP/Pjky/+GvNv/hrzb/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ + /zo2Mf86NjH/OjYx/2BTMv/MoDX/4a82//G5Nv/cqzb/zaA1/+y2Nv/xuTb/06U1/6qINP86NjH/OjYx + /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/1VLMv/ptDb/6rU2//G5Nv/vuDb/6rU2/+63Nv/xuTb/7bY2 + /9SmNf88NzH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+Mion/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zs2Mv9CPDL/VEoy//G5Nv/HnDX/Qjwy + /4pxM//xuTb/kXY0/0A6Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mv+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf9kVTL/fWcz + /+m0Nv/ptDb/d2Mz/5h7NP/xuTb/wpk1/3hjM/9MQzL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx + /zo2Mf+wjDT/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv+RdTP/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ + /zo2Mf86NjH/OjYx/zo2Mf9jVDL/kHU0/8OaNf/xuTb/s481/5F2NP/irzb/77g2/5h7NP9mVzP/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+Ni4n/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f/v8PH/joyL/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/31nM//xuTb/lnk0/zo2Mv+7lDT/8bk2 + /1tOMv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv+Qjoz/7/Dx + /+/w8f/v8PH/7/Dx/+/w8f/v8PH/paOi/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/0tCMv+TdjP/cF4z + /zo2Mf9rWjP/lHg0/1NIMv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zs2Mv+rqqn/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/3d3e/0M/O/86NjL/OjYx/zs2Mv86NjL/OjYx + /zo2Mf86NjH/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OzYy/0ZCPv/h4eL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/6uqqf89OTX/OjYy + /zo2Mv86NjL/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf87NjL/OjYx/zo2Mv86NjL/Pjk1/7Cvrv/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx + /+/w8f+/v7//ZGFe/z46Nv85NTH/OTUx/zk1Mf85NTH/OTUx/zk1Mf85NTD/OTUx/zk1MP85NTD/OTUx + /zk1Mf85NTD/OTUx/zk1Mf85NTH/OTUx/zk1Mf85NTD/OTUw/zk1Mf85NTD/OTUx/zk1Mf85NTD/OTUw + /zk1Mf85NTH/OTUx/zk1Mf85NTH/OTUx/z45Nf9kYF7/v76+/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7+/x/+/w8f/v7/H/7u/x/+bm5//k5OX/4+Tl/+Tk5f/j4+X/4+Tl/+Pk5f/j4+X/4+Tl + /+Pk5f/j5OX/4+Tl/+Pj5f/j4+X/4+Pl/+Pj5f/j5OX/4+Pl/+Pk5f/j5OX/4+Tl/+Pk5f/j5OX/4+Tl + /+Pk5f/j5OX/4+Tl/+Pk5f/j4+X/4+Tl/+Pk5f/j5OX/4+Tl/+Xm5//u7/D/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v8PH/AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAO/w8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx + /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x + /+7v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx + /+/w8f/v8PH/7/Dx/+/v8f/v7/H/xcXF/6qpqP+op6f/qaen/6inp/+op6f/qKen/6inp/+op6f/qKem + /6inp/+op6f/qKen/6inp/+op6f/qKen/6inp/+op6f/qKen/6inp/+op6f/qaen/6moqP/ExMT/7u/x + /+/v8f/v8PH/7+/x/+/w8f/v8PH/6uvs/29saf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy + /zs2Mv9saWb/6err/+/w8f/v8PH/7/Dx/+/w8f+enZz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf+enZz/7/Dx/+/w8f/v8PH/7/Dx/3Rxb/86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo1Mf86NjH/Ojg1/zBhef8xXXL/LW2N/zo2Mf8yXHD/OD9B/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3VycP/v8PH/7/Dx/+/w8f/v8PH/cW5s/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zk4Nf8ohLT/J4m9/zZIT/8mjsf/OjYx/yx0mP8lldH/OEBC + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s/+/w8f/v7/H/7/Dx/+/w8f9xbmv/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/KYGv/yaLwf85Ojj/OjUx/yOa2f85Ozv/OjYy + /yt3nv8kldH/OTo4/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx + /3Fua/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf8vY3z/Ip3f/zZJUf86NjH/KX+s + /zJXaf84Pj//JZLM/yt4n/86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx + /+/w8f/v8PH/cW5s/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf8wY3z/I5va + /zo3NP8wYnv/K3Sa/yeHuP8reJ//OjYy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s + /+/w8f/v8PH/7/Dx/+/w8f9xbmz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx + /zo2Mf84P0D/OjUx/zg/Qf8xXnT/OD4+/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3Fua/86NjH/OjYx/zo2Mf86NjH/a2ln/3Fvbv86NjH/OjYx + /zo2Mf86NjH/OjYx/1xaV/97enn/TUlG/0hEQf+BgH//gYB//4GAf/98e3r/ZmRi/z46Nv86NjH/OjYx + /zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx/+/w8f/v8PH/cW5r/zo2Mf86NjH/OjYx/zo2Mf/IzM3/2t7h + /zo2Mf89ODT/dHJx/0hEQP86NjH/oaKj/+rv8v91dHL/ZWNh/+nv8v/p7/L/6e/y/+nv8v/q7/L/19ze + /2xqaP86NjH/OjYx/zo2Mf86NjH/cW5s/+/w8f/v8PH/7/Dx/+/w8f9xbmv/OjYx/zo2Mf86NjH/OjYx + /8jLzf/a3+H/OjYx/3l4d//q7/L/np+g/zo2Mf+hoqP/6u/y/3V0cv9lY2H/6e/y/9LW2P9wbmz/dnV0 + /62vsP/q7/L/5ert/1ZTUP86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3Fua/86NjH/OjYx + /zo2Mf86NjH/yMvN/9rf4f87NjL/y8/R/+rv8v/i5+r/SEVB/6Gjo//q7/L/dXRy/2VjYf/q7/L/yMvN + /zo2Mf86NjH/OjYx/7a4uf/q7/L/n6Cg/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx/+/w8f/v7/H/cW5r + /zo2Mf86NjH/OjYx/zo2Mf/Iy83/2t/i/25ta//q7/L/x8vM/+nv8v+UlJT/oaOj/+rv8v91dHL/ZWNh + /+rv8v/Hy83/OjYx/zo2Mf86NjH/g4OC/+rv8v++wcP/OjYx/zo2Mf86NjH/cW5s/+/w8f/v8PH/7/Dx + /+/w8f9xbmz/OjYx/zo2Mf86NjH/OjYx/8jLzf/a3+L/wsXH/+Hl6P9JRUL/1Njb/97j5v+rra7/6u/y + /3V0cv9lY2H/6e/y/8fLzf86NjH/OjYx/zo2Mf+Hhob/6u/y/7/Bw/86NjH/OjYx/zo2Mf9xbmz/7/Dx + /+/w8f/v8PH/7/Dx/3FubP86NjH/OjYx/zo2Mf86NjH/yMzN/+nu8v/q7/L/mZqa/zo2Mf+GhoX/6u/y + /+Xq7f/q7/L/dXRy/2VjYf/q7/L/yMvN/zo2Mf86NjH/PDgz/8HExv/q7/L/n6Cg/zo2Mf86NjH/OjYx + /3FubP/v8PH/7/Dx/+/w8v/v8PH/cW5r/zo2Mf86NjH/OjYx/zo2Mf/Iy83/6u/y/+Tp7P9LR0P/OjYx + /0I9Of/c4eP/6e/y/+rv8v91dHL/ZWNh/+nv8v/X3N7/i4uL/5GSkf/Dxsj/6u/y/+Tp7P9WU1D/OjYx + /zo2Mf86NjH/cW5s/+/w8v/v8PH/7/Dy/+/w8f9xbmz/OjYx/zo2Mf86NjH/OjYx/8jLzf/q7/L/oKKi + /zo2Mf86NjH/OjYx/5GRkP/q7/L/6u/y/3V0cv9lY2H/6u/y/+nv8v/p7/L/6e/y/+rv8v/S1tn/Z2Vj + /zo2Mf86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3FubP86NjH/OjYx/zo2Mf9eUTL/WlNG + /2hhUf9kVzr/OjYx/zo2Mf86NjH/QT05/2VjYP9mZGL/R0M//0VBPf9wbmz/cXBu/3NycP9vbmz/W1hV + /zs3M/86NjH/OjYx/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx/+/w8f/v8PH/cW5r/zo2Mf86NjH/OjYx + /8ueNf+NcjT/dGEz/+GvNv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s/+/w8f/v8PH/7/Dx/+/w8f9xbmv/OjYx + /zo2Mf+9lTX/6rQ2/+izNv/frTb/8bk2/92rNf9aTjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx + /3FubP86NjH/OjYx/2ZWM/+ohjT/3aw2/3hjM//rtTb/nH00/0lBMv86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx + /+/w8f/v8PH/cW5s/zo2Mf86NjH/aVgy/7qSNP/ttzb/oIA0/+SwNv/BmDX/dmEz/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s + /+/w8f/v8PH/7/Dx/+/w8f9xbmz/OjYx/zo2Mf9lVTL/so00//G5Nv/AlzX/1aY1/96sNf+KcTP/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3VycP86NjH/OjYx/zo2Mf86NjH/2ak1/3tmM/+JcDP/zqE1 + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYy/3d0cv/v8PH/7/Dx/+/w8f/v8PH/oZ+e/zo2Mv86NjH/OjYx/zo2Mf85NTH/OjUx + /zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf87NjL/paSj/+/w8f/v8PH/7/Dx/+/w8f/r6+3/cW5s/zo2Mv86NjH/OjYx + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx + /zo2Mf86NjH/OjYx/zs2Mv86NjL/OzYy/3Jvbf/s7O7/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/xcXF + /6upqf+qqan/qqmo/6qpqP+qqaj/qqmo/6qpqP+qqaj/qqmo/6qpqP+qqaj/qqmo/6qpqP+qqaj/qqmo + /6qpqf+qqaj/qqmo/6qpqP+qqan/qqmp/6qpqf/FxMT/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v7/H/7/Dx + /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x + /+/v8f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAADv8PH/7+/x + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx + /87Nzv95dnT/cW9s/3FubP9xbmz/cW5s/3FubP9xbmz/cW5s/3FubP9xb2z/cW9s/3l2dP/MzM3/7/Dx + /+/w8f9iXlv/OjYx/zo2Mf86NjH/OjYx/zo2Mv81SlP/N0RI/zhCRf86NjH/OjYx/zo2Mf86NjH/Yl9c + /+/w8f/v8PH/VlJO/zo2Mf86NjH/OjYx/zo2Mf8scpb/NFBd/y9mg/8tbY7/NFFf/zo2Mf86NjH/OjYx + /1ZST//v8PH/7/Dx/1ZSTv86NjH/OjYx/zo2Mf86NjH/L2aC/zNUZP8ua4v/LHSZ/zZGTf86NjH/OjYx + /zo2Mf9WUk//7/Dx/+/w8f9WUk7/OjYx/0ZCP/9IRED/OjYx/zo2Mf9SUlD/P0tP/11dW/9cWlf/RkI/ + /zo2Mf86NjH/VlJO/+/w8f/v8PH/VVJO/zo2Mf+BgX//ioqJ/4WEg/9XVFH/xcnK/21raf/k6ez/rrCx + /9ba3f94d3X/OjYx/1ZSTv/v8PH/7/Dx/1ZSTv86NjH/gYF//5eYmP/Z3uD/qqys/8XJy/9ta2n/2d3f + /zo2Mf9ramf/zNDS/zo2Mf9WUk//7/Dx/+/w8f9WUk7/OjYx/4GBf//c4OP/f399/8nMzv/Z3eD/bWtp + /9nd3/86NjH/b25s/8zQ0v86NjH/VlJP/+/w8f/v8PH/VlJO/zo2Mf+BgX//1trd/z46Nv96eXj/6u/y + /21raf/l6u3/vL/A/9rf4f93dnT/OjYx/1ZSTv/v8PH/7/Dx/1ZSTv86NjH/hG04/4hyPf86NjH/PDcz + /1BMSf9APDf/VVJP/1ZTUP9DPzv/OjYx/zo2Mf9WUk//7/Dx/+/w8f9WUk7/ZlYz/9amNf/NnzX/h24z + /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/VlJP/+/w8f/v8PH/VlJO/1BGMv/TpDX/xps1 + /6iFNP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/1ZST//v8PH/7/Dx/2NfXP86NjH/YlIy + /15QMv9fUDL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9kYV7/7/Dx/+/w8f/Ozs//eXZ0 + /3Jvbf9yb23/cm9t/3Jvbf9yb23/cm9t/3Jvbf9yb23/cm9t/3Jvbf95dnT/z87P/+/v8f/v8PH/7/Dx + /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AA== + + + + 370, 17 + + \ No newline at end of file diff --git a/hMarkdown/Program.cs b/hMarkdown/Program.cs new file mode 100644 index 0000000..831248c --- /dev/null +++ b/hMarkdown/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace hMarkdown +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/hMarkdown/Properties/AssemblyInfo.cs b/hMarkdown/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..914c962 --- /dev/null +++ b/hMarkdown/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 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("hMarkdown")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("hMarkdown Reader")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("by hOLOlu")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a8e10c05-f985-4702-8ae2-b5d95e9aed83")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.1.0")] +[assembly: AssemblyFileVersion("1.0.1.0")] diff --git a/hMarkdown/Properties/Resources.Designer.cs b/hMarkdown/Properties/Resources.Designer.cs new file mode 100644 index 0000000..16f0588 --- /dev/null +++ b/hMarkdown/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace hMarkdown.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("hMarkdown.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/hMarkdown/Properties/Resources.resx b/hMarkdown/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/hMarkdown/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/hMarkdown/Properties/Settings.Designer.cs b/hMarkdown/Properties/Settings.Designer.cs new file mode 100644 index 0000000..629057e --- /dev/null +++ b/hMarkdown/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace hMarkdown.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/hMarkdown/Properties/Settings.settings b/hMarkdown/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/hMarkdown/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/hMarkdown/README.md b/hMarkdown/README.md new file mode 100644 index 0000000..11e3faf --- /dev/null +++ b/hMarkdown/README.md @@ -0,0 +1,36 @@ +# hMarkdown + +hMarkdown, .NET Framework 4.8 ile geliþtirilmiþ bir Windows Forms uygulamasýdýr. Markdown dosyalarýný düzenlemek ve yönetmek için kullanýcý dostu bir arayüz sunar. + +## Özellikler + +- Basit ve sezgisel arayüz ile Markdown dosyalarýný düzenleme +- Markdown belgelerini kaydetme ve yükleme +- Markdown içeriðini önizleme (destekleniyorsa) +- Hafif ve hýzlý çalýþma + +## Kurulum + +1. Depoyu klonlayýn veya indirin. +2. Visual Studio 2022 ile projeyi açýn. +3. __Build Solution__ komutunu kullanarak projeyi derleyin. +4. Uygulamayý çýktý klasöründen (`bin\Release` veya `bin\Debug`) çalýþtýrýn. + +## Kullaným + +- `hMarkdown.exe` dosyasýný baþlatýn. +- Bir Markdown dosyasý açýn veya yeni bir dosya oluþturun. +- Ýçeriðinizi düzenleyin ve deðiþiklikleri kaydedin. + +## Gereksinimler + +- Windows iþletim sistemi +- .NET Framework 4.8 + +## Lisans + +Bu proje MIT Lisansý ile lisanslanmýþtýr. + +--- + +*Sorularýnýz veya katkýlarýnýz için lütfen bir issue açýn veya pull request gönderin.* \ No newline at end of file diff --git a/hMarkdown/bin/Debug/Markdig.dll b/hMarkdown/bin/Debug/Markdig.dll new file mode 100644 index 0000000..7db7513 Binary files /dev/null and b/hMarkdown/bin/Debug/Markdig.dll differ diff --git a/hMarkdown/bin/Debug/Markdig.xml b/hMarkdown/bin/Debug/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/hMarkdown/bin/Debug/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/hMarkdown/bin/Debug/System.Buffers.dll b/hMarkdown/bin/Debug/System.Buffers.dll new file mode 100644 index 0000000..67a31fb Binary files /dev/null and b/hMarkdown/bin/Debug/System.Buffers.dll differ diff --git a/hMarkdown/bin/Debug/System.Buffers.xml b/hMarkdown/bin/Debug/System.Buffers.xml new file mode 100644 index 0000000..fe1f651 --- /dev/null +++ b/hMarkdown/bin/Debug/System.Buffers.xml @@ -0,0 +1,173 @@ + + + + System.Buffers + + + + + Provides a resource pool that enables reusing instances of type . + + + + Renting and returning buffers with an can increase performance + in situations where arrays are created and destroyed frequently, resulting in significant + memory pressure on the garbage collector. + + + This class is thread-safe. All members may be used by multiple threads concurrently. + + + + + The lazily-initialized shared pool instance. + + + + Retrieves a shared instance. + + + The shared pool provides a default implementation of + that's intended for general applicability. It maintains arrays of multiple sizes, and + may hand back a larger array than was actually requested, but will never hand back a smaller + array than was requested. Renting a buffer from it with will result in an + existing buffer being taken from the pool if an appropriate buffer is available or in a new + buffer being allocated if one is not available. + + + + Ensures that has been initialized to a pool and returns it. + + + + Creates a new instance using default configuration options. + + A new instance. + + + + Creates a new instance using custom configuration options. + + The maximum length of array instances that may be stored in the pool. + + The maximum number of array instances that may be stored in each bucket in the pool. The pool + groups arrays of similar lengths into buckets for faster access. + + A new instance with the specified configuration options. + + The created pool will group arrays into buckets, with no more than + in each bucket and with those arrays not exceeding in length. + + + + + Retrieves a buffer that is at least the requested length. + + The minimum length of the array needed. + + An that is at least in length. + + + This buffer is loaned to the caller and should be returned to the same pool via + so that it may be reused in subsequent usage of . + It is not a fatal error to not return a rented buffer, but failure to do so may lead to + decreased application performance, as the pool may need to create a new buffer to replace + the one lost. + + + + + Returns to the pool an array that was previously obtained via on the same + instance. + + + The buffer previously obtained from to return to the pool. + + + If true and if the pool will store the buffer to enable subsequent reuse, + will clear of its contents so that a subsequent consumer via + will not see the previous consumer's content. If false or if the pool will release the buffer, + the array's contents are left unchanged. + + + Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer + and must not use it. The reference returned from a given call to must only be + returned via once. The default + may hold onto the returned buffer in order to rent it again, or it may release the returned buffer + if it's determined that the pool already has enough buffers stored. + + + + The reason for a BufferAllocated event. + + + The pool is allocating a buffer to be pooled in a bucket. + + + The requested buffer size was too large to be pooled. + + + The pool has already allocated for pooling as many buffers of a particular size as it's allowed. + + + + Event for when a buffer is rented. This is invoked once for every successful call to Rent, + regardless of whether a buffer is allocated or a buffer is taken from the pool. In a + perfect situation where all rented buffers are returned, we expect to see the number + of BufferRented events exactly match the number of BuferReturned events, with the number + of BufferAllocated events being less than or equal to those numbers (ideally significantly + less than). + + + + + Event for when a buffer is allocated by the pool. In an ideal situation, the number + of BufferAllocated events is significantly smaller than the number of BufferRented and + BufferReturned events. + + + + + Event raised when a buffer is returned to the pool. This event is raised regardless of whether + the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned + events exactly matches the number of BufferRented events. + + + + The default maximum length of each array in the pool (2^20). + + + The default maximum number of arrays per bucket that are available for rent. + + + Lazily-allocated empty array used when arrays of length 0 are requested. + + + Gets an ID for the pool to use with events. + + + Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd. + + + + Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length. + + + + Gets an ID for the bucket to use with events. + + + Takes an array from the bucket. If the bucket is empty, returns null. + + + + Attempts to return the buffer to the bucket. If successful, the buffer will be stored + in the bucket and true will be returned; otherwise, the buffer won't be stored, and false + will be returned. + + + + The buffer is not associated with this pool and may not be returned to it. + + + diff --git a/hMarkdown/bin/Debug/System.Memory.dll b/hMarkdown/bin/Debug/System.Memory.dll new file mode 100644 index 0000000..9b4f824 Binary files /dev/null and b/hMarkdown/bin/Debug/System.Memory.dll differ diff --git a/hMarkdown/bin/Debug/System.Memory.xml b/hMarkdown/bin/Debug/System.Memory.xml new file mode 100644 index 0000000..ff0619c --- /dev/null +++ b/hMarkdown/bin/Debug/System.Memory.xml @@ -0,0 +1,3489 @@ + + + + System.Memory + + + + + Reads bytes as primitives with specific endianness + + + For native formats, MemoryExtensions.Read{T}; should be used. + Use these helpers when you need to read specific endinanness. + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip sbyte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip byte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt64, return false. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt64, return false. + + + + + Writes an Int16 into a span of bytes as big endian. + + + + + Writes an Int32 into a span of bytes as big endian. + + + + + Writes an Int64 into a span of bytes as big endian. + + + + + Write a UInt16 into a span of bytes as big endian. + + + + + Write a UInt32 into a span of bytes as big endian. + + + + + Write a UInt64 into a span of bytes as big endian. + + + + + Writes an Int16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int16 into a span of bytes as little endian. + + + + + Writes an Int32 into a span of bytes as little endian. + + + + + Writes an Int64 into a span of bytes as little endian. + + + + + Write a UInt16 into a span of bytes as little endian. + + + + + Write a UInt32 into a span of bytes as little endian. + + + + + Write a UInt64 into a span of bytes as little endian. + + + + + Writes an Int16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Extension methods for + + + + + Returns position of first occurrence of item in the + + + + + Copy the to the specified . + + The source . + The destination . + + + + Converts the to an array + + + + + Writes contents of to + + + + + Represents a sink + + + + + Notifies that amount of data was written to / + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Owner of Memory that is responsible for disposing the underlying memory appropriately. + + + + + Returns a Memory. + + + + + Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them. + + + + + Call this method to indicate that the IPinnable object can not be moved by the garbage collector. + The address of the pinned object can be taken. + The offset to the element within the memory at which the returned points to. + + + + + Call this method to indicate that the IPinnable object no longer needs to be pinned. + The garbage collector is free to move the object now. + + + + + A handle for the memory. + + + + + Creates a new memory handle for the memory. + + pointer to memory + reference to manually managed object, or default if there is no memory manager + handle used to pin array buffers + + + + Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change. + + + + + Frees the pinned handle and releases IPinnable. + + + + + Manager of that provides the implementation. + + + + + Returns a . + + + + + Returns a span wrapping the underlying memory. + + + + + Returns a handle to the memory that has been pinned and hence its address can be taken. + + The offset to the element within the memory at which the returned points to. (default = 0) + + + + Lets the garbage collector know that the object is free to be moved now. + + + + + Returns a for the current . + + The element count in the memory, starting at offset 0. + + + + Returns a for the current . + + The offset to the element which the returned memory starts at. + The element count in the memory, starting at element offset . + + + + Returns an array segment. + Returns the default array segment if not overriden. + + + + + Implements IDisposable. + + + + + Clean up of any leftover managed and unmanaged resources. + + + + + Represents a pool of memory blocks. + + + + + Returns a singleton instance of a MemoryPool based on arrays. + + + + + Returns a memory block capable of holding at least elements of T. + + If -1 is passed, this is set to a default value for the pool. + + + + Returns the maximum buffer size supported by this pool. + + + + + Constructs a new instance of a memory pool. + + + + + Frees all resources used by the memory pool. + + + + + Frees all resources used by the memory pool. + + + + + + This enum defines the various potential status that can be returned from Span-based operations + that support processing of input contained in multiple discontiguous buffers. + + + + + The entire input buffer has been processed and the operation is complete. + + + + + The input is partially processed, up to what could fit into the destination buffer. + The caller can enlarge the destination buffer, slice the buffers appropriately, and retry. + + + + + The input is partially processed, up to the last valid chunk of the input that could be consumed. + The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry. + + + + + The input contained invalid bytes which could not be processed. If the input is partially processed, + the destination contains the partial result. This guarantees that no additional data appended to the input + will make the invalid sequence valid. + + + + + Represents a sequence that can read a sequential series of . + + + + + Returns empty + + + + + Length of the . + + + + + Determines if the is empty. + + + + + Determines if the contains a single segment. + + + + + Gets from the first segment. + + + + + A position to the start of the . + + + + + A position to the end of the + + + + + Creates an instance of from linked memory list represented by start and end segments + and corresponding indexes in them. + + + + + Creates an instance of from the . + + + + + Creates an instance of from the , start and index. + + + + + Creates an instance of from the . + Consumer is expected to manage lifetime of memory until is not used anymore. + + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at ', with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The starting (inclusive) at which to begin this slice. + The ending (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The starting (inclusive) at which to begin this slice. + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The start index at which to begin this slice. + + + + + + + Returns an enumerator over the + + + + + Returns a new at an from the start of the sequence. + + + + + Returns a new at an from the + + + + + Tries to retrieve next segment after and return its contents in . + Returns false if end of was reached otherwise true. + Sets to the beginning of next segment if is set to true. + + + + + An enumerator over the + + + + Initialize the enumerator. + The to enumerate. + + + + The current + + + + + Moves to the next in the + + + + + + Represents a linked list of nodes. + + + + + The value for current node. + + + + + The next node. + + + + + The sum of node length before current. + + + + + Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X') + and an optional precision ranging from 0..99, or the special value NoPrecision. + + + + + Precision values for format that don't use a precision, or for when the precision is to be unspecified. + + + + + The maximum valid precision value. + + + + + The character component of the format. + + + + + The precision component of the format. Ranges from 0..9 or the special value NoPrecision. + + + + + true if Precision is a value other than NoPrecision + + + + + true if the StandardFormat == default(StandardFormat) + + + + + Create a StandardFormat. + + A type-specific formatting character such as 'G', 'D' or 'X' + An optional precision ranging from 0..9 or the special value NoPrecision (the default) + + + + Converts a character to a StandardFormat using the NoPrecision precision. + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Compute a hash code. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns the format in classic .NET format. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns false if both the Symbol and Precision are equal. + + + + + Convert between binary data and UTF-8 encoded text that is represented in base 64. + + + + + Decode the span of UTF-8 encoded text represented as base 64 into binary data. + If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4. + + The input span which contains UTF-8 encoded text in base 64 that needs to be decoded. + The output span which contains the result of the operation, i.e. the decoded binary data. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input + - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true. + + + + + Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length". + + + Thrown when the specified is less than 0. + + + + + Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data. + The decoded binary output is smaller than the text data contained in the input (the operation deflates the data). + If the input is not a multiple of 4, it will not decode any. + + The input span which contains the base 64 text data that needs to be decoded. + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4). + It does not return DestinationTooSmall since that is not possible for base 64 decoding. + It does not return NeedMoreData since this method tramples the data in the buffer and + hence can only be called once with all the data in the buffer. + + + + + Encode the span of binary data into UTF-8 encoded text represented as base 64. + + The input span which contains binary data that needs to be encoded. + The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input + - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3 + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length". + + + Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3). + + + + + Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64. + The encoded text output is larger than the binary data contained in the input (the operation inflates the data). + + The input span which contains binary data that needs to be encoded. + It needs to be large enough to fit the result of the operation. + The amount of binary data contained within the buffer that needs to be encoded + (and needs to be smaller than the buffer length). + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire buffer + - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input + It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer. + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the symbol contained within the standard format. If the standard format + has not been initialized, returns the provided fallback symbol. + + + + + Fills a buffer with the ASCII character '0' (0x30). + + + + + Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + + + Formats a Boolean as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTimeOffset as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTime as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Decimal as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Double as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Single as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Guid as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Used to provide access to the individual bytes of a GUID. + + + + + Formats a Byte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an SByte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Unt16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a TimeSpan as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Methods to parse common data types to Utf8 strings. + + + + + Parses a Boolean at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTime at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTimeOffset at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset/Local time conversion factory. + + + + + Overflow-safe DateTime factory. + + + + + Parses a Decimal at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Single at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Double at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Guid at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a SByte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Byte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a TimeSpan at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan + parser rejects the string (even if the extra digits are all zeroes.) + + + + + Overflow-safe TryCreateTimeSpan + + + + + Memory represents a contiguous region of arbitrary memory similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 0 index and ending at 'end' index (exclusive). + + The memory manager. + The number of items in the memory. + + Thrown when the specified is negative. + + For internal infrastructure only + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 'start' index and ending at 'end' index (exclusive). + + The memory manager. + The index at which to begin the memory. + The number of items in the memory. + + Thrown when the specified or is negative. + + For internal infrastructure only + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + Determines whether the specified object is equal to the current object. + Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length. + + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Serves as the default hash function. + + + + + Extension methods for Span{T}, Memory{T}, and friends. + + + Extension methods for Span{T}, Memory{T}, and friends. + + + + + Removes all leading and trailing white-space characters from the span. + + + + + Removes all leading white-space characters from the span. + + + + + Removes all trailing white-space characters from the span. + + + + + Removes all leading and trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading and trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all leading occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Indicates whether the specified span contains only white-space characters. + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Reverses the sequence of the elements in the entire span. + + + + + Creates a new span over the target array. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the portion of the target array segment. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=array.Length). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory over the portion of the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Copies the contents of the array into the span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The array to copy items from. + The span to copy items into. + + Thrown when the destination Span is shorter than the source array. + + + + + + Copies the contents of the array into the memory. If the source + and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The array to copy items from. + The memory to copy items into. + + Thrown when the destination is shorter than the source array. + + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Creates a new span over the portion of the target array. + + + + + Returns a value indicating whether the specified occurs within the . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Determines whether this and the specified span have the same characters + when compared using the specified option. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Compares the specified and using the specified , + and returns an integer that indicates their relative position in the sort order. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Reports the zero-based index of the first occurrence of the specified in the current . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Copies the characters from the source span into the destination, converting each character to uppercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to uppercase + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Determines whether the end of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the end of the source span. + One of the enumeration values that determines how the and are compared. + + + + Determines whether the beginning of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the beginning of the source span. + One of the enumeration values that determines how the and are compared. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + Returns default when is null. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + Creates a new over the portion of the target string. + The target string. + Returns default when is null. + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + + Represents a contiguous region of memory, similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + Creates a new memory over the existing object, start, and length. No validation is performed. + The target object. + The index at which to begin the memory. + The number of items in the memory. + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the read-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the readonly-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + Determines whether the specified object is equal to the current object. + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + Returns the hash code for this + + + Gets the state of the memory as individual fields. + The offset. + The count. + The object. + + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the read-only span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns a 0-length read-only span whose base is the null pointer. + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new read-only span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new read-only span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the read-only span. + The number of items in the read-only span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new read-only span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns the specified element of the read-only span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given read-only span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given read-only span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this read-only span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Provides a collection of methods for interoperating with , , + , and . + + + Provides a collection of methods for interoperating with , , + , and . + + + + + Get an array segment from the underlying memory. + If unable to get the array segment, return false with a default array segment. + + + + + Gets an from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + A indicating if it was successful. + + + + Gets an and , from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + The offset from the start of the that the represents. + The length of the that the represents. + A indicating if it was successful. + + + + Creates an view of the given to allow + the to be used in existing APIs that take an . + + The element type of the . + The ReadOnlyMemory to view as an + An view of the given + + + Attempts to get the underlying from a . + The memory that may be wrapping a object. + The string. + The starting location in . + The number of items in . + + + + + Reads a structure of type T out of a read-only span of bytes. + + + + + Reads a structure of type T out of a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Writes a structure of type T into a span of bytes. + + + + + Writes a structure of type T into a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Creates a new memory over the portion of the pre-pinned target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The pre-pinned target array. + The index at which to begin the memory. + The number of items in the memory. + This method should only be called on an array that is already pinned and + that array should not be unpinned while the returned Memory is still in use. + Calling this method on an unpinned array could result in memory corruption. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Casts a Span of one primitive type to Span of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + + Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + Creates a from a . + The . + A representing the same memory as the , but writable. + + must be used with extreme caution. is used + to represent immutable data and other memory that is not meant to be written to; instances created + by should not be written to. The method exists to enable variables typed + as but only used for reading to store a . + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Casts a Span of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Casts a ReadOnlySpan of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Provides a collection of methods for interoperating with + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get an array segment from the underlying . + If unable to get the array segment, return false with a default array segment. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Represents position in non-contiguous set of memory. + Properties of this type should not be interpreted by anything but the type that created it. + + + + + Creates new + + + + + Returns object part of this + + + + + Returns integer part of this + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the span. + The number of items in the span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns a reference to specified element of the Span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Clears the contents of this span. + + + + + Fills the contents of this span with the given value. + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Defines an implicit conversion of a to a + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Implements the copy functionality used by Span and ReadOnlySpan. + + NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation + is only used by portable span. The code must live in code that only compiles + for portable span which means either each individual span implementation + of this shared code file. Other shared SpanHelper.X.cs files are compiled + for both portable and fast span implementations. + + + + + Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits. + + Assumptions: + Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span. + + If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space), + the behavior is undefined. + + + + + + Determine if a type is eligible for storage in unmanaged memory. + Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}() + + + + Equals() on Span and ReadOnlySpan is not supported. Use operator== instead. + + + GetHashCode() on Span and ReadOnlySpan is not supported. + + + Cannot use type '{0}'. Only value types without pointers or references are supported. + + + Destination is too short. + + + Memory<T> has been disposed. + + + Release all references before disposing this instance. + + + Format specifier was invalid. + + + The 'G' format combined with a precision is not supported. + + + Characters following the format symbol must be a number of {0} or less. + + + Precision cannot be larger than {0}. + + + Overlapping spans have mismatching alignment. + + + End position was not reached during enumeration. + + + Unexpected segment type. + + + diff --git a/hMarkdown/bin/Debug/System.Numerics.Vectors.dll b/hMarkdown/bin/Debug/System.Numerics.Vectors.dll new file mode 100644 index 0000000..95a6d99 Binary files /dev/null and b/hMarkdown/bin/Debug/System.Numerics.Vectors.dll differ diff --git a/hMarkdown/bin/Debug/System.Numerics.Vectors.xml b/hMarkdown/bin/Debug/System.Numerics.Vectors.xml new file mode 100644 index 0000000..2c6356e --- /dev/null +++ b/hMarkdown/bin/Debug/System.Numerics.Vectors.xml @@ -0,0 +1,3451 @@ + + + + System.Numerics.Vectors + + + + + A structure encapsulating a 3x2 matrix. + + + + + The first element of the first row + + + + + The second element of the first row + + + + + The first element of the second row + + + + + The second element of the second row + + + + + The first element of the third row + + + + + The second element of the third row + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix3x2 from the given components. + + + + + Creates a translation matrix from the given vector. + + The translation position. + A translation matrix. + + + + Creates a translation matrix from the given X and Y components. + + The X position. + The Y position. + A translation matrix. + + + + Creates a scale matrix from the given X and Y components. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + A scaling matrix. + + + + Creates a scale matrix that is offset by a given center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + The center point. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale. + + The scale to use. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale with an offset from the given center point. + + The scale to use. + The center offset. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale. + + The uniform scale to use. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale with an offset from the given center. + + The uniform scale to use. + The center offset. + A scaling matrix. + + + + Creates a skew matrix from the given angles in radians. + + The X angle, in radians. + The Y angle, in radians. + A skew matrix. + + + + Creates a skew matrix from the given angles in radians and a center point. + + The X angle, in radians. + The Y angle, in radians. + The center point. + A skew matrix. + + + + Creates a rotation matrix using the given rotation in radians. + + The amount of rotation, in radians. + A rotation matrix. + + + + Creates a rotation matrix using the given rotation in radians and a center point. + + The amount of rotation, in radians. + The center point. + A rotation matrix. + + + + Calculates the determinant for this matrix. + The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1). + + The determinant. + + + + Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter. + + The source matrix. + The output matrix. + True if the operation succeeded, False otherwise. + + + + Linearly interpolates from matrix1 to matrix2, based on the third parameter. + + The first source matrix. + The second source matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Returns a boolean indicating whether the given matrices are equal. + + The first source matrix. + The second source matrix. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given matrices are not equal. + + The first source matrix. + The second source matrix. + True if the matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether the matrix is equal to the other given matrix. + + The other matrix to test equality against. + True if this matrix is equal to other; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 4x4 matrix. + + + + + Value at row 1, column 1 of the matrix. + + + + + Value at row 1, column 2 of the matrix. + + + + + Value at row 1, column 3 of the matrix. + + + + + Value at row 1, column 4 of the matrix. + + + + + Value at row 2, column 1 of the matrix. + + + + + Value at row 2, column 2 of the matrix. + + + + + Value at row 2, column 3 of the matrix. + + + + + Value at row 2, column 4 of the matrix. + + + + + Value at row 3, column 1 of the matrix. + + + + + Value at row 3, column 2 of the matrix. + + + + + Value at row 3, column 3 of the matrix. + + + + + Value at row 3, column 4 of the matrix. + + + + + Value at row 4, column 1 of the matrix. + + + + + Value at row 4, column 2 of the matrix. + + + + + Value at row 4, column 3 of the matrix. + + + + + Value at row 4, column 4 of the matrix. + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix4x4 from the given components. + + + + + Constructs a Matrix4x4 from the given Matrix3x2. + + The source Matrix3x2. + + + + Creates a spherical billboard that rotates around a specified object position. + + Position of the object the billboard will rotate around. + Position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard matrix + + + + Creates a cylindrical billboard that rotates around a specified axis. + + Position of the object the billboard will rotate around. + Position of the camera. + Axis to rotate the billboard around. + Forward vector of the camera. + Forward vector of the object. + The created billboard matrix. + + + + Creates a translation matrix. + + The amount to translate in each axis. + The translation matrix. + + + + Creates a translation matrix. + + The amount to translate on the X-axis. + The amount to translate on the Y-axis. + The amount to translate on the Z-axis. + The translation matrix. + + + + Creates a scaling matrix. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The center point. + The scaling matrix. + + + + Creates a scaling matrix. + + The vector containing the amount to scale by on each axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + The vector containing the amount to scale by on each axis. + The center point. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis. + + The uniform scaling factor. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + + The uniform scaling factor. + The center point. + The scaling matrix. + + + + Creates a matrix for rotating points around the X-axis. + + The amount, in radians, by which to rotate around the X-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the X-axis, from a center point. + + The amount, in radians, by which to rotate around the X-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis. + + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis, from a center point. + + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis. + + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis, from a center point. + + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + + Creates a matrix that rotates around an arbitrary vector. + + The axis to rotate around. + The angle to rotate around the given axis, in radians. + The rotation matrix. + + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + + Field of view in the y direction, in radians. + Aspect ratio, defined as view space width divided by height. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a perspective projection matrix from the given view volume dimensions. + + Width of the view volume at the near view plane. + Height of the view volume at the near view plane. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a customized, perspective projection matrix. + + Minimum x-value of the view volume at the near view plane. + Maximum x-value of the view volume at the near view plane. + Minimum y-value of the view volume at the near view plane. + Maximum y-value of the view volume at the near view plane. + Distance to the near view plane. + Distance to of the far view plane. + The perspective projection matrix. + + + + Creates an orthographic perspective matrix from the given view volume dimensions. + + Width of the view volume. + Height of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Builds a customized, orthographic projection matrix. + + Minimum X-value of the view volume. + Maximum X-value of the view volume. + Minimum Y-value of the view volume. + Maximum Y-value of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Creates a view matrix. + + The position of the camera. + The target towards which the camera is pointing. + The direction that is "up" from the camera's point of view. + The view matrix. + + + + Creates a world matrix with the specified parameters. + + The position of the object; used in translation operations. + Forward direction of the object. + Upward direction of the object; usually [0, 1, 0]. + The world matrix. + + + + Creates a rotation matrix from the given Quaternion rotation value. + + The source Quaternion. + The rotation matrix. + + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + + Angle of rotation, in radians, around the Y-axis. + Angle of rotation, in radians, around the X-axis. + Angle of rotation, in radians, around the Z-axis. + The rotation matrix. + + + + Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source. + + The direction from which the light that will cast the shadow is coming. + The Plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + + Creates a Matrix that reflects the coordinate system about a specified Plane. + + The Plane about which to create a reflection. + A new matrix expressing the reflection. + + + + Calculates the determinant of the matrix. + + The determinant of the matrix. + + + + Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix. + + The source matrix to invert. + If successful, contains the inverted matrix. + True if the source matrix could be inverted; False otherwise. + + + + Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix. + If successful, the out parameters will contained the extracted values. + + The source matrix. + The scaling component of the transformation matrix. + The rotation component of the transformation matrix. + The translation component of the transformation matrix + True if the source matrix was successfully decomposed; False otherwise. + + + + Transforms the given matrix by applying the given Quaternion rotation. + + The source matrix to transform. + The rotation to apply. + The transformed matrix. + + + + Transposes the rows and columns of a matrix. + + The source matrix. + The transposed matrix. + + + + Linearly interpolates between the corresponding values of two matrices. + + The first source matrix. + The second source matrix. + The relative weight of the second source matrix. + The interpolated matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a boolean indicating whether the given two matrices are equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given two matrices are not equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether this matrix instance is equal to the other given matrix. + + The matrix to compare this instance to. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 3D Plane + + + + + The normal vector of the Plane. + + + + + The distance of the Plane along its normal from the origin. + + + + + Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + + The X-component of the normal. + The Y-component of the normal. + The Z-component of the normal. + The distance of the Plane along its normal from the origin. + + + + Constructs a Plane from the given normal and distance along the normal from the origin. + + The Plane's normal vector. + The Plane's distance from the origin along its normal vector. + + + + Constructs a Plane from the given Vector4. + + A vector whose first 3 elements describe the normal vector, + and whose W component defines the distance along that normal from the origin. + + + + Creates a Plane that contains the three given points. + + The first point defining the Plane. + The second point defining the Plane. + The third point defining the Plane. + The Plane containing the three points. + + + + Creates a new Plane whose normal vector is the source Plane's normal vector normalized. + + The source Plane. + The normalized Plane. + + + + Transforms a normalized Plane by a Matrix. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The transformation matrix to apply to the Plane. + The transformed Plane. + + + + Transforms a normalized Plane by a Quaternion rotation. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The Quaternion rotation to apply to the Plane. + A new Plane that results from applying the rotation. + + + + Calculates the dot product of a Plane and Vector4. + + The Plane. + The Vector4. + The dot product. + + + + Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane. + + The plane. + The Vector3. + The resulting value. + + + + Returns the dot product of a specified Vector3 and the Normal vector of this Plane. + + The plane. + The Vector3. + The resulting dot product. + + + + Returns a boolean indicating whether the two given Planes are equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Planes are not equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Plane is equal to this Plane instance. + + The Plane to compare this instance to. + True if the other Plane is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Plane instance. + + The Object to compare against. + True if the Object is equal to this Plane; False otherwise. + + + + Returns a String representing this Plane instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a four-dimensional vector (x,y,z,w), + which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2). + + + + + Specifies the X-value of the vector component of the Quaternion. + + + + + Specifies the Y-value of the vector component of the Quaternion. + + + + + Specifies the Z-value of the vector component of the Quaternion. + + + + + Specifies the rotation component of the Quaternion. + + + + + Returns a Quaternion representing no rotation. + + + + + Returns whether the Quaternion is the identity Quaternion. + + + + + Constructs a Quaternion from the given components. + + The X component of the Quaternion. + The Y component of the Quaternion. + The Z component of the Quaternion. + The W component of the Quaternion. + + + + Constructs a Quaternion from the given vector and rotation parts. + + The vector part of the Quaternion. + The rotation part of the Quaternion. + + + + Calculates the length of the Quaternion. + + The computed length of the Quaternion. + + + + Calculates the length squared of the Quaternion. This operation is cheaper than Length(). + + The length squared of the Quaternion. + + + + Divides each component of the Quaternion by the length of the Quaternion. + + The source Quaternion. + The normalized Quaternion. + + + + Creates the conjugate of a specified Quaternion. + + The Quaternion of which to return the conjugate. + A new Quaternion that is the conjugate of the specified one. + + + + Returns the inverse of a Quaternion. + + The source Quaternion. + The inverted Quaternion. + + + + Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector. + + The unit vector to rotate around. + This vector must be normalized before calling this function or the resulting Quaternion will be incorrect. + The angle, in radians, to rotate around the vector. + The created Quaternion. + + + + Creates a new Quaternion from the given yaw, pitch, and roll, in radians. + + The yaw angle, in radians, around the Y-axis. + The pitch angle, in radians, around the X-axis. + The roll angle, in radians, around the Z-axis. + + + + + Creates a Quaternion from the given rotation matrix. + + The rotation matrix. + The created Quaternion. + + + + Calculates the dot product of two Quaternions. + + The first source Quaternion. + The second source Quaternion. + The dot product of the Quaternions. + + + + Interpolates between two quaternions, using spherical linear interpolation. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Linearly interpolates between two quaternions. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation. + + The first Quaternion rotation in the series. + The second Quaternion rotation in the series. + A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Returns a boolean indicating whether the two given Quaternions are equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Quaternions are not equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance. + + The Quaternion to compare this instance to. + True if the other Quaternion is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Quaternion instance. + + The Object to compare against. + True if the Object is equal to this Quaternion; False otherwise. + + + + Returns a String representing this Quaternion instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure describing the layout of an SSE2-sized register. + Contains overlapping fields representing the set of valid numeric types. + Allows the generic Vector'T struct to contain an explicit field layout. + + + + + A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent. + This struct only supports numerical types. This type is intended to be used as a building block for vectorizing + large algorithms. This type is immutable, individual elements cannot be modified. + + + + + Returns the number of elements stored in the vector. This value is hardware dependent. + + + + + Returns a vector containing all zeroes. + + + + + Returns a vector containing all ones. + + + + + Constructs a vector whose components are all value + + + + + Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count. + + + + + Constructs a vector from the given array, starting from the given index. + The array must contain at least Vector'T.Count from the given index. + + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + If the destination array is null + If number of elements in source vector is greater than those available in destination array + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + The index to start copying to + If the destination array is null + If index is greater than end of the array or index is less than zero + If number of elements in source vector is greater than those available in destination array + + + + Returns the element at the given index. + + + + + Returns a boolean indicating whether the given Object is equal to this vector instance. + + The Object to compare against. + True if the Object is equal to this vector; False otherwise. + + + + Returns a boolean indicating whether the given vector is equal to this vector instance. + + The vector to compare this instance to. + True if the other vector is equal to this instance; False otherwise. + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a String representing this vector. + + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if left and right are not equal; False otherwise. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another. + + + + + Widens a Vector{Byte} into two Vector{UInt16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt16} into two Vector{UInt32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt32} into two Vector{UInt64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{SByte} into two Vector{Int16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int16} into two Vector{Int32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int32} into two Vector{Int64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Single} into two Vector{Double}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Narrows two Vector{UInt16}'s into one Vector{Byte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Byte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt32}'s into one Vector{UInt16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt64}'s into one Vector{UInt32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int16}'s into one Vector{SByte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{SByte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int32}'s into one Vector{Int16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int64}'s into one Vector{Int32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Double}'s into one Vector{Single}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Single} containing elements narrowed from the source vectors. + + + + + Converts a Vector{Int32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{Int64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{Int32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{UInt32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{Int64}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{UInt64}. + + The source vector. + The converted vector. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if any element pairs are equal; False if no element pairs are equal. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right. + elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all of the elements in left are greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support. + + + + + Returns a new vector whose elements are the absolute values of the given vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The minimum vector. + + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The maximum vector. + + + + Returns the dot product of two vectors. + + The first source vector. + The second source vector. + The dot product. + + + + Returns a new vector whose elements are the square roots of the given vector's elements. + + The source vector. + The square root vector. + + + + Creates a new vector whose values are the sum of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Creates a new vector whose values are the difference between each pairs of elements in the given vectors. + + The first source vector. + The second source vector. + The difference vector. + + + + Creates a new vector whose values are the product of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The source vector. + The scalar factor. + The scaled vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The scalar factor. + The source vector. + The scaled vector. + + + + Returns a new vector whose values are the result of dividing the first vector's elements + by the corresponding elements in the second vector. + + The first source vector. + The second source vector. + The divided vector. + + + + Returns a new vector whose elements are the given vector's elements negated. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + A structure encapsulating two single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0). + + + + + Returns the vector (1,1). + + + + + Returns the vector (1,0). + + + + + Returns the vector (0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector2 instance. + + The Object to compare against. + True if the Object is equal to this Vector2; False otherwise. + + + + Returns a String representing this Vector2 instance. + + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + + + + Copies the contents of the vector into the given array. + + The destination array. + + + + Copies the contents of the vector into the given array, starting from the given index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array + or if there are not enough elements to copy. + + + + Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance. + + The Vector2 to compare this instance to. + True if the other Vector2 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors + + The first source vector + The second source vector + The maximized vector + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating three single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0). + + + + + Returns the vector (1,1,1). + + + + + Returns the vector (1,0,0). + + + + + Returns the vector (0,1,0). + + + + + Returns the vector (0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector3 instance. + + The Object to compare against. + True if the Object is equal to this Vector3; False otherwise. + + + + Returns a String representing this Vector3 instance. + + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Computes the cross product of two vectors. + + The first vector. + The second vector. + The cross product. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a Vector3 from the given Vector2 and a third value. + + The Vector to extract X and Y components from. + The Z component. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + The Z component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance. + + The Vector3 to compare this instance to. + True if the other Vector3 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating four single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0,0). + + + + + Returns the vector (1,1,1,1). + + + + + Returns the vector (1,0,0,0). + + + + + Returns the vector (0,1,0,0). + + + + + Returns the vector (0,0,1,0). + + + + + Returns the vector (0,0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector4 instance. + + The Object to compare against. + True if the Object is equal to this Vector4; False otherwise. + + + + Returns a String representing this Vector4 instance. + + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. This operation is cheaper than Length(). + + The vector's length. + + + + Returns the length of the vector squared. + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + The W component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + W component. + X component. + Y component. + Z component. + + + + Constructs a Vector4 from the given Vector2 and a Z and W component. + + The vector to use as the X and Y components. + The Z component. + The W component. + + + + Constructs a Vector4 from the given Vector3 and a W component. + + The vector to use as the X, Y, and Z components. + The W component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance. + + The Vector4 to compare this instance to. + True if the other Vector4 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + Index was out of bounds: + + + Number of elements in source vector is greater than the destination array + + + The method was called with a null array argument. + + + Specified type is not supported + + + At least {0} element(s) are expected in the parameter "{1}". + + + diff --git a/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..7795684 Binary files /dev/null and b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7acab80 --- /dev/null +++ b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,353 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + + Contains generic, low-level functionality for manipulating pointers. + + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A reference to the value to copy. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A pointer to the value to copy. + + + + Returns a pointer to the given by-ref parameter. + + The type of object. + The object whose pointer is obtained. + A pointer to the given value. + + + + Returns the size of an object of the given type parameter. + + The type of object whose size is retrieved. + The size of an object of type . + + + + Casts the given object to the specified type, performs no dynamic type checking. + + The type which the object will be cast to. + The object to cast. + The original object, casted to the given type. + + + + Reinterprets the given location as a reference to a value of type . + + The type of the interpreted location. + The location of the value to reference. + A reference to a value of type . + + + + Reinterprets the given read-only reference as a reference. + + The type of reference. + The read-only reference to reinterpret. + A reference to a value of type . + + + + Reinterprets the given reference as a reference to a value of type . + + The type of reference to reinterpret. + The desired type of the reference. + The reference to reinterpret. + A reference to a value of type . + + + + Returns a reference to the value type contained with the specified box object. + + The type of the value type contained within the box. + The boxed value type. + A reference to a value of type in the box object. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given pointer. + + The type of reference. + The pointer to add the offset to. + The offset to add. + A new pointer that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Determines the byte offset from origin to target from the given references. + + The type of reference. + The reference to origin. + The reference to target. + Byte offset from origin to target i.e. - . + + + + Determines whether the specified references point to the same location. + + The first reference to compare. + The second reference to compare. + true if and point to the same location; otherwise false. + + + + Determines whether the memory address referenced by is greater than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is greater than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Determines whether the memory address referenced by is less than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is less than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Returns if a given reference to a value of type is a null reference. + + The reference to check. + This check is conceptually similar to "(void*)(&source) == nullptr". + + + + Returns a reference to a value of type that is a null reference. + + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + diff --git a/hMarkdown/bin/Debug/hMarkdown.exe b/hMarkdown/bin/Debug/hMarkdown.exe new file mode 100644 index 0000000..cd76b68 Binary files /dev/null and b/hMarkdown/bin/Debug/hMarkdown.exe differ diff --git a/hMarkdown/bin/Debug/hMarkdown.exe.config b/hMarkdown/bin/Debug/hMarkdown.exe.config new file mode 100644 index 0000000..3d9ac87 --- /dev/null +++ b/hMarkdown/bin/Debug/hMarkdown.exe.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hMarkdown/bin/Release/Markdig.xml b/hMarkdown/bin/Release/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/hMarkdown/bin/Release/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/hMarkdown/bin/Release/System.Buffers.xml b/hMarkdown/bin/Release/System.Buffers.xml new file mode 100644 index 0000000..fe1f651 --- /dev/null +++ b/hMarkdown/bin/Release/System.Buffers.xml @@ -0,0 +1,173 @@ + + + + System.Buffers + + + + + Provides a resource pool that enables reusing instances of type . + + + + Renting and returning buffers with an can increase performance + in situations where arrays are created and destroyed frequently, resulting in significant + memory pressure on the garbage collector. + + + This class is thread-safe. All members may be used by multiple threads concurrently. + + + + + The lazily-initialized shared pool instance. + + + + Retrieves a shared instance. + + + The shared pool provides a default implementation of + that's intended for general applicability. It maintains arrays of multiple sizes, and + may hand back a larger array than was actually requested, but will never hand back a smaller + array than was requested. Renting a buffer from it with will result in an + existing buffer being taken from the pool if an appropriate buffer is available or in a new + buffer being allocated if one is not available. + + + + Ensures that has been initialized to a pool and returns it. + + + + Creates a new instance using default configuration options. + + A new instance. + + + + Creates a new instance using custom configuration options. + + The maximum length of array instances that may be stored in the pool. + + The maximum number of array instances that may be stored in each bucket in the pool. The pool + groups arrays of similar lengths into buckets for faster access. + + A new instance with the specified configuration options. + + The created pool will group arrays into buckets, with no more than + in each bucket and with those arrays not exceeding in length. + + + + + Retrieves a buffer that is at least the requested length. + + The minimum length of the array needed. + + An that is at least in length. + + + This buffer is loaned to the caller and should be returned to the same pool via + so that it may be reused in subsequent usage of . + It is not a fatal error to not return a rented buffer, but failure to do so may lead to + decreased application performance, as the pool may need to create a new buffer to replace + the one lost. + + + + + Returns to the pool an array that was previously obtained via on the same + instance. + + + The buffer previously obtained from to return to the pool. + + + If true and if the pool will store the buffer to enable subsequent reuse, + will clear of its contents so that a subsequent consumer via + will not see the previous consumer's content. If false or if the pool will release the buffer, + the array's contents are left unchanged. + + + Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer + and must not use it. The reference returned from a given call to must only be + returned via once. The default + may hold onto the returned buffer in order to rent it again, or it may release the returned buffer + if it's determined that the pool already has enough buffers stored. + + + + The reason for a BufferAllocated event. + + + The pool is allocating a buffer to be pooled in a bucket. + + + The requested buffer size was too large to be pooled. + + + The pool has already allocated for pooling as many buffers of a particular size as it's allowed. + + + + Event for when a buffer is rented. This is invoked once for every successful call to Rent, + regardless of whether a buffer is allocated or a buffer is taken from the pool. In a + perfect situation where all rented buffers are returned, we expect to see the number + of BufferRented events exactly match the number of BuferReturned events, with the number + of BufferAllocated events being less than or equal to those numbers (ideally significantly + less than). + + + + + Event for when a buffer is allocated by the pool. In an ideal situation, the number + of BufferAllocated events is significantly smaller than the number of BufferRented and + BufferReturned events. + + + + + Event raised when a buffer is returned to the pool. This event is raised regardless of whether + the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned + events exactly matches the number of BufferRented events. + + + + The default maximum length of each array in the pool (2^20). + + + The default maximum number of arrays per bucket that are available for rent. + + + Lazily-allocated empty array used when arrays of length 0 are requested. + + + Gets an ID for the pool to use with events. + + + Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd. + + + + Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length. + + + + Gets an ID for the bucket to use with events. + + + Takes an array from the bucket. If the bucket is empty, returns null. + + + + Attempts to return the buffer to the bucket. If successful, the buffer will be stored + in the bucket and true will be returned; otherwise, the buffer won't be stored, and false + will be returned. + + + + The buffer is not associated with this pool and may not be returned to it. + + + diff --git a/hMarkdown/bin/Release/System.Memory.xml b/hMarkdown/bin/Release/System.Memory.xml new file mode 100644 index 0000000..ff0619c --- /dev/null +++ b/hMarkdown/bin/Release/System.Memory.xml @@ -0,0 +1,3489 @@ + + + + System.Memory + + + + + Reads bytes as primitives with specific endianness + + + For native formats, MemoryExtensions.Read{T}; should be used. + Use these helpers when you need to read specific endinanness. + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip sbyte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip byte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt64, return false. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt64, return false. + + + + + Writes an Int16 into a span of bytes as big endian. + + + + + Writes an Int32 into a span of bytes as big endian. + + + + + Writes an Int64 into a span of bytes as big endian. + + + + + Write a UInt16 into a span of bytes as big endian. + + + + + Write a UInt32 into a span of bytes as big endian. + + + + + Write a UInt64 into a span of bytes as big endian. + + + + + Writes an Int16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int16 into a span of bytes as little endian. + + + + + Writes an Int32 into a span of bytes as little endian. + + + + + Writes an Int64 into a span of bytes as little endian. + + + + + Write a UInt16 into a span of bytes as little endian. + + + + + Write a UInt32 into a span of bytes as little endian. + + + + + Write a UInt64 into a span of bytes as little endian. + + + + + Writes an Int16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Extension methods for + + + + + Returns position of first occurrence of item in the + + + + + Copy the to the specified . + + The source . + The destination . + + + + Converts the to an array + + + + + Writes contents of to + + + + + Represents a sink + + + + + Notifies that amount of data was written to / + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Owner of Memory that is responsible for disposing the underlying memory appropriately. + + + + + Returns a Memory. + + + + + Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them. + + + + + Call this method to indicate that the IPinnable object can not be moved by the garbage collector. + The address of the pinned object can be taken. + The offset to the element within the memory at which the returned points to. + + + + + Call this method to indicate that the IPinnable object no longer needs to be pinned. + The garbage collector is free to move the object now. + + + + + A handle for the memory. + + + + + Creates a new memory handle for the memory. + + pointer to memory + reference to manually managed object, or default if there is no memory manager + handle used to pin array buffers + + + + Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change. + + + + + Frees the pinned handle and releases IPinnable. + + + + + Manager of that provides the implementation. + + + + + Returns a . + + + + + Returns a span wrapping the underlying memory. + + + + + Returns a handle to the memory that has been pinned and hence its address can be taken. + + The offset to the element within the memory at which the returned points to. (default = 0) + + + + Lets the garbage collector know that the object is free to be moved now. + + + + + Returns a for the current . + + The element count in the memory, starting at offset 0. + + + + Returns a for the current . + + The offset to the element which the returned memory starts at. + The element count in the memory, starting at element offset . + + + + Returns an array segment. + Returns the default array segment if not overriden. + + + + + Implements IDisposable. + + + + + Clean up of any leftover managed and unmanaged resources. + + + + + Represents a pool of memory blocks. + + + + + Returns a singleton instance of a MemoryPool based on arrays. + + + + + Returns a memory block capable of holding at least elements of T. + + If -1 is passed, this is set to a default value for the pool. + + + + Returns the maximum buffer size supported by this pool. + + + + + Constructs a new instance of a memory pool. + + + + + Frees all resources used by the memory pool. + + + + + Frees all resources used by the memory pool. + + + + + + This enum defines the various potential status that can be returned from Span-based operations + that support processing of input contained in multiple discontiguous buffers. + + + + + The entire input buffer has been processed and the operation is complete. + + + + + The input is partially processed, up to what could fit into the destination buffer. + The caller can enlarge the destination buffer, slice the buffers appropriately, and retry. + + + + + The input is partially processed, up to the last valid chunk of the input that could be consumed. + The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry. + + + + + The input contained invalid bytes which could not be processed. If the input is partially processed, + the destination contains the partial result. This guarantees that no additional data appended to the input + will make the invalid sequence valid. + + + + + Represents a sequence that can read a sequential series of . + + + + + Returns empty + + + + + Length of the . + + + + + Determines if the is empty. + + + + + Determines if the contains a single segment. + + + + + Gets from the first segment. + + + + + A position to the start of the . + + + + + A position to the end of the + + + + + Creates an instance of from linked memory list represented by start and end segments + and corresponding indexes in them. + + + + + Creates an instance of from the . + + + + + Creates an instance of from the , start and index. + + + + + Creates an instance of from the . + Consumer is expected to manage lifetime of memory until is not used anymore. + + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at ', with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The starting (inclusive) at which to begin this slice. + The ending (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The starting (inclusive) at which to begin this slice. + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The start index at which to begin this slice. + + + + + + + Returns an enumerator over the + + + + + Returns a new at an from the start of the sequence. + + + + + Returns a new at an from the + + + + + Tries to retrieve next segment after and return its contents in . + Returns false if end of was reached otherwise true. + Sets to the beginning of next segment if is set to true. + + + + + An enumerator over the + + + + Initialize the enumerator. + The to enumerate. + + + + The current + + + + + Moves to the next in the + + + + + + Represents a linked list of nodes. + + + + + The value for current node. + + + + + The next node. + + + + + The sum of node length before current. + + + + + Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X') + and an optional precision ranging from 0..99, or the special value NoPrecision. + + + + + Precision values for format that don't use a precision, or for when the precision is to be unspecified. + + + + + The maximum valid precision value. + + + + + The character component of the format. + + + + + The precision component of the format. Ranges from 0..9 or the special value NoPrecision. + + + + + true if Precision is a value other than NoPrecision + + + + + true if the StandardFormat == default(StandardFormat) + + + + + Create a StandardFormat. + + A type-specific formatting character such as 'G', 'D' or 'X' + An optional precision ranging from 0..9 or the special value NoPrecision (the default) + + + + Converts a character to a StandardFormat using the NoPrecision precision. + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Compute a hash code. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns the format in classic .NET format. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns false if both the Symbol and Precision are equal. + + + + + Convert between binary data and UTF-8 encoded text that is represented in base 64. + + + + + Decode the span of UTF-8 encoded text represented as base 64 into binary data. + If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4. + + The input span which contains UTF-8 encoded text in base 64 that needs to be decoded. + The output span which contains the result of the operation, i.e. the decoded binary data. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input + - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true. + + + + + Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length". + + + Thrown when the specified is less than 0. + + + + + Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data. + The decoded binary output is smaller than the text data contained in the input (the operation deflates the data). + If the input is not a multiple of 4, it will not decode any. + + The input span which contains the base 64 text data that needs to be decoded. + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4). + It does not return DestinationTooSmall since that is not possible for base 64 decoding. + It does not return NeedMoreData since this method tramples the data in the buffer and + hence can only be called once with all the data in the buffer. + + + + + Encode the span of binary data into UTF-8 encoded text represented as base 64. + + The input span which contains binary data that needs to be encoded. + The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input + - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3 + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length". + + + Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3). + + + + + Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64. + The encoded text output is larger than the binary data contained in the input (the operation inflates the data). + + The input span which contains binary data that needs to be encoded. + It needs to be large enough to fit the result of the operation. + The amount of binary data contained within the buffer that needs to be encoded + (and needs to be smaller than the buffer length). + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire buffer + - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input + It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer. + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the symbol contained within the standard format. If the standard format + has not been initialized, returns the provided fallback symbol. + + + + + Fills a buffer with the ASCII character '0' (0x30). + + + + + Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + + + Formats a Boolean as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTimeOffset as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTime as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Decimal as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Double as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Single as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Guid as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Used to provide access to the individual bytes of a GUID. + + + + + Formats a Byte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an SByte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Unt16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a TimeSpan as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Methods to parse common data types to Utf8 strings. + + + + + Parses a Boolean at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTime at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTimeOffset at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset/Local time conversion factory. + + + + + Overflow-safe DateTime factory. + + + + + Parses a Decimal at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Single at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Double at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Guid at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a SByte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Byte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a TimeSpan at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan + parser rejects the string (even if the extra digits are all zeroes.) + + + + + Overflow-safe TryCreateTimeSpan + + + + + Memory represents a contiguous region of arbitrary memory similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 0 index and ending at 'end' index (exclusive). + + The memory manager. + The number of items in the memory. + + Thrown when the specified is negative. + + For internal infrastructure only + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 'start' index and ending at 'end' index (exclusive). + + The memory manager. + The index at which to begin the memory. + The number of items in the memory. + + Thrown when the specified or is negative. + + For internal infrastructure only + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + Determines whether the specified object is equal to the current object. + Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length. + + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Serves as the default hash function. + + + + + Extension methods for Span{T}, Memory{T}, and friends. + + + Extension methods for Span{T}, Memory{T}, and friends. + + + + + Removes all leading and trailing white-space characters from the span. + + + + + Removes all leading white-space characters from the span. + + + + + Removes all trailing white-space characters from the span. + + + + + Removes all leading and trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading and trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all leading occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Indicates whether the specified span contains only white-space characters. + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Reverses the sequence of the elements in the entire span. + + + + + Creates a new span over the target array. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the portion of the target array segment. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=array.Length). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory over the portion of the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Copies the contents of the array into the span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The array to copy items from. + The span to copy items into. + + Thrown when the destination Span is shorter than the source array. + + + + + + Copies the contents of the array into the memory. If the source + and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The array to copy items from. + The memory to copy items into. + + Thrown when the destination is shorter than the source array. + + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Creates a new span over the portion of the target array. + + + + + Returns a value indicating whether the specified occurs within the . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Determines whether this and the specified span have the same characters + when compared using the specified option. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Compares the specified and using the specified , + and returns an integer that indicates their relative position in the sort order. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Reports the zero-based index of the first occurrence of the specified in the current . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Copies the characters from the source span into the destination, converting each character to uppercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to uppercase + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Determines whether the end of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the end of the source span. + One of the enumeration values that determines how the and are compared. + + + + Determines whether the beginning of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the beginning of the source span. + One of the enumeration values that determines how the and are compared. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + Returns default when is null. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + Creates a new over the portion of the target string. + The target string. + Returns default when is null. + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + + Represents a contiguous region of memory, similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + Creates a new memory over the existing object, start, and length. No validation is performed. + The target object. + The index at which to begin the memory. + The number of items in the memory. + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the read-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the readonly-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + Determines whether the specified object is equal to the current object. + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + Returns the hash code for this + + + Gets the state of the memory as individual fields. + The offset. + The count. + The object. + + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the read-only span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns a 0-length read-only span whose base is the null pointer. + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new read-only span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new read-only span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the read-only span. + The number of items in the read-only span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new read-only span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns the specified element of the read-only span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given read-only span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given read-only span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this read-only span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Provides a collection of methods for interoperating with , , + , and . + + + Provides a collection of methods for interoperating with , , + , and . + + + + + Get an array segment from the underlying memory. + If unable to get the array segment, return false with a default array segment. + + + + + Gets an from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + A indicating if it was successful. + + + + Gets an and , from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + The offset from the start of the that the represents. + The length of the that the represents. + A indicating if it was successful. + + + + Creates an view of the given to allow + the to be used in existing APIs that take an . + + The element type of the . + The ReadOnlyMemory to view as an + An view of the given + + + Attempts to get the underlying from a . + The memory that may be wrapping a object. + The string. + The starting location in . + The number of items in . + + + + + Reads a structure of type T out of a read-only span of bytes. + + + + + Reads a structure of type T out of a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Writes a structure of type T into a span of bytes. + + + + + Writes a structure of type T into a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Creates a new memory over the portion of the pre-pinned target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The pre-pinned target array. + The index at which to begin the memory. + The number of items in the memory. + This method should only be called on an array that is already pinned and + that array should not be unpinned while the returned Memory is still in use. + Calling this method on an unpinned array could result in memory corruption. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Casts a Span of one primitive type to Span of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + + Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + Creates a from a . + The . + A representing the same memory as the , but writable. + + must be used with extreme caution. is used + to represent immutable data and other memory that is not meant to be written to; instances created + by should not be written to. The method exists to enable variables typed + as but only used for reading to store a . + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Casts a Span of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Casts a ReadOnlySpan of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Provides a collection of methods for interoperating with + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get an array segment from the underlying . + If unable to get the array segment, return false with a default array segment. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Represents position in non-contiguous set of memory. + Properties of this type should not be interpreted by anything but the type that created it. + + + + + Creates new + + + + + Returns object part of this + + + + + Returns integer part of this + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the span. + The number of items in the span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns a reference to specified element of the Span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Clears the contents of this span. + + + + + Fills the contents of this span with the given value. + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Defines an implicit conversion of a to a + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Implements the copy functionality used by Span and ReadOnlySpan. + + NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation + is only used by portable span. The code must live in code that only compiles + for portable span which means either each individual span implementation + of this shared code file. Other shared SpanHelper.X.cs files are compiled + for both portable and fast span implementations. + + + + + Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits. + + Assumptions: + Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span. + + If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space), + the behavior is undefined. + + + + + + Determine if a type is eligible for storage in unmanaged memory. + Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}() + + + + Equals() on Span and ReadOnlySpan is not supported. Use operator== instead. + + + GetHashCode() on Span and ReadOnlySpan is not supported. + + + Cannot use type '{0}'. Only value types without pointers or references are supported. + + + Destination is too short. + + + Memory<T> has been disposed. + + + Release all references before disposing this instance. + + + Format specifier was invalid. + + + The 'G' format combined with a precision is not supported. + + + Characters following the format symbol must be a number of {0} or less. + + + Precision cannot be larger than {0}. + + + Overlapping spans have mismatching alignment. + + + End position was not reached during enumeration. + + + Unexpected segment type. + + + diff --git a/hMarkdown/bin/Release/System.Numerics.Vectors.xml b/hMarkdown/bin/Release/System.Numerics.Vectors.xml new file mode 100644 index 0000000..2c6356e --- /dev/null +++ b/hMarkdown/bin/Release/System.Numerics.Vectors.xml @@ -0,0 +1,3451 @@ + + + + System.Numerics.Vectors + + + + + A structure encapsulating a 3x2 matrix. + + + + + The first element of the first row + + + + + The second element of the first row + + + + + The first element of the second row + + + + + The second element of the second row + + + + + The first element of the third row + + + + + The second element of the third row + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix3x2 from the given components. + + + + + Creates a translation matrix from the given vector. + + The translation position. + A translation matrix. + + + + Creates a translation matrix from the given X and Y components. + + The X position. + The Y position. + A translation matrix. + + + + Creates a scale matrix from the given X and Y components. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + A scaling matrix. + + + + Creates a scale matrix that is offset by a given center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + The center point. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale. + + The scale to use. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale with an offset from the given center point. + + The scale to use. + The center offset. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale. + + The uniform scale to use. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale with an offset from the given center. + + The uniform scale to use. + The center offset. + A scaling matrix. + + + + Creates a skew matrix from the given angles in radians. + + The X angle, in radians. + The Y angle, in radians. + A skew matrix. + + + + Creates a skew matrix from the given angles in radians and a center point. + + The X angle, in radians. + The Y angle, in radians. + The center point. + A skew matrix. + + + + Creates a rotation matrix using the given rotation in radians. + + The amount of rotation, in radians. + A rotation matrix. + + + + Creates a rotation matrix using the given rotation in radians and a center point. + + The amount of rotation, in radians. + The center point. + A rotation matrix. + + + + Calculates the determinant for this matrix. + The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1). + + The determinant. + + + + Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter. + + The source matrix. + The output matrix. + True if the operation succeeded, False otherwise. + + + + Linearly interpolates from matrix1 to matrix2, based on the third parameter. + + The first source matrix. + The second source matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Returns a boolean indicating whether the given matrices are equal. + + The first source matrix. + The second source matrix. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given matrices are not equal. + + The first source matrix. + The second source matrix. + True if the matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether the matrix is equal to the other given matrix. + + The other matrix to test equality against. + True if this matrix is equal to other; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 4x4 matrix. + + + + + Value at row 1, column 1 of the matrix. + + + + + Value at row 1, column 2 of the matrix. + + + + + Value at row 1, column 3 of the matrix. + + + + + Value at row 1, column 4 of the matrix. + + + + + Value at row 2, column 1 of the matrix. + + + + + Value at row 2, column 2 of the matrix. + + + + + Value at row 2, column 3 of the matrix. + + + + + Value at row 2, column 4 of the matrix. + + + + + Value at row 3, column 1 of the matrix. + + + + + Value at row 3, column 2 of the matrix. + + + + + Value at row 3, column 3 of the matrix. + + + + + Value at row 3, column 4 of the matrix. + + + + + Value at row 4, column 1 of the matrix. + + + + + Value at row 4, column 2 of the matrix. + + + + + Value at row 4, column 3 of the matrix. + + + + + Value at row 4, column 4 of the matrix. + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix4x4 from the given components. + + + + + Constructs a Matrix4x4 from the given Matrix3x2. + + The source Matrix3x2. + + + + Creates a spherical billboard that rotates around a specified object position. + + Position of the object the billboard will rotate around. + Position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard matrix + + + + Creates a cylindrical billboard that rotates around a specified axis. + + Position of the object the billboard will rotate around. + Position of the camera. + Axis to rotate the billboard around. + Forward vector of the camera. + Forward vector of the object. + The created billboard matrix. + + + + Creates a translation matrix. + + The amount to translate in each axis. + The translation matrix. + + + + Creates a translation matrix. + + The amount to translate on the X-axis. + The amount to translate on the Y-axis. + The amount to translate on the Z-axis. + The translation matrix. + + + + Creates a scaling matrix. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The center point. + The scaling matrix. + + + + Creates a scaling matrix. + + The vector containing the amount to scale by on each axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + The vector containing the amount to scale by on each axis. + The center point. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis. + + The uniform scaling factor. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + + The uniform scaling factor. + The center point. + The scaling matrix. + + + + Creates a matrix for rotating points around the X-axis. + + The amount, in radians, by which to rotate around the X-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the X-axis, from a center point. + + The amount, in radians, by which to rotate around the X-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis. + + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis, from a center point. + + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis. + + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis, from a center point. + + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + + Creates a matrix that rotates around an arbitrary vector. + + The axis to rotate around. + The angle to rotate around the given axis, in radians. + The rotation matrix. + + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + + Field of view in the y direction, in radians. + Aspect ratio, defined as view space width divided by height. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a perspective projection matrix from the given view volume dimensions. + + Width of the view volume at the near view plane. + Height of the view volume at the near view plane. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a customized, perspective projection matrix. + + Minimum x-value of the view volume at the near view plane. + Maximum x-value of the view volume at the near view plane. + Minimum y-value of the view volume at the near view plane. + Maximum y-value of the view volume at the near view plane. + Distance to the near view plane. + Distance to of the far view plane. + The perspective projection matrix. + + + + Creates an orthographic perspective matrix from the given view volume dimensions. + + Width of the view volume. + Height of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Builds a customized, orthographic projection matrix. + + Minimum X-value of the view volume. + Maximum X-value of the view volume. + Minimum Y-value of the view volume. + Maximum Y-value of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Creates a view matrix. + + The position of the camera. + The target towards which the camera is pointing. + The direction that is "up" from the camera's point of view. + The view matrix. + + + + Creates a world matrix with the specified parameters. + + The position of the object; used in translation operations. + Forward direction of the object. + Upward direction of the object; usually [0, 1, 0]. + The world matrix. + + + + Creates a rotation matrix from the given Quaternion rotation value. + + The source Quaternion. + The rotation matrix. + + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + + Angle of rotation, in radians, around the Y-axis. + Angle of rotation, in radians, around the X-axis. + Angle of rotation, in radians, around the Z-axis. + The rotation matrix. + + + + Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source. + + The direction from which the light that will cast the shadow is coming. + The Plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + + Creates a Matrix that reflects the coordinate system about a specified Plane. + + The Plane about which to create a reflection. + A new matrix expressing the reflection. + + + + Calculates the determinant of the matrix. + + The determinant of the matrix. + + + + Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix. + + The source matrix to invert. + If successful, contains the inverted matrix. + True if the source matrix could be inverted; False otherwise. + + + + Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix. + If successful, the out parameters will contained the extracted values. + + The source matrix. + The scaling component of the transformation matrix. + The rotation component of the transformation matrix. + The translation component of the transformation matrix + True if the source matrix was successfully decomposed; False otherwise. + + + + Transforms the given matrix by applying the given Quaternion rotation. + + The source matrix to transform. + The rotation to apply. + The transformed matrix. + + + + Transposes the rows and columns of a matrix. + + The source matrix. + The transposed matrix. + + + + Linearly interpolates between the corresponding values of two matrices. + + The first source matrix. + The second source matrix. + The relative weight of the second source matrix. + The interpolated matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a boolean indicating whether the given two matrices are equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given two matrices are not equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether this matrix instance is equal to the other given matrix. + + The matrix to compare this instance to. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 3D Plane + + + + + The normal vector of the Plane. + + + + + The distance of the Plane along its normal from the origin. + + + + + Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + + The X-component of the normal. + The Y-component of the normal. + The Z-component of the normal. + The distance of the Plane along its normal from the origin. + + + + Constructs a Plane from the given normal and distance along the normal from the origin. + + The Plane's normal vector. + The Plane's distance from the origin along its normal vector. + + + + Constructs a Plane from the given Vector4. + + A vector whose first 3 elements describe the normal vector, + and whose W component defines the distance along that normal from the origin. + + + + Creates a Plane that contains the three given points. + + The first point defining the Plane. + The second point defining the Plane. + The third point defining the Plane. + The Plane containing the three points. + + + + Creates a new Plane whose normal vector is the source Plane's normal vector normalized. + + The source Plane. + The normalized Plane. + + + + Transforms a normalized Plane by a Matrix. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The transformation matrix to apply to the Plane. + The transformed Plane. + + + + Transforms a normalized Plane by a Quaternion rotation. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The Quaternion rotation to apply to the Plane. + A new Plane that results from applying the rotation. + + + + Calculates the dot product of a Plane and Vector4. + + The Plane. + The Vector4. + The dot product. + + + + Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane. + + The plane. + The Vector3. + The resulting value. + + + + Returns the dot product of a specified Vector3 and the Normal vector of this Plane. + + The plane. + The Vector3. + The resulting dot product. + + + + Returns a boolean indicating whether the two given Planes are equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Planes are not equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Plane is equal to this Plane instance. + + The Plane to compare this instance to. + True if the other Plane is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Plane instance. + + The Object to compare against. + True if the Object is equal to this Plane; False otherwise. + + + + Returns a String representing this Plane instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a four-dimensional vector (x,y,z,w), + which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2). + + + + + Specifies the X-value of the vector component of the Quaternion. + + + + + Specifies the Y-value of the vector component of the Quaternion. + + + + + Specifies the Z-value of the vector component of the Quaternion. + + + + + Specifies the rotation component of the Quaternion. + + + + + Returns a Quaternion representing no rotation. + + + + + Returns whether the Quaternion is the identity Quaternion. + + + + + Constructs a Quaternion from the given components. + + The X component of the Quaternion. + The Y component of the Quaternion. + The Z component of the Quaternion. + The W component of the Quaternion. + + + + Constructs a Quaternion from the given vector and rotation parts. + + The vector part of the Quaternion. + The rotation part of the Quaternion. + + + + Calculates the length of the Quaternion. + + The computed length of the Quaternion. + + + + Calculates the length squared of the Quaternion. This operation is cheaper than Length(). + + The length squared of the Quaternion. + + + + Divides each component of the Quaternion by the length of the Quaternion. + + The source Quaternion. + The normalized Quaternion. + + + + Creates the conjugate of a specified Quaternion. + + The Quaternion of which to return the conjugate. + A new Quaternion that is the conjugate of the specified one. + + + + Returns the inverse of a Quaternion. + + The source Quaternion. + The inverted Quaternion. + + + + Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector. + + The unit vector to rotate around. + This vector must be normalized before calling this function or the resulting Quaternion will be incorrect. + The angle, in radians, to rotate around the vector. + The created Quaternion. + + + + Creates a new Quaternion from the given yaw, pitch, and roll, in radians. + + The yaw angle, in radians, around the Y-axis. + The pitch angle, in radians, around the X-axis. + The roll angle, in radians, around the Z-axis. + + + + + Creates a Quaternion from the given rotation matrix. + + The rotation matrix. + The created Quaternion. + + + + Calculates the dot product of two Quaternions. + + The first source Quaternion. + The second source Quaternion. + The dot product of the Quaternions. + + + + Interpolates between two quaternions, using spherical linear interpolation. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Linearly interpolates between two quaternions. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation. + + The first Quaternion rotation in the series. + The second Quaternion rotation in the series. + A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Returns a boolean indicating whether the two given Quaternions are equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Quaternions are not equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance. + + The Quaternion to compare this instance to. + True if the other Quaternion is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Quaternion instance. + + The Object to compare against. + True if the Object is equal to this Quaternion; False otherwise. + + + + Returns a String representing this Quaternion instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure describing the layout of an SSE2-sized register. + Contains overlapping fields representing the set of valid numeric types. + Allows the generic Vector'T struct to contain an explicit field layout. + + + + + A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent. + This struct only supports numerical types. This type is intended to be used as a building block for vectorizing + large algorithms. This type is immutable, individual elements cannot be modified. + + + + + Returns the number of elements stored in the vector. This value is hardware dependent. + + + + + Returns a vector containing all zeroes. + + + + + Returns a vector containing all ones. + + + + + Constructs a vector whose components are all value + + + + + Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count. + + + + + Constructs a vector from the given array, starting from the given index. + The array must contain at least Vector'T.Count from the given index. + + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + If the destination array is null + If number of elements in source vector is greater than those available in destination array + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + The index to start copying to + If the destination array is null + If index is greater than end of the array or index is less than zero + If number of elements in source vector is greater than those available in destination array + + + + Returns the element at the given index. + + + + + Returns a boolean indicating whether the given Object is equal to this vector instance. + + The Object to compare against. + True if the Object is equal to this vector; False otherwise. + + + + Returns a boolean indicating whether the given vector is equal to this vector instance. + + The vector to compare this instance to. + True if the other vector is equal to this instance; False otherwise. + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a String representing this vector. + + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if left and right are not equal; False otherwise. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another. + + + + + Widens a Vector{Byte} into two Vector{UInt16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt16} into two Vector{UInt32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt32} into two Vector{UInt64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{SByte} into two Vector{Int16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int16} into two Vector{Int32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int32} into two Vector{Int64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Single} into two Vector{Double}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Narrows two Vector{UInt16}'s into one Vector{Byte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Byte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt32}'s into one Vector{UInt16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt64}'s into one Vector{UInt32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int16}'s into one Vector{SByte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{SByte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int32}'s into one Vector{Int16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int64}'s into one Vector{Int32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Double}'s into one Vector{Single}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Single} containing elements narrowed from the source vectors. + + + + + Converts a Vector{Int32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{Int64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{Int32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{UInt32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{Int64}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{UInt64}. + + The source vector. + The converted vector. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if any element pairs are equal; False if no element pairs are equal. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right. + elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all of the elements in left are greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support. + + + + + Returns a new vector whose elements are the absolute values of the given vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The minimum vector. + + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The maximum vector. + + + + Returns the dot product of two vectors. + + The first source vector. + The second source vector. + The dot product. + + + + Returns a new vector whose elements are the square roots of the given vector's elements. + + The source vector. + The square root vector. + + + + Creates a new vector whose values are the sum of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Creates a new vector whose values are the difference between each pairs of elements in the given vectors. + + The first source vector. + The second source vector. + The difference vector. + + + + Creates a new vector whose values are the product of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The source vector. + The scalar factor. + The scaled vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The scalar factor. + The source vector. + The scaled vector. + + + + Returns a new vector whose values are the result of dividing the first vector's elements + by the corresponding elements in the second vector. + + The first source vector. + The second source vector. + The divided vector. + + + + Returns a new vector whose elements are the given vector's elements negated. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + A structure encapsulating two single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0). + + + + + Returns the vector (1,1). + + + + + Returns the vector (1,0). + + + + + Returns the vector (0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector2 instance. + + The Object to compare against. + True if the Object is equal to this Vector2; False otherwise. + + + + Returns a String representing this Vector2 instance. + + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + + + + Copies the contents of the vector into the given array. + + The destination array. + + + + Copies the contents of the vector into the given array, starting from the given index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array + or if there are not enough elements to copy. + + + + Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance. + + The Vector2 to compare this instance to. + True if the other Vector2 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors + + The first source vector + The second source vector + The maximized vector + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating three single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0). + + + + + Returns the vector (1,1,1). + + + + + Returns the vector (1,0,0). + + + + + Returns the vector (0,1,0). + + + + + Returns the vector (0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector3 instance. + + The Object to compare against. + True if the Object is equal to this Vector3; False otherwise. + + + + Returns a String representing this Vector3 instance. + + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Computes the cross product of two vectors. + + The first vector. + The second vector. + The cross product. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a Vector3 from the given Vector2 and a third value. + + The Vector to extract X and Y components from. + The Z component. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + The Z component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance. + + The Vector3 to compare this instance to. + True if the other Vector3 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating four single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0,0). + + + + + Returns the vector (1,1,1,1). + + + + + Returns the vector (1,0,0,0). + + + + + Returns the vector (0,1,0,0). + + + + + Returns the vector (0,0,1,0). + + + + + Returns the vector (0,0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector4 instance. + + The Object to compare against. + True if the Object is equal to this Vector4; False otherwise. + + + + Returns a String representing this Vector4 instance. + + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. This operation is cheaper than Length(). + + The vector's length. + + + + Returns the length of the vector squared. + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + The W component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + W component. + X component. + Y component. + Z component. + + + + Constructs a Vector4 from the given Vector2 and a Z and W component. + + The vector to use as the X and Y components. + The Z component. + The W component. + + + + Constructs a Vector4 from the given Vector3 and a W component. + + The vector to use as the X, Y, and Z components. + The W component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance. + + The Vector4 to compare this instance to. + True if the other Vector4 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + Index was out of bounds: + + + Number of elements in source vector is greater than the destination array + + + The method was called with a null array argument. + + + Specified type is not supported + + + At least {0} element(s) are expected in the parameter "{1}". + + + diff --git a/hMarkdown/bin/Release/System.Runtime.CompilerServices.Unsafe.xml b/hMarkdown/bin/Release/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7acab80 --- /dev/null +++ b/hMarkdown/bin/Release/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,353 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + + Contains generic, low-level functionality for manipulating pointers. + + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A reference to the value to copy. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A pointer to the value to copy. + + + + Returns a pointer to the given by-ref parameter. + + The type of object. + The object whose pointer is obtained. + A pointer to the given value. + + + + Returns the size of an object of the given type parameter. + + The type of object whose size is retrieved. + The size of an object of type . + + + + Casts the given object to the specified type, performs no dynamic type checking. + + The type which the object will be cast to. + The object to cast. + The original object, casted to the given type. + + + + Reinterprets the given location as a reference to a value of type . + + The type of the interpreted location. + The location of the value to reference. + A reference to a value of type . + + + + Reinterprets the given read-only reference as a reference. + + The type of reference. + The read-only reference to reinterpret. + A reference to a value of type . + + + + Reinterprets the given reference as a reference to a value of type . + + The type of reference to reinterpret. + The desired type of the reference. + The reference to reinterpret. + A reference to a value of type . + + + + Returns a reference to the value type contained with the specified box object. + + The type of the value type contained within the box. + The boxed value type. + A reference to a value of type in the box object. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given pointer. + + The type of reference. + The pointer to add the offset to. + The offset to add. + A new pointer that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Determines the byte offset from origin to target from the given references. + + The type of reference. + The reference to origin. + The reference to target. + Byte offset from origin to target i.e. - . + + + + Determines whether the specified references point to the same location. + + The first reference to compare. + The second reference to compare. + true if and point to the same location; otherwise false. + + + + Determines whether the memory address referenced by is greater than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is greater than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Determines whether the memory address referenced by is less than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is less than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Returns if a given reference to a value of type is a null reference. + + The reference to check. + This check is conceptually similar to "(void*)(&source) == nullptr". + + + + Returns a reference to a value of type that is a null reference. + + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + diff --git a/hMarkdown/bin/Release/app.publish/hMarkdown.exe b/hMarkdown/bin/Release/app.publish/hMarkdown.exe new file mode 100644 index 0000000..2cd8d7a Binary files /dev/null and b/hMarkdown/bin/Release/app.publish/hMarkdown.exe differ diff --git a/hMarkdown/bin/Release/hMarkdown.application b/hMarkdown/bin/Release/hMarkdown.application new file mode 100644 index 0000000..1b86f74 --- /dev/null +++ b/hMarkdown/bin/Release/hMarkdown.application @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + +PZ/YtnyQWxKpQH38+rzr0OHtpkGZ8XQbuLujxv/D1c= + + + + \ No newline at end of file diff --git a/hMarkdown/bin/Release/hMarkdown.exe b/hMarkdown/bin/Release/hMarkdown.exe new file mode 100644 index 0000000..e790a63 Binary files /dev/null and b/hMarkdown/bin/Release/hMarkdown.exe differ diff --git a/hMarkdown/bin/Release/hMarkdown.exe.config b/hMarkdown/bin/Release/hMarkdown.exe.config new file mode 100644 index 0000000..3d9ac87 --- /dev/null +++ b/hMarkdown/bin/Release/hMarkdown.exe.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hMarkdown/bin/Release/hMarkdown.exe.manifest b/hMarkdown/bin/Release/hMarkdown.exe.manifest new file mode 100644 index 0000000..c1f2501 --- /dev/null +++ b/hMarkdown/bin/Release/hMarkdown.exe.manifest @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PDOL4DwFbpmGLKTj3mcSmzimDS/aRG8cKlniL2EyOZc= + + + + + + + + + + 9RDR0peZ5Sr0oovPm3DcZmAv9ZZieDh3A/bOlz+dA7g= + + + + + + + + + aBBjAICalkdQmTQBnYVM5xBfWEJv1l05kwQMkfynYIE= + + + \ No newline at end of file diff --git a/hMarkdown/bin/Release/hMarkdown.lnk b/hMarkdown/bin/Release/hMarkdown.lnk new file mode 100644 index 0000000..cd4f85e Binary files /dev/null and b/hMarkdown/bin/Release/hMarkdown.lnk differ diff --git a/hMarkdown/bin/Release/hMarkdown.pdb b/hMarkdown/bin/Release/hMarkdown.pdb new file mode 100644 index 0000000..814a38d Binary files /dev/null and b/hMarkdown/bin/Release/hMarkdown.pdb differ diff --git a/hMarkdown/hMarkdown.csproj b/hMarkdown/hMarkdown.csproj new file mode 100644 index 0000000..03142ca --- /dev/null +++ b/hMarkdown/hMarkdown.csproj @@ -0,0 +1,164 @@ + + + + + + Debug + AnyCPU + {A8E10C05-F985-4702-8AE2-B5D95E9AED83} + WinExe + hMarkdown + hMarkdown + v4.8 + 512 + true + true + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 1 + 1.0.1.%2a + false + true + true + + + + + AnyCPU + true + embedded + true + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + hMarkdown.ico + + + 30C74CF3F4C04AC892558ECE90FE433BE8797724 + + + hMarkdown_TemporaryKey.pfx + + + true + + + true + + + + ..\packages\Costura.Fody.6.0.0\lib\netstandard2.0\Costura.dll + + + ..\packages\Markdig.0.41.3\lib\net462\Markdig.dll + + + + ..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll + + + + ..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + False + Microsoft .NET Framework 4.8 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/hMarkdown/hMarkdown.csproj.user b/hMarkdown/hMarkdown.csproj.user new file mode 100644 index 0000000..d213892 --- /dev/null +++ b/hMarkdown/hMarkdown.csproj.user @@ -0,0 +1,13 @@ + + + + publish\ + + + + + + en-US + false + + \ No newline at end of file diff --git a/hMarkdown/hMarkdown.ico b/hMarkdown/hMarkdown.ico new file mode 100644 index 0000000..31ae85b Binary files /dev/null and b/hMarkdown/hMarkdown.ico differ diff --git a/hMarkdown/hMarkdown_TemporaryKey.pfx b/hMarkdown/hMarkdown_TemporaryKey.pfx new file mode 100644 index 0000000..cc46b7e Binary files /dev/null and b/hMarkdown/hMarkdown_TemporaryKey.pfx differ diff --git a/hMarkdown/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/hMarkdown/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..15efebf --- /dev/null +++ b/hMarkdown/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..c540245 Binary files /dev/null and b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..a435f7a Binary files /dev/null and b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/hMarkdown/obj/Debug/hMarkdown.Form1.resources b/hMarkdown/obj/Debug/hMarkdown.Form1.resources new file mode 100644 index 0000000..ec41da6 Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.Form1.resources differ diff --git a/hMarkdown/obj/Debug/hMarkdown.Properties.Resources.resources b/hMarkdown/obj/Debug/hMarkdown.Properties.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.Properties.Resources.resources differ diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.AssemblyReference.cache b/hMarkdown/obj/Debug/hMarkdown.csproj.AssemblyReference.cache new file mode 100644 index 0000000..4aa6897 Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.csproj.AssemblyReference.cache differ diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.CoreCompileInputs.cache b/hMarkdown/obj/Debug/hMarkdown.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..690b7a7 --- /dev/null +++ b/hMarkdown/obj/Debug/hMarkdown.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +86934d787afd505889e9497b25ca48e6940c0f6af6c72a88138738d5ea56e4ba diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.FileListAbsolute.txt b/hMarkdown/obj/Debug/hMarkdown.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..5f7faf7 --- /dev/null +++ b/hMarkdown/obj/Debug/hMarkdown.csproj.FileListAbsolute.txt @@ -0,0 +1,20 @@ +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\hMarkdown.exe.config +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\hMarkdown.exe +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\Markdig.dll +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Buffers.dll +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Memory.dll +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Numerics.Vectors.dll +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\Markdig.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Buffers.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Memory.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Numerics.Vectors.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.AssemblyReference.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.Form1.resources +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.Properties.Resources.resources +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.GenerateResource.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.CoreCompileInputs.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.Up2Date +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.exe +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.exe.config diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.GenerateResource.cache b/hMarkdown/obj/Debug/hMarkdown.csproj.GenerateResource.cache new file mode 100644 index 0000000..3e75afa Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.csproj.GenerateResource.cache differ diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.Up2Date b/hMarkdown/obj/Debug/hMarkdown.csproj.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/hMarkdown/obj/Debug/hMarkdown.exe b/hMarkdown/obj/Debug/hMarkdown.exe new file mode 100644 index 0000000..cd76b68 Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.exe differ diff --git a/hMarkdown/obj/Debug/hMarkdown.exe.config b/hMarkdown/obj/Debug/hMarkdown.exe.config new file mode 100644 index 0000000..3d9ac87 --- /dev/null +++ b/hMarkdown/obj/Debug/hMarkdown.exe.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hMarkdown/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/hMarkdown/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..15efebf --- /dev/null +++ b/hMarkdown/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/hMarkdown/obj/Release/Costura/028E9832F421F11F9497C610F1734E0F3D868037.costura.costura.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/028E9832F421F11F9497C610F1734E0F3D868037.costura.costura.dll.compressed.compressed new file mode 100644 index 0000000..9568d81 Binary files /dev/null and b/hMarkdown/obj/Release/Costura/028E9832F421F11F9497C610F1734E0F3D868037.costura.costura.dll.compressed.compressed differ diff --git a/hMarkdown/obj/Release/Costura/1A078D8DD40BEAD1D88CB4549E57977924BE2B5B.costura.markdig.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/1A078D8DD40BEAD1D88CB4549E57977924BE2B5B.costura.markdig.dll.compressed.compressed new file mode 100644 index 0000000..07506ce Binary files /dev/null and b/hMarkdown/obj/Release/Costura/1A078D8DD40BEAD1D88CB4549E57977924BE2B5B.costura.markdig.dll.compressed.compressed differ diff --git a/hMarkdown/obj/Release/Costura/43290CD4AAF80DF5D1CF9F242486EF8E646FDDDA.costura.system.runtime.compilerservices.unsafe.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/43290CD4AAF80DF5D1CF9F242486EF8E646FDDDA.costura.system.runtime.compilerservices.unsafe.dll.compressed.compressed new file mode 100644 index 0000000..e8cc240 Binary files /dev/null and b/hMarkdown/obj/Release/Costura/43290CD4AAF80DF5D1CF9F242486EF8E646FDDDA.costura.system.runtime.compilerservices.unsafe.dll.compressed.compressed differ diff --git a/hMarkdown/obj/Release/Costura/806F4C19B2D7FD9E3B836269EC07647019A29E95.costura.costura.pdb.compressed.compressed b/hMarkdown/obj/Release/Costura/806F4C19B2D7FD9E3B836269EC07647019A29E95.costura.costura.pdb.compressed.compressed new file mode 100644 index 0000000..311e781 Binary files /dev/null and b/hMarkdown/obj/Release/Costura/806F4C19B2D7FD9E3B836269EC07647019A29E95.costura.costura.pdb.compressed.compressed differ diff --git a/hMarkdown/obj/Release/Costura/96C87B7148805A0ADCD4B9E23162DEB06D7A4702.costura.system.memory.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/96C87B7148805A0ADCD4B9E23162DEB06D7A4702.costura.system.memory.dll.compressed.compressed new file mode 100644 index 0000000..747e589 Binary files /dev/null and b/hMarkdown/obj/Release/Costura/96C87B7148805A0ADCD4B9E23162DEB06D7A4702.costura.system.memory.dll.compressed.compressed differ diff --git a/hMarkdown/obj/Release/Costura/C5583C3257CF193FF4736671445F8DA64366A6A1.costura.system.numerics.vectors.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/C5583C3257CF193FF4736671445F8DA64366A6A1.costura.system.numerics.vectors.dll.compressed.compressed new file mode 100644 index 0000000..5acefd6 Binary files /dev/null and b/hMarkdown/obj/Release/Costura/C5583C3257CF193FF4736671445F8DA64366A6A1.costura.system.numerics.vectors.dll.compressed.compressed differ diff --git a/hMarkdown/obj/Release/Costura/D87680E1A96549CF45506D17566EC08C27A770D8.costura.system.buffers.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/D87680E1A96549CF45506D17566EC08C27A770D8.costura.system.buffers.dll.compressed.compressed new file mode 100644 index 0000000..7b0cdb5 Binary files /dev/null and b/hMarkdown/obj/Release/Costura/D87680E1A96549CF45506D17566EC08C27A770D8.costura.system.buffers.dll.compressed.compressed differ diff --git a/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferences.cache b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..c249197 Binary files /dev/null and b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..3a6c818 Binary files /dev/null and b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/hMarkdown/obj/Release/hMarkdown.Form1.resources b/hMarkdown/obj/Release/hMarkdown.Form1.resources new file mode 100644 index 0000000..ec41da6 Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.Form1.resources differ diff --git a/hMarkdown/obj/Release/hMarkdown.Properties.Resources.resources b/hMarkdown/obj/Release/hMarkdown.Properties.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.Properties.Resources.resources differ diff --git a/hMarkdown/obj/Release/hMarkdown.application b/hMarkdown/obj/Release/hMarkdown.application new file mode 100644 index 0000000..1b86f74 --- /dev/null +++ b/hMarkdown/obj/Release/hMarkdown.application @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + +PZ/YtnyQWxKpQH38+rzr0OHtpkGZ8XQbuLujxv/D1c= + + + + \ No newline at end of file diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.AssemblyReference.cache b/hMarkdown/obj/Release/hMarkdown.csproj.AssemblyReference.cache new file mode 100644 index 0000000..8881595 Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.csproj.AssemblyReference.cache differ diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.CoreCompileInputs.cache b/hMarkdown/obj/Release/hMarkdown.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..33b08da --- /dev/null +++ b/hMarkdown/obj/Release/hMarkdown.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +699e082d604b947c681e689450dd04813aee822e5b1fdcc6555c9fc00a43ba01 diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.FileListAbsolute.txt b/hMarkdown/obj/Release/hMarkdown.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..5df7529 --- /dev/null +++ b/hMarkdown/obj/Release/hMarkdown.csproj.FileListAbsolute.txt @@ -0,0 +1,23 @@ +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.exe.config +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.exe +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.pdb +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\Markdig.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Buffers.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Memory.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Numerics.Vectors.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Runtime.CompilerServices.Unsafe.xml +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.AssemblyReference.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.Form1.resources +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.Properties.Resources.resources +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.GenerateResource.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.CoreCompileInputs.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.Up2Date +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.exe +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.pdb +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.exe.manifest +D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.application +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.exe.config +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.exe.manifest +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.application +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.Fody.CopyLocal.cache +D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.Fody.RuntimeCopyLocal.cache diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.Fody.CopyLocal.cache b/hMarkdown/obj/Release/hMarkdown.csproj.Fody.CopyLocal.cache new file mode 100644 index 0000000..083ca37 --- /dev/null +++ b/hMarkdown/obj/Release/hMarkdown.csproj.Fody.CopyLocal.cache @@ -0,0 +1,5 @@ +D:\Calismalar\C#\hMarkdown\packages\Markdig.0.41.3\lib\net462\Markdig.xml +D:\Calismalar\C#\hMarkdown\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.xml +D:\Calismalar\C#\hMarkdown\packages\System.Memory.4.6.3\lib\net462\System.Memory.xml +D:\Calismalar\C#\hMarkdown\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.xml +D:\Calismalar\C#\hMarkdown\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.xml diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.Fody.RuntimeCopyLocal.cache b/hMarkdown/obj/Release/hMarkdown.csproj.Fody.RuntimeCopyLocal.cache new file mode 100644 index 0000000..e69de29 diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.GenerateResource.cache b/hMarkdown/obj/Release/hMarkdown.csproj.GenerateResource.cache new file mode 100644 index 0000000..3e75afa Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.csproj.GenerateResource.cache differ diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.Up2Date b/hMarkdown/obj/Release/hMarkdown.csproj.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/hMarkdown/obj/Release/hMarkdown.exe b/hMarkdown/obj/Release/hMarkdown.exe new file mode 100644 index 0000000..e790a63 Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.exe differ diff --git a/hMarkdown/obj/Release/hMarkdown.exe.config b/hMarkdown/obj/Release/hMarkdown.exe.config new file mode 100644 index 0000000..3d9ac87 --- /dev/null +++ b/hMarkdown/obj/Release/hMarkdown.exe.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hMarkdown/obj/Release/hMarkdown.exe.manifest b/hMarkdown/obj/Release/hMarkdown.exe.manifest new file mode 100644 index 0000000..c1f2501 --- /dev/null +++ b/hMarkdown/obj/Release/hMarkdown.exe.manifest @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PDOL4DwFbpmGLKTj3mcSmzimDS/aRG8cKlniL2EyOZc= + + + + + + + + + + 9RDR0peZ5Sr0oovPm3DcZmAv9ZZieDh3A/bOlz+dA7g= + + + + + + + + + aBBjAICalkdQmTQBnYVM5xBfWEJv1l05kwQMkfynYIE= + + + \ No newline at end of file diff --git a/hMarkdown/obj/Release/hMarkdown.pdb b/hMarkdown/obj/Release/hMarkdown.pdb new file mode 100644 index 0000000..814a38d Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.pdb differ diff --git a/hMarkdown/packages.config b/hMarkdown/packages.config new file mode 100644 index 0000000..51d5991 --- /dev/null +++ b/hMarkdown/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.0.0/.signature.p7s b/packages/Costura.Fody.6.0.0/.signature.p7s new file mode 100644 index 0000000..fb88a74 Binary files /dev/null and b/packages/Costura.Fody.6.0.0/.signature.p7s differ diff --git a/packages/Costura.Fody.6.0.0/Costura.Fody.6.0.0.nupkg b/packages/Costura.Fody.6.0.0/Costura.Fody.6.0.0.nupkg new file mode 100644 index 0000000..373543c Binary files /dev/null and b/packages/Costura.Fody.6.0.0/Costura.Fody.6.0.0.nupkg differ diff --git a/packages/Costura.Fody.6.0.0/build/Costura.Fody.props b/packages/Costura.Fody.6.0.0/build/Costura.Fody.props new file mode 100644 index 0000000..043e08f --- /dev/null +++ b/packages/Costura.Fody.6.0.0/build/Costura.Fody.props @@ -0,0 +1,15 @@ + + + + netclassicweaver + netstandardweaver + + + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.0.0/build/Costura.Fody.targets b/packages/Costura.Fody.6.0.0/build/Costura.Fody.targets new file mode 100644 index 0000000..1a3b976 --- /dev/null +++ b/packages/Costura.Fody.6.0.0/build/Costura.Fody.targets @@ -0,0 +1,13 @@ + + + + true + + + + + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.0.0/icon.png b/packages/Costura.Fody.6.0.0/icon.png new file mode 100644 index 0000000..e5fdc34 Binary files /dev/null and b/packages/Costura.Fody.6.0.0/icon.png differ diff --git a/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.dll b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.dll new file mode 100644 index 0000000..44c0e69 Binary files /dev/null and b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.dll differ diff --git a/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.pdb b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.pdb new file mode 100644 index 0000000..85845fd Binary files /dev/null and b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.pdb differ diff --git a/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.xml b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.xml new file mode 100644 index 0000000..75ef55b --- /dev/null +++ b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.xml @@ -0,0 +1,23 @@ + + + + Costura + + + + + Note: do not rename this class or put it inside a namespace. + + + + + Contains methods for interacting with the Costura system. + + + + + Call this to Initialize the Costura system. + + + + diff --git a/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.dll b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.dll new file mode 100644 index 0000000..5df6578 Binary files /dev/null and b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.dll differ diff --git a/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.xcf b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.xcf new file mode 100644 index 0000000..c77b140 --- /dev/null +++ b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.xcf @@ -0,0 +1,150 @@ + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.dll b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.dll new file mode 100644 index 0000000..cb55b0c Binary files /dev/null and b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.dll differ diff --git a/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.xcf b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.xcf new file mode 100644 index 0000000..c77b140 --- /dev/null +++ b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.xcf @@ -0,0 +1,150 @@ + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + \ No newline at end of file diff --git a/packages/Fody.6.8.2/.signature.p7s b/packages/Fody.6.8.2/.signature.p7s new file mode 100644 index 0000000..dc830e2 Binary files /dev/null and b/packages/Fody.6.8.2/.signature.p7s differ diff --git a/packages/Fody.6.8.2/Fody.6.8.2.nupkg b/packages/Fody.6.8.2/Fody.6.8.2.nupkg new file mode 100644 index 0000000..6a2f178 Binary files /dev/null and b/packages/Fody.6.8.2/Fody.6.8.2.nupkg differ diff --git a/packages/Fody.6.8.2/License.txt b/packages/Fody.6.8.2/License.txt new file mode 100644 index 0000000..e53c1de --- /dev/null +++ b/packages/Fody.6.8.2/License.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Simon Cropp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/packages/Fody.6.8.2/build/Fody.targets b/packages/Fody.6.8.2/build/Fody.targets new file mode 100644 index 0000000..35d38f9 --- /dev/null +++ b/packages/Fody.6.8.2/build/Fody.targets @@ -0,0 +1,149 @@ + + + $(ProjectDir)FodyWeavers.xml + $(MSBuildThisFileDirectory)..\ + $(FodyPath)netstandardtask + $(FodyPath)netclassictask + $(FodyAssemblyDirectory)\Fody.dll + $(DefaultItemExcludes);FodyWeavers.xsd + true + 15 + $([System.Version]::Parse($(MSBuildVersion)).Major) + AfterCompile + $(TargetsTriggeredByCompilation);FodyTarget + true + $(TreatWarningsAsErrors) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Fody.6.8.2/netclassictask/Fody.dll b/packages/Fody.6.8.2/netclassictask/Fody.dll new file mode 100644 index 0000000..dcc8593 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Fody.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/FodyCommon.dll b/packages/Fody.6.8.2/netclassictask/FodyCommon.dll new file mode 100644 index 0000000..26afd10 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/FodyCommon.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/FodyHelpers.dll b/packages/Fody.6.8.2/netclassictask/FodyHelpers.dll new file mode 100644 index 0000000..0e8a2d6 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/FodyHelpers.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/FodyIsolated.dll b/packages/Fody.6.8.2/netclassictask/FodyIsolated.dll new file mode 100644 index 0000000..7467c4f Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/FodyIsolated.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.dll b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..5f65753 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.pdb b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.pdb new file mode 100644 index 0000000..716032c Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.pdb differ diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.dll b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..de37dc0 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.pdb b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.pdb new file mode 100644 index 0000000..2604d55 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.pdb differ diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.dll b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.dll new file mode 100644 index 0000000..ce0a2f2 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.dll differ diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.pdb b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.pdb new file mode 100644 index 0000000..9fdf309 Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.pdb differ diff --git a/packages/Fody.6.8.2/netstandardtask/Fody.dll b/packages/Fody.6.8.2/netstandardtask/Fody.dll new file mode 100644 index 0000000..01f5545 Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Fody.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/FodyCommon.dll b/packages/Fody.6.8.2/netstandardtask/FodyCommon.dll new file mode 100644 index 0000000..0d5013e Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/FodyCommon.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/FodyHelpers.dll b/packages/Fody.6.8.2/netstandardtask/FodyHelpers.dll new file mode 100644 index 0000000..0e8a2d6 Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/FodyHelpers.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/FodyIsolated.dll b/packages/Fody.6.8.2/netstandardtask/FodyIsolated.dll new file mode 100644 index 0000000..c643697 Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/FodyIsolated.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.dll b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..df1c878 Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.pdb b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.pdb new file mode 100644 index 0000000..21c0a8e Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.pdb differ diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.dll b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..3d9ca3f Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.pdb b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.pdb new file mode 100644 index 0000000..7ee5bfa Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.pdb differ diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.dll b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.dll new file mode 100644 index 0000000..7986139 Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.dll differ diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.pdb b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.pdb new file mode 100644 index 0000000..2bffe4c Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.pdb differ diff --git a/packages/Fody.6.8.2/readme.md b/packages/Fody.6.8.2/readme.md new file mode 100644 index 0000000..658c167 --- /dev/null +++ b/packages/Fody.6.8.2/readme.md @@ -0,0 +1,98 @@ +[![AppVeyor](https://img.shields.io/appveyor/ci/SimonCropp/fody/master.svg?style=flat&max-age=86400&label=appveyor)](https://ci.appveyor.com/project/SimonCropp/fody/branch/master) +[![Chat on Gitter](https://img.shields.io/gitter/room/fody/fody.svg)](https://gitter.im/Fody/Fody) +[![NuGet Status](https://img.shields.io/nuget/v/Fody.svg)](https://www.nuget.org/packages/Fody/) +[![Patrons on Open Collective](https://opencollective.com/fody/tiers/patron/badge.svg)](#patrons) + +### Extensible tool for weaving .net assemblies + +Manipulating the IL of an assembly as part of a build requires a significant amount of plumbing code. This plumbing code involves knowledge of both the MSBuild and Visual Studio APIs. Fody attempts to eliminate that plumbing code through an extensible add-in model. + +**This is the codebase of core Fody engine. For more information on the larger Fody project see https://github.com/Fody/Home.** + +**See [Milestones](https://github.com/Fody/Fody/milestones?state=closed) for release notes.** + + + + +[Already a Patron? skip past this section](#endofbacking) + + +## Community backed + +Fody requires significant effort to maintain. As such it relies on financial support to ensure its long term viability. + +**It is expected that all developers using Fody [become a Patron on OpenCollective](https://opencollective.com/fody/contribute/patron-3059).** + +[See Licensing/Patron FAQ](https://github.com/Fody/Home/blob/master/pages/licensing-patron-faq.md) for more information. + + +### Gold Sponsors + +Support this project by [becoming a Gold Sponsor](https://opencollective.com/fody/contribute/gold-7088). A large company logo will be added here with a link to your website. + +PostSharp + + +### Silver Sponsors + +Support this project by [becoming a Silver Sponsor](https://opencollective.com/fody/contribute/silver-7086). A medium company logo will be added here with a link to your website. + +G-Research Particular Software + + +### Bronze Sponsors + +Support this project by [becoming a Bronze Sponsor](https://opencollective.com/fody/contribute/bronze-7085). The company avatar will show up here with a link to your OpenCollective Profile. + + + + + +### Patrons and sponsors + +Thanks to all the backers and sponsors! Support this project by [becoming a patron](https://opencollective.com/fody/contribute/patron-3059). + + + + + + + +## Documentation and Further Learning + + * [Licensing and patron FAQ](https://github.com/Fody/Home/tree/master/pages/licensing-patron-faq.md)
+ **It is expected that all developers using Fody [become a Patron on OpenCollective](https://opencollective.com/fody/order/3059).** See [Licensing/Patron FAQ](https://github.com/Fody/Home/tree/master/pages/licensing-patron-faq.md) for more information. + * [Usage](https://github.com/Fody/Home/tree/master/pages/usage.md)
+ Introduction to using Fody. + * [Configuration](https://github.com/Fody/Home/tree/master/pages/configuration.md)
+ All configuration options for Fody. + * [Addin discovery](https://github.com/Fody/Home/tree/master/pages/addin-discovery.md)
+ How addins are resolved. + * [List of Fody weavers/addins](https://github.com/Fody/Home/tree/master/pages/addins.md)
+ * [Changelog](https://github.com/Fody/Fody/milestones?state=closed) + * [FodyAddinSamples](https://github.com/Fody/FodyAddinSamples)
+ A GitHub repo that contains a working sample of every Fody addin. + * [Common errors](https://github.com/Fody/Home/tree/master/pages/common-errors.md) + * [In solution weaving](https://github.com/Fody/Home/tree/master/pages/in-solution-weaving.md)
+ Writing an addin that manipulates IL within the same solution. + * [ProcessedByFody class](https://github.com/Fody/Home/tree/master/pages/processedbyfody-class.md)
+ Marker class added to target assemblies for diagnostic purposes. + * [Strong naming](https://github.com/Fody/Home/tree/master/pages/strong-naming.md) + * [Supported runtimes and IDE](https://github.com/Fody/Home/tree/master/pages/supported-runtimes-and-ide.md) + * [Addin development](https://github.com/Fody/Home/tree/master/pages/addin-development.md)
+ Building a new Fody addin. + * [Addin packaging](https://github.com/Fody/Home/tree/master/pages/addin-packaging.md)
+ Packaging and deployment of Fody weavers. + * [BasicFodyAddin](https://github.com/Fody/Home/tree/master/BasicFodyAddin)
+ A simple project meant to illustrate how to build an addin. + * [Fody Project Configuration Manager](https://github.com/tom-englert/ProjectConfigurationManager/wiki/6.-Fody)
+ Provides an interactive tool that can support configuring weavers, which is especially helpful in solutions with many projects. + * [Backers tracking/info](https://github.com/Fody/Home/tree/master/pages/backers.md) + * [Donations](https://github.com/Fody/Home/tree/master/pages/donations.md)
+ Every month the Fody project will donate a portion of funding raised to a charity or other cause. + + +## Contributors + +This project exists thanks to all the people who contribute. + diff --git a/packages/Markdig.0.41.3/.signature.p7s b/packages/Markdig.0.41.3/.signature.p7s new file mode 100644 index 0000000..ed5f625 Binary files /dev/null and b/packages/Markdig.0.41.3/.signature.p7s differ diff --git a/packages/Markdig.0.41.3/Markdig.0.41.3.nupkg b/packages/Markdig.0.41.3/Markdig.0.41.3.nupkg new file mode 100644 index 0000000..91b0a23 Binary files /dev/null and b/packages/Markdig.0.41.3/Markdig.0.41.3.nupkg differ diff --git a/packages/Markdig.0.41.3/lib/net462/Markdig.dll b/packages/Markdig.0.41.3/lib/net462/Markdig.dll new file mode 100644 index 0000000..7db7513 Binary files /dev/null and b/packages/Markdig.0.41.3/lib/net462/Markdig.dll differ diff --git a/packages/Markdig.0.41.3/lib/net462/Markdig.xml b/packages/Markdig.0.41.3/lib/net462/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/packages/Markdig.0.41.3/lib/net462/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/packages/Markdig.0.41.3/lib/net8.0/Markdig.dll b/packages/Markdig.0.41.3/lib/net8.0/Markdig.dll new file mode 100644 index 0000000..4bc30f2 Binary files /dev/null and b/packages/Markdig.0.41.3/lib/net8.0/Markdig.dll differ diff --git a/packages/Markdig.0.41.3/lib/net8.0/Markdig.xml b/packages/Markdig.0.41.3/lib/net8.0/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/packages/Markdig.0.41.3/lib/net8.0/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/packages/Markdig.0.41.3/lib/net9.0/Markdig.dll b/packages/Markdig.0.41.3/lib/net9.0/Markdig.dll new file mode 100644 index 0000000..495bb37 Binary files /dev/null and b/packages/Markdig.0.41.3/lib/net9.0/Markdig.dll differ diff --git a/packages/Markdig.0.41.3/lib/net9.0/Markdig.xml b/packages/Markdig.0.41.3/lib/net9.0/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/packages/Markdig.0.41.3/lib/net9.0/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.dll b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.dll new file mode 100644 index 0000000..e9716ab Binary files /dev/null and b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.dll differ diff --git a/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.xml b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.dll b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.dll new file mode 100644 index 0000000..c3326fa Binary files /dev/null and b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.dll differ diff --git a/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.xml b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.xml new file mode 100644 index 0000000..a2d0e70 --- /dev/null +++ b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.xml @@ -0,0 +1,6643 @@ + + + + Markdig + + + + + An abbreviation object stored at the document level. See extension methods in . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the label. + + + + + The text associated to this label. + + + + + The label span + + + + + Extension to allow abbreviations. + + + + + + Extension methods for . + + + + + The inline abbreviation. + + + + + + Initializes a new instance of the class. + + The abbreviation. + + + + A block parser for abbreviations. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A block representing an alert quote block. + + + + + Creates a new instance of this block. + + + + + + Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`). + + + + + Gets or sets the trivia space after the kind. + + + + + A HTML renderer for a . + + + + + + Creates a new instance of this renderer. + + + + + Gets of sets a delegate to render the kind of the alert. + + + + + + + + Renders the kind of the alert. + + The HTML renderer. + The kind of the alert to render + + + + Extension for adding alerts to a Markdown pipeline. + + + + + Gets or sets the delegate to render the kind of the alert. + + + + + + + + + + + An inline parser for an alert inline (e.g. `[!NOTE]`). + + + + + + Initializes a new instance of the class. + + + + + The auto-identifier extension + + + + + + Initializes a new instance of the class. + + The options. + + + + Process on a new + + The processor. + The heading block. + + + + Callback when there is a reference to found to a heading. + Note that reference are only working if they are declared after. + + + + + Process the inlines of the heading to create a unique identifier + + The processor. + The inline. + + + + Options for the . + + + + + No options: does not apply any additional formatting and/or transformations. + + + + + Default () + + + + + Allows to link to a header by using the same text as the header for the link label. Default is true + + + + + Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true + + + + + Renders auto identifiers like GitHub. + + + + + A link reference definition to a stored at the level. + + + + + + Gets or sets the heading related to this link reference definition. + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Extension to automatically create when a link url http: or mailto: is found. + + + + + + Should the link open in a new window when clicked (false by default) + + + + + Should a www link be prefixed with https:// instead of http:// (false by default) + + + + + Should auto-linking allow a domain with no period, e.g. https://localhost (false by default) + + + + + The inline parser used to for autolinks. + + + + + + Initializes a new instance of the class. + + + + + Extension for tagging some HTML elements with bootstrap classes. + + + + + + Extension for cite ""..."" + + + + + + A block custom container. + + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension to allow custom containers. + + + + + + An inline custom container + + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A definition item contains zero to multiple + and definitions (any ) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character for this definition item (either `:` or `~`) + + + + + A definition list contains children. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow definition lists + + + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A definition term contains a single line with the term to define. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A HTML renderer for , and . + + + + + + Extension to allow diagrams. + + + + + + Extension to allow emoji shortcodes and smileys replacement. + + + + + + An emoji inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets the original match string (either an emoji shortcode or a text smiley) + + + + + An emoji shortcodes and smileys mapping, to be used by . + + + + + The default emoji shortcodes and smileys mapping. + + + + + The default emoji shortcodes mapping, without smileys. + + + + + Returns a new instance of the default emoji shortcode to emoji unicode dictionary. + It can be used to create a customized . + + + + + Gets a new instance of the default smiley to emoji shortcode dictionary. + It can be used to create a customized . + + + + + Constructs a mapping for the default emoji shortcodes and smileys. + + + + + Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes. + + + + + The inline parser used for emojis. + + + + + + Initializes a new instance of the class. + + + + + Extension for strikethrough, subscript, superscript, inserted and marked. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for enabling support for extra emphasis. + + + + + Allows all extra emphasis (default). + + + + + A text that can be strikethrough using the double character ~~ + + + + + A text that can be rendered as a subscript using the character ~ + + + + + A text that can be rendered as a superscript using the character ^ + + + + + A text that can be rendered as inserted using the double character ++ + + + + + A text that can be rendered as marked using the double character == + + + + + Defines a figure container. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character count used to open this figure code block. + + + + + Gets or sets the opening character used to open and close this figure code block. + + + + + The block parser for a block. + + + + + + Initializes a new instance of the class. + + + + + Defines a figure caption. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Extension to allow usage of figures and figure captions. + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A block element for a footer. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the opening character used to match this footer (by default it is ^) + + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension that provides footer. + + + + + + A HTML renderer for a . + + + + + + A block for a footnote. + + + + + + Gets or sets the label used by this footnote. + + + + + Gets or sets the order of this footnote (determined by the order of the in the document) + + + + + Gets the links referencing this footnote. + + + + + The label span + + + + + Extension to allow footnotes. + + + + + + A block that contains all the footnotes at the end of a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A inline link to a . + + + + + + Gets or sets a value indicating whether this instance is back link (from a footnote to the link) + + + + + Gets or sets the global index number of this link. + + + + + Gets or sets the footnote this link refers to. + + + + + A link reference definition stored at the level. + + + + + + Gets or sets the footnote related to this link reference definition. + + + + + The block parser for a . + + + + + + The key used to store at the document level the pending + + + + + Add footnotes to the end of the document + + The processor. + The inline. + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the CSS group class used when rendering the <div> of this instance. + + + + + A HTML renderer for a . + + + + + + Extension that allows to attach HTML attributes to the previous or current . + This extension should be enabled last after enabling other extensions. + + + + + + An inline parser used to parse a HTML attributes that can be attached to the previous or current . + + + + + + Initializes a new instance of the class. + + + + + Tries to extra from the current position of a slice an HTML attributes {...} + + The slice to parse. + The output attributes or null if not found or invalid + true if parsing the HTML attributes was successful + + + + Extension to add support for RTL content. + + + + + Extension to generate hardline break for softline breaks. + + + + + + Model for a JIRA link item + + + + + JIRA Project Key + + + + + JIRA Issue Number + + + + + Simple inline parser extension for Markdig to find, and + automatically add links to JIRA issue numbers. + + + + + Finds and replaces JIRA links inline + + + + + Available options for replacing JIRA links + + + + + The base Url (e.g. `https://mycompany.atlassian.net`) + + + + + The base path after the base url (default is `/browse`) + + + + + Should the link open in a new window when clicked + + + + + Gets the full url composed of the and with no trailing `/` + + + + + Extension for adding new type of list items (a., A., i., I.) + + + + + + Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`) + + + Note that we don't validate roman numbers. + + + + + + Initializes a new instance of the class. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A math block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + The block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Extension for adding inline mathematics $...$ + + + + + + A math inline element. + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the delimiter count. + + + + + The content as a . + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the default class to use when creating a math inline block. + + + + + Create a with delegate handler. + + Prefix of host that can be handled. + Handler that generate iframe url, if uri cannot be handled, it can return . + Should the generated iframe has allowfullscreen attribute. + "class" attribute of generated iframe. + A with delegate handler. + + + + Provides url for media links. + + + + + "class" attribute of generated iframe. + + + + + Generate url for iframe. + + Input media uri. + if is a schema relative uri, i.e. uri starts with "//". + Generated url for iframe. + + + + + Should the generated iframe has allowfullscreen attribute. + + + Should be false for audio embedding. + + + + + Extension for extending image Markdown links in case a video or an audio file is linked and output proper link. + + + + + + Options for the . + + + + + Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + + + + Extension to automatically render rel=nofollow to all links in an HTML output. + + + + + Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based) + + + + + + Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically + from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string + that specifies the extensions to use for the pipeline as exposed by extension method + on the . This extension will invalidate all other extensions and will override them. + + + + + Initializes a new instance of the class. + + The matching start tag. + The default extensions. + Tag cannot contain angle brackets + + + + Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline). + + + + + Gets the self pipeline hint tag start that will be matched. + + + + + Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag. + + The input text. + The pipeline configured from the input + + + + + A HTML renderer for a . + + + + + + Initializes a new instance of the class. + + The options. + + + + + An inline for SmartyPant. + + + + + Converts this instance to a literal text. + + + + + + The options used for . + + + + + Initializes a new instance of the class. + + + + + Gets the mapping between a and its textual representation + (usually an HTML entity). + + + + + Extension to enable SmartyPants. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Types of a . + + + + + This is a single quote ' + + + + + This is a left single quote ' -gt; lsquo; + + + + + This is a right single quote ' -gt; rsquo; + + + + + This is a double quote " + + + + + This is a left double quote " -gt; ldquo; + + + + + This is a right double quote " -gt; rdquo; + + + + + This is a right double quote << -gt; laquo; + + + + + This is a right angle quote >> -gt; raquo; + + + + + This is an ellipsis ... -gt; hellip; + + + + + This is a ndash -- -gt; ndash; + + + + + This is a mdash --- -gt; mdash; + + + + + Extension that allows to use grid tables. + + + + + + Internal state used by the + + + + + Internal state used by the + + + + + Gets or sets the index position of this column (after the |) + + + + + A HTML renderer for a + + + + + + This block parsers for pipe tables is used to by-pass list items that could start by a single '-' + and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line + that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a + paragraph. + + + + + + Initializes a new instance of the class. + + + + + The delimiter used to separate the columns of a pipe table. + + + + + + Gets or sets the index of line where this delimiter was found relative to the current block. + + + + + Extension that allows to use pipe tables. + + + + + + Initializes a new instance of the class. + + The options. + + + + Gets the options. + + + + + Options for the extension + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false) + + + + + Defines whether table should be normalized to the amount of columns as defined in the table header. + false by default + + If true, this will insert empty cells in rows with fewer tables than the header row and remove cells + that are exceeding the header column count. + If false, this will use the row with the most columns to determine how many cells should be inserted + in all other rows (default behavior). + + + + + Gets or sets a value indicating whether column widths should be inferred based on the number of dashes + in the header separator row. Each column's width will be proportional to the dash count in its respective column. + + + + + The inline parser used to transform a into a at inline parsing time. + + + + + + + Initializes a new instance of the class. + + The line break parser to use + The options. + + + + Gets the options. + + + + + Defines a table that contains an optional . + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the column alignments. May be null. + + + + + Checks if the table structure is valid. + + True if the table has rows and the number of cells per row is correct, other wise false. + + + + Normalizes the number of columns of this table by taking the maximum columns and appending empty cells. + + + + + Normalizes the number of columns of this table by taking the amount of columns defined in the header + and appending empty cells or removing extra cells as needed. + + + + + Defines a cell in a + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the index of the column to which this cell belongs. + + + + + Gets or sets the column span this cell is covering. Default is 1. + + + + + Gets or sets the row span this cell is covering. Default is 1. + + + + + Gets or sets whether this cell can be closed. + + + + + Defines the alignment of a column + + + + + Align the column to the left + + + + + Align the column to the center + + + + + Align the column to the right + + + + + Defines a column. + + + + + Gets or sets the width (in percentage) of this column. A value of 0 is unspecified. + + + + + Gets or sets the column alignment. + + + + + Helper methods for parsing tables. + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + The number of delimiters. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). + The alignment of the column. + + true if parsing was successful + + + + + Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s* + + The text slice. + The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`) + The alignment of the column. + + true if parsing was successful + + + + + Defines a row in a , contains , parent is . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this instance is header row. + + + + + A HTML renderer for a . + + + + + + An inline for TaskList. + + + + + Extension to enable TaskList. + + + + + The inline parser for SmartyPants. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the list class used for a task list. + + + + + Gets or sets the list item class used for a task list. + + + + + Extension that allows setting line-endings for any IMarkdownRenderer + that inherits from + + + + + + A YAML frontmatter block. + + + + + + Initializes a new instance of the class. + + The parser. + + + + Extension to discard a YAML frontmatter at the beginning of a Markdown document. + + + + + Allows the to appear in the middle of the markdown file. + + + + + Empty renderer for a + + + + + + Block parser for a YAML frontmatter. + + + + + + Allows the to appear in the middle of the markdown file. + + + + + Initializes a new instance of the class. + + + + + Creates the front matter block. + + The block processor + The front matter block + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Allows to associate characters to a data structures and query efficiently for them. + + + + + + Initializes a new instance of the class. + + The states. + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + Helper class for handling characters. + + + + + Class used to simplify a unicode char to a simple ASCII string + + + + + Converts a unicode char to a simple ASCII string. + + The input char. + The simple ASCII string or null if the char itself cannot be simplified + + + + A compact insert-only key/value collection for fast prefix lookups + Something between a Trie and a full Radix tree, but stored linearly in memory + + The value associated with the key + + + + Used internally to control behavior of insertion + Copied from internals + + + + + The default insertion behavior. Does not overwrite or throw. + + + + + Specifies that an existing entry with the same key should be overwritten if encountered. + + + + + Specifies that if an existing entry with the same key is encountered, an exception should be thrown. + + + + + The character this node represents, should never be 0 + + + + + Will be 0 if this is a leaf node + + + + + Set to -1 if it does not point to a match + + + + + -1 if not present + + + + + Gets the number of nodes in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal tree structure buffer + You might be looking for + + + + + Gets the number of key/value pairs contained in the + + + + + Gets or sets the capacity of the internal key/value pair buffer + + + + + Gets the size of the children buffer in the internal tree structure + You might be looking for + Exposing this might help in deducing more efficient initial parameters + + + + + Gets or sets the capacity of the internal children buffer + You might be looking for + + + + + Constructs a new with no initial prefixes + + + + + Constructs a new with the supplied matches + + Matches to initialize the with. For best lookup performance, this collection should be sorted. + + + + Retrieves the key/value pair at the specified index (must be lower than ) + + Index of pair to get, must be lower than (the order is the same as the order in which the elements were added) + The key/value pair of the element at the specified index + + + + Gets or sets the value associated with the specified key + + The key of the value to get or set + The value of the element with the specified key + + + + Gets the value associated with the specified key + + The key of the value to get + The key/value pair of the element with the specified key + + + + Adds the specified key/value pair to the + + The key of the element to add + The value of the element to add + + + + Adds the specified key/value pair to the + + The key/value pair to add + + + + Tries to add the key/value pair to the if the key is not yet present + + The key of the element to add + The value of the element to add + True if the element was added, false otherwise + + + + Tries to add the key/value pair to the if the key is not yet present + + The pair to add + True if the element was added, false otherwise + + + + Tries to find the longest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Tries to find the shortest prefix of text, that is contained in this + + The text in which to search for the prefix + The found prefix and the corresponding value + True if a match was found, false otherwise + + + + Determines whether the contains the specified key + + The key to locate in this + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets the value associated with the specified key + + The key of the value to get + The value associated with the specified key + True if the key is contained in this PrefixTree, false otherwise. + + + + Gets a collection containing the keys in this + + + + + Gets a collection containing the values in this + + + + + Returns an Enumerator that iterates through the . + Use the index accessor instead () + + + + + + Enumerates the elements of a + + + + + Increments the internal index + + True if the index is less than the length of the internal array + + + + Gets the at the current position + + + + + Does nothing + + + + + Resets the internal index to the beginning of the array + + + + + A default object cache that expect the type {T} to provide a parameter less constructor + + The type of item to cache + + + + + Helper class to decode an entity. + + + + + Decodes the given HTML entity to the matching Unicode characters. + + The entity without & and ; symbols, for example, copy. + The unicode character set or null if the entity was not recognized. + + + + Decodes the given UTF-32 character code to the matching set of UTF-16 characters. + + The unicode character set or null if the entity was not recognized. + + + + Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references + + + + + Helper to parse several HTML tags. + + + + + Destructively unescape a string: remove backslashes before punctuation or symbol characters. + + The string data that will be changed by unescaping any punctuation or symbol characters. + if set to true [remove back slash]. + + + + + Scans an entity. + Returns number of chars matched. + + + + + Provides a common interface for iterating characters + over a or . + + + + + Gets the current start character position. + + + + + Gets the current character. + + + + + Gets the end character position. + + + + + Goes to the next character, incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Goes to the next character, incrementing the position. + + + + + Peeks at the next character, without incrementing the position. + + The next character. `\0` is end of the iteration. + + + + Peeks at the next character, without incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + Gets a value indicating whether this instance is empty. + + + + + Trims whitespaces at the beginning of this slice starting from position. + + true if it has reaches the end of the iterator + + + + A line reader from a that can provide precise source position + + + + + Initializes a new instance of the class. + + + bufferSize cannot be <= 0 + + + + Gets the char position of the line. Valid for the next line before calling . + + + + + Reads a new line from the underlying and update the for the next line. + + A new line or null if the end of has been reached + + + + Helpers to parse Markdown links. + + + + + Represents a character or set of characters that represent a separation + between two lines of text + + + + + A simple object recycling system. + + Type of the object to cache + + + + Initializes a new instance of the class. + + + + + Clears this cache. + + + + + Gets a new instance. + + + + + + Releases the specified instance. + + The instance. + if instance is null + + + + Creates a new instance of {T} + + A new instance of {T} + + + + Resets the specified instance when is called before storing back to this cache. + + The instance. + + + + A List that provides methods for inserting/finding before/after. See remarks. + + Type of the list item + + We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace. + + + + Replaces with . + + Item type to find in the list + Object to replace this item with + true if a replacement was made; otherwise false. + + + + Replaces with or adds . + + Item type to find in the list + Object to add/replace the found item with + true if a replacement was made; otherwise false. + + + + Removes the first occurrence of + + + + + A StringBuilder that can be used locally in a method body only. + + + + + Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored. + + + + + + Extensions for StringBuilder + + + + + Appends the specified slice to this instance. + + The builder. + The slice. + + + + A struct representing a text line. + + + + + Initializes a new instance of the struct. + + The slice. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + Initializes a new instance of the struct. + + The slice. + The line. + The column. + The position. + The line separation. + + + + The slice used for this line. + + + + + The line position. + + + + + The position of the start of this line within the original source code + + + + + The column position. + + + + + The newline. + + + + + Performs an implicit conversion from to . + + The line. + + The result of the conversion. + + + + + A group of . + + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The text. + + + + + Gets the lines. + + + + + Gets the number of lines. + + + + + Clears this instance. + + + + + Removes the line at the specified index. + + The index. + + + + Adds the specified line to this instance. + + The line. + + + + Adds the specified slice to this instance. + + The slice. + + + + Converts the lines to a single by concatenating the lines. + + The position of the `\n` line offsets from the beginning of the returned slice. + A single slice concatenating the lines of this instance + + + + Converts this instance into a . + + + + + + Trims each lines of the specified . + + + + + The iterator used to iterate other the lines. + + + + + + A lightweight struct that represents a slice of a string. + + + + + + An empty string slice. + + + + + Initializes a new instance of the struct. + + The text. + + + + Initializes a new instance of the struct. + + The text. + The line separation. + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + + + + + Initializes a new instance of the struct. + + The text. + The start. + The end. + The line separation. + + + + + The text of this slice. + + + + + Gets or sets the start position within . + + + + + Gets or sets the end position (inclusive) within . + + + + + Gets the length. + + + + + Gets the current character. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets the at the specified index. + + The index. + A character in the slice at the specified index (not from but from the begining of the slice) + + + + Goes to the next character, incrementing the position. + + + The next character. `\0` is end of the iteration. + + + + + Goes to the next character, incrementing the position. + + + + + Peeks a character at the offset of 1 from the current position + inside the range and , returns `\0` if outside this range. + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current position + inside the range and , returns `\0` if outside this range. + + The offset. + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the string, without taking into account and + + The character at offset, returns `\0` if none. + + + + Peeks a character at the specified offset from the current beginning of the slice + without using the range or , returns `\0` if outside the . + + The offset. + The character at offset, returns `\0` if none. + + + + Matches the specified text. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Expect spaces until a end of line. Return false otherwise. + + true if whitespaces where matched until a end of line + + + + Matches the specified text using lowercase comparison. + + The text. + The offset. + true if the text matches; false otherwise + + + + Matches the specified text using lowercase comparison. + + The text. + The end. + The offset. + true if the text matches; false otherwise + + + + Searches the specified text within this slice. + + The text. + The offset. + true if ignore case + true if the text was found; false otherwise + + + + Searches for the specified character within this slice. + + A value >= 0 if the character was found, otherwise < 0 + + + + Trims whitespaces at the beginning of this slice starting from position. + + + true if it has reaches the end of the iterator + + + + + Trims whitespaces at the beginning of this slice starting from position. + + The number of spaces trimmed. + + + + Trims whitespaces at the end of this slice, starting from position. + + + + + + Trims whitespaces from both the start and end of this slice. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether this slice is empty or made only of whitespaces. + + true if this slice is empty or made only of whitespaces; false otherwise + + + + Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan + + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + + Base interface for an extension. + + + + + Setups this extension for the specified pipeline. + + The pipeline. + + + + Setups this extension for the specified renderer. + + The pipeline used to parse the document. + The renderer. + + + + Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. + + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Normalizes the specified markdown to a normalized markdown text. + + The markdown. + The destination that will receive the result of the conversion. + The normalize options + The pipeline. + A parser context used for the parsing. + A normalized markdown text. + + + + Converts a Markdown string to HTML. + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown document to HTML. + + A Markdown document. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + The HTML string. + If is null. + + + + Converts a Markdown string to HTML and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string using a custom . + + A Markdown text. + The renderer to convert Markdown to. + The pipeline used for the conversion. + A parser context used for the parsing. + if markdown or writer variable are null + + + + Parses the specified markdown into an AST + + The markdown text. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + An AST Markdown document + if markdown variable is null + + + + Parses the specified markdown into an AST + + The markdown text. + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if markdown variable is null + + + + Converts a Markdown string to Plain text and output to the specified writer. + + A Markdown text. + The destination that will receive the result of the conversion. + The pipeline used for the conversion. + A parser context used for the parsing. + The Markdown document that has been parsed + if reader or writer variable are null + + + + Converts a Markdown string to Plain text by using a . + + A Markdown text. + The pipeline used for the conversion. + A parser context used for the parsing. + The result of the conversion + if markdown variable is null + + + + Provides extension methods for to enable several Markdown extensions. + + + + + Adds the specified extension to the extensions collection. + + The type of the extension. + The instance of + + + + Adds the specified extension instance to the extensions collection. + + The pipeline. + The instance of the extension to be added. + The type of the extension. + The modified pipeline + + + + Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions. + + The pipeline. + The modified pipeline + + + + Uses this extension to enable alert blocks. + + The pipeline. + Replace the default renderer for the kind with a custom renderer + The modified pipeline + + + + Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy` + + The pipeline. + The options. + The modified pipeline + + + + Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE. + + The pipeline. + The modified pipeline + + + + Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer. + + The pipeline. + The modified pipeline + + + + Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See + + The pipeline. + The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions--> + The default extensions to configure if no pipeline setup was found from the Markdown document + The modified pipeline + + + + Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`) + + The pipeline. + The modified pipeline + + + + Uses the diagrams extension + + The pipeline. + The modified pipeline + + + + Uses precise source code location (useful for syntax highlighting). + + The pipeline. + The modified pipeline + + + + Uses the task list extension. + + The pipeline. + The modified pipeline + + + + Uses the custom container extension. + + The pipeline. + The modified pipeline + + + + Uses the media extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the auto-identifier extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the SmartyPants extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the bootstrap extension. + + The pipeline. + The modified pipeline + + + + Uses the math extension. + + The pipeline. + The modified pipeline + + + + Uses the figure extension. + + The pipeline. + The modified pipeline + + + + Uses the custom abbreviation extension. + + The pipeline. + The modified pipeline + + + + Uses the definition lists extension. + + The pipeline. + The modified pipeline + + + + Uses the pipe table extension. + + The pipeline. + The options. + + The modified pipeline + + + + + Uses the grid table extension. + + The pipeline. + The modified pipeline + + + + Uses the cite extension. + + The pipeline. + The modified pipeline + + + + Uses the footer extension. + + The pipeline. + The modified pipeline + + + + Uses the footnotes extension. + + The pipeline. + The modified pipeline + + + + Uses the softline break as hardline break extension + + The pipeline. + The modified pipeline + + + + Uses the strikethrough superscript, subscript, inserted and marked text extensions. + + The pipeline. + The options to enable. + + The modified pipeline + + + + + Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items. + + The pipeline. + + The modified pipeline + + + + + Uses the generic attributes extension. + + The pipeline. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable smileys in addition to emoji shortcodes, true by default. + The modified pipeline + + + + Uses the emojis and smileys extension. + + The pipeline. + Enable customization of the emojis and smileys mapping. + The modified pipeline + + + + Add rel=nofollow to all links rendered to HTML. + + + + + + + Automatically link references to JIRA issues + + The pipeline + Set of required options + The modified pipeline + + + + Adds support for right-to-left content by adding appropriate html attribtues. + + The pipeline + The modified pipeline + + + + This will disable the HTML support in the markdown processor (for constraint/safe parsing). + + The pipeline. + The modified pipeline + + + + Configures the pipeline using a string that defines the extensions to activate. + + The pipeline (e.g: advanced for , pipetables+gridtables for and + The extensions to activate as a string + The modified pipeline + + + + Configures the string to be used for line-endings, when writing. + + The pipeline. + The string to be used for line-endings. + The modified pipeline + + + + Disables parsing of ATX and Setex headings + + The pipeline. + The modified pipeline + + + + Enables parsing and tracking of trivia characters + + The pipeline. + he modified pipeline + + + + Provides a context that can be used as part of parsing Markdown documents. + + + + + Gets or sets the context property collection. + + + + + Initializes a new instance of the class. + + + + + This class is the Markdown pipeline build from a . + An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs. + + + + + Initializes a new instance of the class. + + + + + The read-only list of extensions used to build this pipeline. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Allows to setup a . + + The markdown renderer to setup + + + + This class allows to modify the pipeline to parse and render a Markdown document. + + NOTE: A pipeline is not thread-safe. + + + + Initializes a new instance of the class. + + + + + Gets the block parsers. + + + + + Gets the inline parsers. + + + + + Gets the register extensions. + + + + + Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements) + + + + + Gets or sets the debug log. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Occurs when a document has been processed after the method. + + + + + Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified. + + An extension cannot be null + + + + Delegates called when processing a block + + + + + Base class for a parser of a + + + + + + Determines whether the specified char is an opening character. + + The character. + true if the specified char is an opening character. + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + A List of . + + + + + + Initializes a new instance of the class. + + The parsers. + + + + The block processor. + + + + + Initializes a new instance of the class. + + The document to build blocks into. + The list of parsers. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the new blocks to push. A is required to push new blocks that it creates to this property. + + + + + Gets the list of s configured with this parser state. + + + + + Gets the parser context or null if none is available. + + + + + Gets the current active container. + + + + + Gets the last block that is opened. + + + + + Gets the last block that is created. + + + + + Gets the next block in a . + + + + + Gets the root document. + + + + + The current line being processed. + + + + + Gets or sets the current line start position. + + + + + Gets the index of the line in the source text. + + + + + Gets a value indicating whether the line is blank (valid only after has been called). + + + + + Gets the current character being processed. + + + + + Gets or sets the column. + + + + + Gets the position of the current character in the line being processed. + + + + + Gets the current indent position (number of columns between the previous indent and the current position). + + + + + Gets a value indicating whether a code indentation is at the beginning of the line being processed. + + + + + Gets the column position before the indent occurred. + + + + + Gets the character position before the indent occurred. + + + + + Gets a boolean indicating whether the current line being parsed is lazy continuation. + + + + + Gets the current stack of being processed. + + + + + Gets or sets the position of the first character trivia is encountered + and not yet assigned to a syntax node. + Trivia: only used when is enabled, otherwise 0. + + + + + Returns trivia that has not yet been assigned to any node and + advances the position of trivia to the ending position. + + End position of the trivia + + + + + Returns the current stack of to assign it to a . + Afterwards, the is set to null. + + + + + Gets or sets the stack of empty lines not yet assigned to any . + An entry may contain an empty . In that case the + is relevant. Otherwise, the + entry will contain trivia. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Get the current Container that is currently opened + + The current Container that is currently opened + + + + Returns the next character in the line being processed. Update and . + + The next character or `\0` if end of line is reached + + + + Returns the next character in the line taking into space taken by tabs. Update and . + + + + + Peeks a character at the specified offset from the current position in the line. + + The offset. + A character peeked at the specified offset + + + + Restarts the indent from the current position. + + + + + Parses the indentation from the current position in the line, updating , + , and accordingly + taking into account space taken by tabs. + + + + + Moves to the position to the specified column position, taking into account spaces in tabs. + + The new column position to move the cursor to. + + + + Unwind any previous indent from the current character back to the first space. + + + + + Moves to the position to the code indent ( + 4 spaces). + + The column offset to apply to this indent. + + + + Opens the specified block. + + The block. + + The block must be opened + + + + Force closing the specified block. + + The block. + + + + Discards the specified block from the stack, remove from its parent. + + The block. + + + + Processes a new line. + + The new line. + + + + Closes a block at the specified index. + + The index. + + + + Closes all the blocks opened. + + if set to true [force]. + + + + Mark all blocks in the stack as opened. + + + + + Updates the and . + + Index of a block in a stack considered as the last block to update from. + + + + Tries to continue matching existing opened . + + + A pending parser cannot add a new block when it is not the last pending block + or + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + + First phase of the process, try to open new blocks. + + + + + Tries to open new blocks using the specified list of + + The parsers. + true to continue processing the current line + + + + Processes any new blocks that have been pushed to . + + The last result of matching. + if set to true the processing of a new block will close existing opened blocks]. + The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed + + + + Defines the result of parsing a line for a . + + + + + A line is not accepted by this parser. + + + + + The parser is skipped. + + + + + The parser accepts a line and instruct to continue. + + + + + The parser accepts a line, instruct to continue but discard the line (not stored on the block) + + + + + The parser is ending a block, instruct to stop and keep the line being processed. + + + + + The parser is ending a block, instruct to stop and discard the line being processed. + + + + + Extensions used by . + + + + + Determines whether this is discarded. + + State of the block. + true if the block state is in discard state + + + + Determines whether this is in a continue state. + + State of the block. + true if the block state is in continue state + + + + Determines whether this is in a break state. + + State of the block. + true if the block state is in break state + + + + Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~) + + The parser processor. + The being processed line. + The fenced code block. + The opening character for the fenced code block (usually ` or ~) + true if parsing of the line is successfull; false otherwise + + + + Gets or sets the information parser. + + + + + A delegates that allows to process attached attributes + + + + + Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters) + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the language prefix (default is "language-") + + + + + The roundtrip parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + The default parser for the information after the fenced code block special characters (usually ` or ~) + + The parser processor. + The line. + The fenced code block. + The opening character for this fenced code block. + true if parsing of the line is successfull; false otherwise + + + + Parser for a . + + + + + + Initializes a new instance of the class. + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the max count of the leading unescaped # characters + + + + + A delegates that allows to process attached attributes after # + + + + + Block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A delegates that allows to process attached attributes at time. + + The processor. + The slice to look for attached attributes. + The block. + true if attributes were found; otherwise false + + + + An interface used to tag that supports parsing + + + + + A delegates that allows to process attached attributes + + + + + Base interface for a . + + + + + + + Determines whether this instance can interrupt the specified block being processed. + + The parser processor. + The block being processed. + true if this parser can interrupt the specified block being processed. + + + + Tries to match a block opening. + + The parser processor. + The result of the match + + + + Tries to continue matching a block already opened. + + The parser processor. + The block already opened. + The result of the match. By default, don't expect any newline + + + + Called when a block matched by this parser is being closed (to allow final computation on the block). + + The parser processor. + The block being closed. + true to keep the block; false to remove it. True by default. + + + + Base interface for parsing an . + + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + Base interface for a block or inline parser. + + The type of processor. + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Block parser for an indented . + + + + + + Base class for parsing an . + + + + + + Tries to match the specified slice. + + The parser processor. + The text slice. + true if this parser found a match; false otherwise + + + + A list of . + + + + + + Gets the registered post inline processors. + + + + + A delegate called at inline processing stage. + + The processor. + The inline being processed. + + + + The inline parser state used by all . + + + + + Initializes a new instance of the class. + + The document. + The parsers. + A value indicating whether to provide precise source location. + A parser context used for the parsing. + Whether to parse trivia such as whitespace, extra heading characters and unescaped string values. + + + + + + Gets the current block being processed. + + + + + Gets a value indicating whether to provide precise source location. + + + + + Gets or sets the new block to replace the block being processed. + + + + + Gets or sets the current inline. Used by to return a new inline if match was successfull + + + + + Gets the root container of the current . + + + + + Gets the list of inline parsers. + + + + + Gets the parser context or null if none is available. + + + + + Gets the root document. + + + + + Gets or sets the index of the line from the begining of the document being processed. + + + + + Gets the parser states that can be used by using their property. + + + + + Gets or sets the debug log writer. No log if null. + + + + + True to parse trivia such as whitespace, extra heading characters and unescaped + string values. + + + + + Gets the literal inline parser. + + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The line index. + The column. + The source position + + + + Gets the source position for the specified offset within the current slice. + + The slice offset. + The source position + + + + Replace a parent container. This method is experimental and should be used with caution. + + The previous parent container to replace + The new parent container + If a new parent container has been already setup. + + + + Processes the inline of the specified . + + The leaf block. + + + + An inline parser for parsing . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to enable HTML parsing. Default is true + + + + + An inline parser for a . + + + + + + Initializes a new instance of the class. + + + + + Descriptor for an emphasis. + + + + + Initializes a new instance of the class. + + The character used for this emphasis. + The minimum number of character. + The maximum number of characters. + if set to true the emphasis can be used inside a word. + + + + The character of this emphasis. + + + + + The minimum number of character this emphasis is expected to have (must be >=1) + + + + + The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount) + + + + + This emphasis can be used within a word. + + + + + An inline parser for . + + + + + + + Initializes a new instance of the class. + + + + + Gets the emphasis descriptors. + + + + + Determines whether this parser is using the specified character as an emphasis delimiter. + + The character to look for. + true if this parser is using the specified character as an emphasis delimiter; otherwise false + + + + Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class) + + + + + An inline parser for escape characters. + + + + + + An inline parser for HTML entities. + + + + + + Initializes a new instance of the class. + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false + + + + + An inline parser for . + + + + + + Initializes a new instance of the class. + + + + + An inline parser for parsing . + + + + + + We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part + of the default parser pipeline (and should always be the last), working as a literal character + collector. + + + + + Gets or sets the post match delegate called after the inline has been processed. + + + + + A processor called at the end of processing all inlines. + + + + + Processes the delimiters. + + The parser state. + The root inline. + The last child. + Index of this delimiter processor. + + true to continue to the next delimiter processor; + false to stop the process (in case a processor is performing sub-sequent processor itself) + + + + A parser for a list block and list item block. + + + + + + Initializes a new instance of the class. + + + + + Gets the parsers for items. + + + + + Defines list information returned when trying to parse a list item with + + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + Initializes a new instance of the struct. + + Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I') + The string used as a starting sequence for an ordered list. + The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I'). + + + + + Gets or sets the string used as a starting sequence for an ordered list + + + + + Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`) + + + + + Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list) + + + + + A parser base class for a list item. + + + + + Defines the characters that are used for detecting this list item. + + + + + Tries to parse the current input as a list item for this particular instance. + + The block processor + The type of the current bullet type + The result of parsing + true if parsing was successful; false otherwise + + + + Delegates called when processing a document + + The markdown document. + + + + The Markdown parser. + + + + + Parses the specified markdown into an AST + + A Markdown text + The pipeline used for the parsing. + A parser context used for the parsing. + An AST Markdown document + if reader variable is null + + + + Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs) + + The text to secure. + + + + The default parser for parsing numbered list item (e.g: 1) or 1.) + + + + + + Initializes a new instance of the class. + + + + + Base class for an ordered list item parser. + + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`) + + + + + Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`). + + The state. + The ordered delimiter found if this method is successful. + true if parsing was successful; false otherwise. + + + + Block parser for a . + + + + + + Base class for a or . + + Type of the parser processor + + + + + Gets the opening characters this parser will be triggered if the character is found. + + + + + Initializes this parser with the specified parser processor. + + + + + Gets the index of this parser in or . + + + + + Base class for a list of parsers. + + Type of the parser + The type of the parser state. + + + + + Gets the list of global parsers (that don't have any opening characters defined) + + + + + Gets all the opening characters defined. + + + + + Gets the list of parsers valid for the specified opening character. + + The opening character. + A list of parsers valid for the specified opening character or null if no parsers registered. + + + + Searches for an opening character from a registered parser in the specified string. + + The text. + The start. + The end. + Index position within the string of the first opening character found in the specified text; if not found, returns -1 + + + + A block parser for a . + + + + + + Initializes a new instance of the class. + + + + + A block parser for a . + + + + + + A singleton instance used by other parsers. + + + + + Initializes a new instance of the class. + + + + + The default parser used to parse unordered list item (-, +, *) + + + + + + Initializes a new instance of the class. + + + + + An HTML renderer for a and . + + + + + + Initializes a new instance of the class. + + + + + Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks. + + + + + Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks. + For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element. + + + + + An HTML renderer for a . + + + + + + Attached HTML attributes to a . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the HTML id/identifier. May be null. + + + + + Gets or sets the CSS classes attached. May be null. + + + + + Gets or sets the additional properties. May be null. + + + + + Adds a CSS class. + + The css class name. + + + + Adds a property. + + The name. + The value. + + + + Adds the specified property only if it does not already exist. + + The name. + The value. + + + + Copies/merge the values from this instance to the specified instance. + + The HTML attributes. + If set to true it will merge properties to the target htmlAttributes. Default is false + If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true + + + + + Extensions for a to allow accessing + + + + + Tries the get stored on a . + + The markdown object. + The attached html attributes or null if not found + + + + Gets or creates the stored on a + + The markdown object. + The attached html attributes + + + + Sets to the + + The markdown object. + The attributes to attach. + + + + A HTML renderer for a . + + + + + + A base class for HTML rendering and Markdown objects. + + The type of the object. + + + + + A HTML renderer for an . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for an . + + + + + + Delegates to get the tag associated to an object. + + The object. + The HTML tag associated to this object + + + + Initializes a new instance of the class. + + + + + Gets or sets the GetTag delegate. + + + + + Gets the default HTML tag for ** and __ emphasis. + + The object. + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />) + + + + + A HTML renderer for a . + + + + + + Gets or sets a value indicating whether to always add rel="nofollow" for links or not. + + + + + Gets or sets the literal string in property rel for links + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + A HTML renderer for a . + + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some inline elements (for image links). + + + + + Gets or sets a value indicating whether to output HTML tags when rendering. See remarks. + + + This is used by some renderers to disable HTML tags when rendering some block elements (for image links). + + + + + Gets or sets a value indicating whether to use implicit paragraph (optional <p>) + + + + + Gets a value to use as the base url for all relative links + + + + + Allows links to be rewritten + + + + + Writes the content escaped for HTML. + + The content. + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The slice. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + The offset. + The length. + Only escape < and & + This instance + + + + Writes the content escaped for HTML. + + The content. + Only escape < and & + + + + Writes the URL escaped for HTML. + + The content. + This instance + + + + Writes the attached on the specified . + + The object. + + + + + Writes the specified . + + The attributes to render. + A class filter used to transform a class into another class at writing time + This instance + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + if set to true escape the content for HTML + Only escape < and & + This instance + + + + Base interface for the renderer of a . + + + + + Accepts the specified . + + The renderer. + The of the Markdown object. + true If this renderer is accepting to render the specified Markdown object + + + + Writes the specified to the . + + The renderer. + The object to render. + + + + Base interface for a renderer for a Markdown . + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Gets the object renderers that will render and elements. + + + + + Renders the specified markdown object. + + The markdown object. + The result of the rendering. + + + + A base class for rendering and Markdown objects. + + The type of the renderer. + The type of the object. + + + + + Gets the optional writers attached to this instance. + + + + + Writes the specified Markdown object to the renderer. + + The renderer. + The markdown object. + + + + An Normalize renderer for a and . + + + + + + An Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />) + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Defines the options used by + + + + + Initialize a new instance of + + + + + Adds a space after a QuoteBlock >. Default is true + + + + + Adds an empty line after a code block (fenced and tabbed). Default is true + + + + + Adds an empty line after an heading. Default is true + + + + + Adds an empty line after an thematic break. Default is true + + + + + The bullet character used for list items. Default is null leaving the original bullet character as-is. + + + + + Expands AutoLinks to the normal inline representation. Default is true + + + + + Default HTML renderer for a Markdown object. + + + + + + Initializes a new instance of the class. + + The writer. + The normalize options + + + + Writes the lines of a + + The leaf block. + if set to true write end of lines. + Whether to write indents. + This instance + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A collection of . + + + + + + Base class for a . + + + + + + Initializes a new instance of the class. + + + + + Occurs when before writing an object. + + + + + Occurs when after writing an object. + + + + + Writes the children of the specified . + + The container block. + + + + Writes the children of the specified . + + The container inline. + + + + Writes the specified Markdown object. + + The Markdown object to write to this renderer. + + + + An Roundtrip renderer for a and . + + + + + + An Roundtrip renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for an . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + + A Normalize renderer for a . + + + + + A Normalize renderer for a . + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + + A Roundtrip renderer for a . + + + + + A base class for Normalize rendering and Markdown objects. + + The type of the object. + + + + + Markdown renderer honoring trivia for a object. + + Ensure to call the extension method when + parsing markdown to have trivia available for rendering. + + + + Initializes a new instance of the class. + + The writer. + + + + Writes the lines of a + + The leaf block. + This instance + + + + A Roundtrip renderer for a . + + + + + + A text based . + + + + + + Initializes a new instance of the class. + + The writer. + + + + + Gets or sets the writer. + + if the value is null + + + + Renders the specified markdown object (returns the as a render object). + + The markdown object. + + + + + Typed . + + Type of the renderer + + + + + Initializes a new instance of the class. + + The writer. + + + + Ensures a newline. + + This instance + + + + Writes the specified content. + + The content. + This instance + + + + Writes the specified char repeated a specified number of times. + + The char to write. + The number of times to write the char. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified slice. + + The slice. + This instance + + + + Writes the specified character. + + The content. + This instance + + + + Writes the specified content. + + The content. + The offset. + The length. + This instance + + + + Writes the specified content. + + The content. + + + + Writes a newline. + + This instance + + + + Writes a newline. + + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes a content followed by a newline. + + The content. + This instance + + + + Writes the inlines of a leaf inline. + + The leaf block. + This instance + + + + A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document. + + + + + + Initializes a new instance of the class. + + + + + Base class for a block structure. Either a or a . + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + The last newline of this block. + Trivia: only parsed when is enabled + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Gets or sets the trivia right before this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets trivia occurring after this block. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the empty lines occurring before this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Gets or sets the empty lines occurring after this block. + Trivia: only parsed when is enabled, otherwise null. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Called when the process of inlines begin. + + The inline parser state. + + + + Called when the process of inlines ends. + + The inline parser state. + + + + Extensions for + + + + + Helpers for the class. + + + + + Represents an indented code block. + + + Related to CommonMark spec: 4.4 Indented code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + A base class for container blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets the last child. + + + + + Specialize enumerator. + + + + + + Represents a fenced code block. + + + Related to CommonMark spec: 4.5 Fenced code blocks + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the indent count when the fenced code block was indented + and we need to remove up to indent count chars spaces from the beginning of a line. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a heading. + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the header character used to defines this heading (usually #) + + + + + Gets or sets the level of heading (starting at 1 for the lowest level). + + + + + True if this heading is a Setext heading. + + + + + Gets or sets the amount of - or = characters when is true. + + + + + Gets or sets the newline of the first line when is true. + Trivia: only parsed when is enabled. + + + + + Gets or sets the whitespace after the # character when is false. + Trivia: only parsed when is enabled, otherwise + . + + + + + Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output). + + + + + + Initializes a new instance of the class. + + The parser. + + + + Gets or sets the type of block. + + + + + Defines the type of + + + + + A SGML document type starting by <!LETTER. + + + + + A raw CDATA sequence. + + + + + A HTML comment. + + + + + A SGM processing instruction tag <? + + + + + A script pre or style tag. + + + + + An HTML interrupting block + + + + + An HTML non-interrupting block + + + + + Base interface for a block structure. Either a or a . + + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + Gets the parent of this container. May be null. + + + + + Gets the parser associated to this instance. + + + + + Gets or sets a value indicating whether this instance is still open. + + + + + Gets or sets a value indicating whether this block is breakable. Default is true. + + + + + Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed. + + + + + Occurs when the process of inlines begin. + + + + + Occurs when the process of inlines ends for this instance. + + + + + Trivia occurring before this block + + Trivia: only parsed when is enabled, otherwise . + + + + Trivia occurring after this block + + Trivia: only parsed when is enabled, otherwise . + + + + A common interface for fenced block (e.g: or ) + + + + + Gets or sets the fenced character used to open and close this fenced code block. + + + + + Gets or sets the fenced character count used to open this fenced code block. + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the language parsed after the first line of + the fenced code block. May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the arguments after the . + May be null. + + + + + Non-escaped exactly as in source markdown. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Newline of the line with the opening fenced chars. + Trivia: only parsed when is enabled, otherwise + . + + + + + Trivia before the closing fenced chars + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the fenced character count used to close this fenced code block. + + + + + Newline after the last line, which is always the line containing the closing fence chars. + "Inherited" from . + Trivia: only parsed when is enabled, otherwise + . + + + + + Base interface for a the Markdown syntax tree + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + An autolink (Section 6.7 CommonMark specs) + + + + + + Gets or sets a value indicating whether this instance is an email link. + + + + + Gets or sets the URL of this link. + + + + + Represents a code span (Section 6.3 CommonMark specs) + + + + + + Gets or sets the delimiter character used by this code inline. + + + + + Gets or sets the amount of delimiter characters used + + + + + Gets or sets the content of the span. + + + + + Gets or sets the content with trivia and whitespace. + Trivia: only parsed when is enabled, otherwise + . + + + + + A base class for container for . + + + + + + Gets the parent block of this inline. + + + + + Gets the first child. + + + + + Gets the last child. + + + + + Clears this instance by removing all its children. + + + + + Appends a child to this container. + + The child to append to this container.. + This instance + If child is null + Inline has already a parent + + + + Checks if this instance contains the specified child. + + The child to find. + true if this instance contains the specified child; false otherwise + + + + Finds all the descendants. + + Type of the descendants to find + An enumeration of T + + + + Moves all the children of this container after the specified inline. + + The parent. + + + + Embraces this instance by the specified container. + + The container to use to embrace this instance. + If the container is null + + + + Internal delimiter used by some parsers (e.g emphasis, tables). + + + + + + Gets the parser. + + + + + Gets or sets the type of this delimiter. + + + + + Gets or sets a value indicating whether this instance is active. + + + + + Converts this delimiter to a literal. + + The string representation of this delimiter + + + + Gets the type of a . + + + + + An undefined open or close delimiter. + + + + + An open delimiter. + + + + + A close delimiter. + + + + + A delimiter used for parsing emphasis. + + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + + + + + Initializes a new instance of the class. + + The parser. + The descriptor. + The content. + + + + + Gets the descriptor for this emphasis. + + + + + The delimiter character found. + + + + + The number of delimiter characters found for this delimiter. + + + + + The content as a . + + + + + An emphasis and strong emphasis (Section 6.4 CommonMark specs). + + + + + + Gets or sets the delimiter character of this emphasis. + + + + + Gets or sets a value indicating whether this is strong. + Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters + + + + + Gets or sets the number of delimiter characters for this emphasis. + + + + + An entity HTML. + + + + + + Gets or sets the original HTML entity name + + + + + Gets or sets the transcoded literal that will be used for output + + + + + A Raw HTML (Section 6.8 CommonMark specs). + + + + + + Gets or sets the full declaration of this tag. + + + + + Base interface for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Base class for all syntax tree inlines. + + + + + + Gets the parent container of this inline. + + + + + Gets the previous inline. + + + + + Gets the next sibling inline. + + + + + Gets or sets a value indicating whether this instance is closed. + + + + + Inserts the specified inline after this instance. + + The inline to insert after this instance. + + Inline has already a parent + + + + Inserts the specified inline before this instance. + + The inline previous to insert before this instance. + + Inline has already a parent + + + + Removes this instance from the current list and its parent + + + + + Replaces this inline by the specified inline. + + The inline. + if set to true the children of this instance are copied to the specified inline. + The last children + If inline is null + + + + Determines whether this instance contains a parent of the specified type. + + Type of the parent to check + true if this instance contains a parent of the specified type; false otherwise + + + + Iterates on parents of the specified type. + + Type of the parent to iterate over + An enumeration on the parents of the specified type + + + + Dumps this instance to . + + The writer. + + + + + Dumps this instance to . + + The writer. + The level of indent. + if writer is null + + + + A base class for a leaf inline. + + + + + + A base class for a line break. + + + + + + A delimiter for a link. + + + + + + Gets or sets a value indicating whether this delimiter is an image link. + + + + + Gets or sets the label of this link. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + A Link inline (Section 6.5 CommonMark specs) + + + + + + A delegate to use if it is setup on this instance to allow late binding + of a Url. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The URL. + The title. + + + + Gets or sets a value indicating whether this instance is an image link. + + + + + Gets or sets the label. + + + + + The label span + + + + + Gets or sets the with trivia. + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the type of label parsed + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the reference this link is attached to. May be null. + + + + + Gets or sets the label as matched against the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the with trivia as matched against + the + + + + + Gets or sets the trivia before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + True if the in the source document is enclosed + in pointy brackets. + Trivia: only parsed when is enabled, otherwise + false. + + + + + Gets or sets the URL. + + + + + The URL source span. + + + + + The but with trivia and unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Any trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the GetDynamicUrl delegate. If this property is set, + it is used instead of to get the Url from this instance. + + + + + Gets or sets the character used to enclose the . + Trivia: only parsed when is enabled. + + + + + Gets or sets the title. + + + + + The title source span. + + + + + Gets or sets the exactly as parsed from the + source document including unescaped characters + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the trivia after the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets a boolean indicating if this link is a shortcut link to a + + + + + Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized. + + + + + A literal inline. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The content. + + + + Initializes a new instance of the class. + + The text. + + + + + The content as a . + + + + + A boolean indicating whether the first character of this literal is escaped by `\`. + + + + + Base class for all leaf blocks. + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the string lines accumulated for this leaf block. + May be null after process inlines have occurred. + + + + + Gets or sets the inline syntax tree (may be null). + + + + + Gets or sets a value indicating whether must be processed + as inline into the property. + + + + + Appends the specified line to this instance. + + The slice. + The column. + The line. + + Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values. + + + + A link reference definition (Section 4.7 CommonMark specs) + + + + + + Creates an inline link for the specified . + + State of the inline. + The link reference. + The child. + An inline link or null to use the default implementation + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The label. + The URL. + The title. + + + + Gets or sets the label. Text is normalized according to spec. + + https://spec.commonmark.org/0.29/#matches + + + + The label span + + + + + Non-normalized Label (includes trivia) + Trivia: only parsed when is enabled, otherwise + . + + + + + Whitespace before the . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the URL. + + + + + The URL span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + True when the is enclosed in point brackets in the source document. + Trivia: only parsed when is enabled, otherwise + false. + + + + + gets or sets the whitespace before a . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the title. + + + + + The title span + + + + + Non-normalized . + Trivia: only parsed when is enabled, otherwise + . + + + + + Gets or sets the character the is enclosed in. + Trivia: only parsed when is enabled, otherwise \0. + + + + + Gets or sets the create link inline callback for this instance. + + + This callback is called when an inline link is matching this reference definition. + + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + true if parsing is successful; false otherwise + + + + Tries to the parse the specified text into a definition. + + Type of the text + The text. + The block. + + + + + + + + true if parsing is successful; false otherwise + + + + Extension methods for accessing attached at the document level. + + + + + Contains all the found in a document. + + + + + + Initializes a new instance of the class. + + + + + Gets an association between a label and the corresponding + + + + + A list (Section 5.3 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets a value indicating whether the list is ordered. + + + + + Gets or sets the bullet character used by this list. + + + + + Gets or sets the ordered start number (valid when is true) + + + + + Gets or sets the default ordered start ("1" for BulletType = '1') + + + + + Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item. + + + + + Gets or sets a value indicating whether this instance is loose. + + + + + A list item (Section 5.2 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + The number defined for this in an ordered list + + + + + Gets or sets the bullet as parsed in the source document. + Trivia: only parsed when is enabled, otherwise + . + + + + + The root Markdown document. + + + + + + Initializes a new instance of the class. + + + + + Gets the number of lines in this + + + + + Gets a list of zero-based indexes of line beginnings in the source span + Available if is used, otherwise null + + + + + Base implementation for a the Markdown syntax tree. + + + + + The attached datas. Use internally a simple array instead of a Dictionary{Object,Object} + as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes) + so it will gives faster access than a Dictionary, and lower memory occupation + + + + + Gets or sets the text column this instance was declared (zero-based). + + + + + Gets or sets the text line this instance was declared (zero-based). + + + + + The source span + + + + + Gets a string of the location in the text. + + + + + + Stores a key/value pair for this instance. + + The key. + The value. + if key is null + + + + Determines whether this instance contains the specified key data. + + The key. + true if a data with the key is stored + if key is null + + + + Gets the associated data for the specified key. + + The key. + The associated data or null if none + if key is null + + + + Removes the associated data for the specified key. + + The key. + true if the data was removed; false otherwise + + + + + Extensions for visiting or + + + + + Iterates over the descendant elements for the specified markdown element, including and . + The descendant elements are returned in DFS-like order. + + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element, including and and filters by the type . + The descendant elements are returned in DFS-like order. + + Type to use for filtering the descendants + The markdown object. + An iteration over the descendant elements + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The inline markdown object. + + An iteration over the descendant elements + + + + + Iterates over the descendant elements for the specified markdown element and filters by the type . + + Type to use for filtering the descendants + The markdown object. + + An iteration over the descendant elements + + + + + Block representing a document with characters but no blocks. This can + happen when an input document consists solely of trivia. + + + + + Represents a paragraph. + + + Related to CommonMark spec: 4.8 Paragraphs + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + A block quote (Section 5.1 CommonMark specs) + + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + + Gets or sets the trivia per line of this QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets the quote character (usually `>`) + + + + + Represents trivia per line part of a QuoteBlock. + Trivia: only parsed when is enabled. + + + + + Gets or sets trivia occurring before the first quote character. + + + + + True when this QuoteBlock line has a quote character. False when + this line is a "lazy line". + + + + + True if a space is parsed right after the quote character. + + + + + Gets or sets the trivia after the the space after the quote character. + The first space is assigned to , subsequent + trivia is assigned to this property. + + + + + Gets or sets the newline of this QuoeBlockLine. + + + + + A span of text. + + + + + Initializes a new instance of the struct. + + The start. + The end. + + + + Gets or sets the starting character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets or sets the ending character position from the original text source. + Note that for inline elements, this is only valid if is setup on the pipeline. + + + + + Gets the character length of this element within the original source code. + + + + + Represents a thematic break (Section 4.1 CommonMark specs). + + + + + Initializes a new instance of the class. + + The parser used to create this block. + + + diff --git a/packages/Markdig.0.41.3/markdig.png b/packages/Markdig.0.41.3/markdig.png new file mode 100644 index 0000000..46d3220 Binary files /dev/null and b/packages/Markdig.0.41.3/markdig.png differ diff --git a/packages/Markdig.0.41.3/readme.md b/packages/Markdig.0.41.3/readme.md new file mode 100644 index 0000000..60644a1 --- /dev/null +++ b/packages/Markdig.0.41.3/readme.md @@ -0,0 +1,167 @@ +# Markdig [![ci](https://github.com/xoofx/markdig/actions/workflows/ci.yml/badge.svg)](https://github.com/xoofx/markdig/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/xoofx/markdig/badge.svg?branch=master)](https://coveralls.io/github/xoofx/markdig?branch=master) [![NuGet](https://img.shields.io/nuget/v/Markdig.svg)](https://www.nuget.org/packages/Markdig/) [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FRGHXBTP442JL) + + + +Markdig is a fast, powerful, [CommonMark](https://commonmark.org/) compliant, extensible Markdown processor for .NET. + +> NOTE: The repository is under construction. There will be a dedicated website and proper documentation at some point! + +You can **try Markdig online** and compare it to other implementations on [babelmark3](https://babelmark.github.io/?text=Hello+**Markdig**!) + +## Features + +- **Very fast parser and html renderer** (no-regexp), very lightweight in terms of GC pressure. See benchmarks +- **Abstract Syntax Tree** with precise source code location for syntax tree, useful when building a Markdown editor. + - Checkout [Markdown Editor v2 for Visual Studio 2022](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.MarkdownEditor2) powered by Markdig! +- Converter to **HTML** +- Passing more than **600+ tests** from the latest [CommonMark specs (0.31.2)](https://spec.commonmark.org/) +- Includes all the core elements of CommonMark: + - including **GFM fenced code blocks**. +- **Extensible** architecture + - Even the core Markdown/CommonMark parsing is pluggable, so it allows to disable builtin Markdown/Commonmark parsing (e.g [Disable HTML parsing](https://github.com/lunet-io/markdig/blob/7964bd0160d4c18e4155127a4c863d61ebd8944a/src/Markdig/MarkdownExtensions.cs#L306)) or change behaviour (e.g change matching `#` of a headers with `@`) +- [**Roundtrip support**](./src/Markdig/Roundtrip.md): Parses trivia (whitespace, newlines and other characters) to support lossless parse â­¢ render roundtrip. This enables changing markdown documents without introducing undesired trivia changes. +- Built-in with **20+ extensions**, including: + - 2 kind of tables: + - [**Pipe tables**](src/Markdig.Tests/Specs/PipeTableSpecs.md) (inspired from GitHub tables and [PanDoc - Pipe Tables](https://pandoc.org/MANUAL.html#extension-pipe_tables)) + - [**Grid tables**](src/Markdig.Tests/Specs/GridTableSpecs.md) (inspired from [Pandoc - Grid Tables](https://pandoc.org/MANUAL.html#extension-grid_tables)) + - [**Extra emphasis**](src/Markdig.Tests/Specs/EmphasisExtraSpecs.md) (inspired from [Pandoc - Emphasis](https://pandoc.org/MANUAL.html#strikeout) and [Markdown-it](https://markdown-it.github.io/)) + - strike through `~~`, + - Subscript `~` + - Superscript `^` + - Inserted `++` + - Marked `==` + - [**Special attributes**](src/Markdig.Tests/Specs/GenericAttributesSpecs.md) or attached HTML attributes (inspired from [PHP Markdown Extra - Special Attributes](https://michelf.ca/projects/php-markdown/extra/#spe-attr)) + - [**Definition lists**](src/Markdig.Tests/Specs/DefinitionListSpecs.md) (inspired from [PHP Markdown Extra - Definitions Lists](https://michelf.ca/projects/php-markdown/extra/#def-list)) + - [**Footnotes**](src/Markdig.Tests/Specs/FootnotesSpecs.md) (inspired from [PHP Markdown Extra - Footnotes](https://michelf.ca/projects/php-markdown/extra/#footnotes)) + - [**Auto-identifiers**](src/Markdig.Tests/Specs/AutoIdentifierSpecs.md) for headings (similar to [Pandoc - Auto Identifiers](https://pandoc.org/MANUAL.html#extension-auto_identifiers)) + - [**Auto-links**](src/Markdig.Tests/Specs/AutoLinks.md) generates links if a text starts with `http://` or `https://` or `ftp://` or `mailto:` or `www.xxx.yyy` + - [**Task Lists**](src/Markdig.Tests/Specs/TaskListSpecs.md) inspired from [Github Task lists](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments). + - [**Extra bullet lists**](src/Markdig.Tests/Specs/ListExtraSpecs.md), supporting alpha bullet `a.` `b.` and roman bullet (`i`, `ii`...etc.) + - [**Media support**](src/Markdig.Tests/Specs/MediaSpecs.md) for media url (youtube, vimeo, mp4...etc.) (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/embedded-audio-and-video/441)) + - [**Abbreviations**](src/Markdig.Tests/Specs/AbbreviationSpecs.md) (inspired from [PHP Markdown Extra - Abbreviations](https://michelf.ca/projects/php-markdown/extra/#abbr)) + - [**Citation**](src/Markdig.Tests/Specs/FigureFooterAndCiteSpecs.md) text by enclosing `""...""` (inspired by this [CommonMark discussion ](https://talk.commonmark.org/t/referencing-creative-works-with-cite/892)) + - [**Custom containers**](src/Markdig.Tests/Specs/CustomContainerSpecs.md) similar to fenced code block `:::` for generating a proper `
...
` instead (inspired by this [CommonMark discussion ](https://talk.commonmark.org/t/custom-container-for-block-and-inline/2051)) + - [**Figures**](src/Markdig.Tests/Specs/FigureFooterAndCiteSpecs.md) (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/image-tag-should-expand-to-figure-when-used-with-title/265/5)) + - [**Footers**](src/Markdig.Tests/Specs/FigureFooterAndCiteSpecs.md) (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/syntax-for-footer/2070)) + - [**Mathematics**](src/Markdig.Tests/Specs/MathSpecs.md)/Latex extension by enclosing `$$` for block and `$` for inline math (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/mathematics-extension/457/31)) + - [**Soft lines as hard lines**](src/Markdig.Tests/Specs/HardlineBreakSpecs.md) + - [**Emoji**](src/Markdig.Tests/Specs/EmojiSpecs.md) support (inspired from [Markdown-it](https://markdown-it.github.io/)) + - [**SmartyPants**](src/Markdig.Tests/Specs/SmartyPantsSpecs.md) (inspired from [Daring Fireball - SmartyPants](https://daringfireball.net/projects/smartypants/)) + - [**Bootstrap**](src/Markdig.Tests/Specs/BootstrapSpecs.md) class (to output bootstrap class) + - [**Diagrams**](src/Markdig.Tests/Specs/DiagramsSpecs.md) extension whenever a fenced code block contains a special keyword, it will be converted to a div block with the content as-is (currently, supports [`mermaid`](https://mermaid.js.org) and [`nomnoml`](https://github.com/skanaar/nomnoml) diagrams) + - [**YAML Front Matter**](src/Markdig.Tests/Specs/YamlSpecs.md) to parse without evaluating the front matter and to discard it from the HTML output (typically used for previewing without the front matter in MarkdownEditor) + - [**JIRA links**](src/Markdig.Tests/Specs/JiraLinks.md) to automatically generate links for JIRA project references (Thanks to @clarkd: https://github.com/clarkd/MarkdigJiraLinker) +- Starting with Markdig version `0.20.0+`, Markdig is compatible only with `NETStandard 2.0`, `NETStandard 2.1`, `NETCoreApp 2.1` and `NETCoreApp 3.1`. + +If you are looking for support for an old .NET Framework 3.5 or 4.0, you can download Markdig `0.18.3`. + +### Third Party Extensions + +- [**WPF/XAML Markdown Renderer**: `markdig.wpf`](https://github.com/Kryptos-FR/markdig.wpf) +- [**WPF/XAML Markdown Renderer**: `Neo.Markdig.Xaml`](https://github.com/neolithos/NeoMarkdigXaml) +- [**Syntax highlighting**: `Markdig.SyntaxHighlighting`](https://github.com/RichardSlater/Markdig.SyntaxHighlighting) +- [**Syntax highlighting using ColorCode-Universal**: `Markdown.ColorCode`](https://github.com/wbaldoumas/markdown-colorcode) +- [**Syntax highlighting using Prism.js**: `WebStoating.Markdig.Prism`](https://github.com/ilich/Markdig.Prism) +- [**Embedded C# scripting**: `Markdig.Extensions.ScriptCs`](https://github.com/macaba/Markdig.Extensions.ScriptCs) + +## Documentation + +> The repository is under construction. There will be a dedicated website and proper documentation at some point! + +While there is not yet a dedicated documentation, you can find from the [specs documentation](src/Markdig.Tests/Specs/readme.md) how to use these extensions. + +In the meantime, you can have a "behind the scene" article about Markdig in my blog post ["Implementing a Markdown Engine for .NET"](https://xoofx.github.io/blog/2016/06/13/implementing-a-markdown-processor-for-dotnet/) + +## Download + +Markdig is available as a NuGet package: [![NuGet](https://img.shields.io/nuget/v/Markdig.svg)](https://www.nuget.org/packages/Markdig/) + +Also [Markdig.Signed](https://www.nuget.org/packages/Markdig.Signed/) NuGet package provides signed assemblies. + +## Usage + +The main entry point for the API is the `Markdig.Markdown` class: + +By default, without any options, Markdig is using the plain CommonMark parser: + +```csharp +var result = Markdown.ToHtml("This is a text with some *emphasis*"); +Console.WriteLine(result); // prints:

This is a text with some emphasis

+``` + +In order to activate most of all advanced extensions (except Emoji, SoftLine as HardLine, Bootstrap, YAML Front Matter, JiraLinks and SmartyPants) + +```csharp +// Configure the pipeline with all advanced extensions active +var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build(); +var result = Markdown.ToHtml("This is a text with some *emphasis*", pipeline); +``` + +[Try it online!](https://dotnetfiddle.net/GoZXyI) + +You can have a look at the [MarkdownExtensions](https://github.com/lunet-io/markdig/blob/master/src/Markdig/MarkdownExtensions.cs) that describes all actionable extensions (by modifying the MarkdownPipeline) + +## Contributing + +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. For detailed contributing guidelines, please see [contributing.md](contributing.md). + +## Build + +In order to build Markdig, you need to install [.NET 6.0](https://dotnet.microsoft.com/en-us/download) + +## License + +This software is released under the [BSD-Clause 2 license](https://github.com/lunet-io/markdig/blob/master/license.txt). + + +## Benchmarking + +The latest benchmark was collected on April 23 2022, against the following implementations: + +- [Markdig](https://github.com/lunet-io/markdig) (version: 0.30.2): itself +- [cmark](https://github.com/commonmark/cmark) (version: 0.30.2): Reference C implementation of CommonMark, no support for extensions +- [CommonMark.NET(master)](https://github.com/Knagis/CommonMark.NET) (version: 0.15.1): CommonMark implementation for .NET, no support for extensions, port of cmark, deprecated. +- [MarkdownSharp](https://github.com/Kiri-rin/markdownsharp) (version: 2.0.5): Open source C# implementation of Markdown processor, as featured previously on Stack Overflow, regexp based. + +``` +// * Summary * + +BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22000 +AMD Ryzen 9 5950X, 1 CPU, 32 logical and 16 physical cores +.NET SDK=6.0.202 + [Host] : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT + DefaultJob : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT + + +| Method | Mean | Error | StdDev | +|------------------ |-----------:|----------:|----------:| +| markdig | 1.979 ms | 0.0221 ms | 0.0185 ms | +| cmark | 2.571 ms | 0.0081 ms | 0.0076 ms | +| CommonMark.NET | 2.016 ms | 0.0169 ms | 0.0158 ms | +| MarkdownSharp | 221.455 ms | 1.4442 ms | 1.3509 ms | +``` + +- Markdig is roughly **x100 times faster than MarkdownSharp** +- **20% faster than the reference cmark C implementation** + +## Sponsors + +Supports this project with a monthly donation and help me continue improving it. \[[Become a sponsor](https://github.com/sponsors/xoofx)\] + +[lilith](https://github.com/lilith) Lilith River, author of [Imageflow Server, an easy on-demand +image editing, optimization, and delivery server](https://github.com/imazen/imageflow-server) + +## Credits + +Thanks to the fantastic work done by [John Mac Farlane](https://johnmacfarlane.net/) for the CommonMark specs and all the people involved in making Markdown a better standard! + +This project would not have been possible without this huge foundation. + +Thanks also to the project [BenchmarkDotNet](https://github.com/PerfDotNet/BenchmarkDotNet) that makes benchmarking so easy to setup! + +Some decoding part (e.g HTML [EntityHelper.cs](https://github.com/lunet-io/markdig/blob/master/src/Markdig/Helpers/EntityHelper.cs)) have been re-used from [CommonMark.NET](https://github.com/Knagis/CommonMark.NET) + +Thanks to the work done by @clarkd on the [JIRA Link extension](https://github.com/clarkd/MarkdigJiraLinker), now included with this project! +## Author + +Alexandre MUTEL aka [xoofx](https://xoofx.github.io/) diff --git a/packages/System.Buffers.4.6.1/.signature.p7s b/packages/System.Buffers.4.6.1/.signature.p7s new file mode 100644 index 0000000..5f23092 Binary files /dev/null and b/packages/System.Buffers.4.6.1/.signature.p7s differ diff --git a/packages/System.Buffers.4.6.1/Icon.png b/packages/System.Buffers.4.6.1/Icon.png new file mode 100644 index 0000000..a0f1fdb Binary files /dev/null and b/packages/System.Buffers.4.6.1/Icon.png differ diff --git a/packages/System.Buffers.4.6.1/PACKAGE.md b/packages/System.Buffers.4.6.1/PACKAGE.md new file mode 100644 index 0000000..8ee70a0 --- /dev/null +++ b/packages/System.Buffers.4.6.1/PACKAGE.md @@ -0,0 +1,21 @@ +## About + +Provides resource pooling of any type for performance-critical applications that allocate and deallocate objects frequently. + +## Main Types + +The main types provided by this library are: + +- System.Buffers.ArrayPool + +## Additional Documentation + +- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.buffers + +## Related Packages + +ArrayPool is shipped as part of the shared framework starting with .NET Core 3.1. + +## License + +System.Buffers is released as open source under the [MIT license](https://licenses.nuget.org/MIT). diff --git a/packages/System.Buffers.4.6.1/System.Buffers.4.6.1.nupkg b/packages/System.Buffers.4.6.1/System.Buffers.4.6.1.nupkg new file mode 100644 index 0000000..093c563 Binary files /dev/null and b/packages/System.Buffers.4.6.1/System.Buffers.4.6.1.nupkg differ diff --git a/packages/System.Buffers.4.6.1/buildTransitive/net461/System.Buffers.targets b/packages/System.Buffers.4.6.1/buildTransitive/net461/System.Buffers.targets new file mode 100644 index 0000000..5c47189 --- /dev/null +++ b/packages/System.Buffers.4.6.1/buildTransitive/net461/System.Buffers.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/packages/System.Buffers.4.6.1/buildTransitive/net462/_._ b/packages/System.Buffers.4.6.1/buildTransitive/net462/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.dll b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.dll new file mode 100644 index 0000000..67a31fb Binary files /dev/null and b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.dll differ diff --git a/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.xml b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.xml new file mode 100644 index 0000000..fe1f651 --- /dev/null +++ b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.xml @@ -0,0 +1,173 @@ + + + + System.Buffers + + + + + Provides a resource pool that enables reusing instances of type . + + + + Renting and returning buffers with an can increase performance + in situations where arrays are created and destroyed frequently, resulting in significant + memory pressure on the garbage collector. + + + This class is thread-safe. All members may be used by multiple threads concurrently. + + + + + The lazily-initialized shared pool instance. + + + + Retrieves a shared instance. + + + The shared pool provides a default implementation of + that's intended for general applicability. It maintains arrays of multiple sizes, and + may hand back a larger array than was actually requested, but will never hand back a smaller + array than was requested. Renting a buffer from it with will result in an + existing buffer being taken from the pool if an appropriate buffer is available or in a new + buffer being allocated if one is not available. + + + + Ensures that has been initialized to a pool and returns it. + + + + Creates a new instance using default configuration options. + + A new instance. + + + + Creates a new instance using custom configuration options. + + The maximum length of array instances that may be stored in the pool. + + The maximum number of array instances that may be stored in each bucket in the pool. The pool + groups arrays of similar lengths into buckets for faster access. + + A new instance with the specified configuration options. + + The created pool will group arrays into buckets, with no more than + in each bucket and with those arrays not exceeding in length. + + + + + Retrieves a buffer that is at least the requested length. + + The minimum length of the array needed. + + An that is at least in length. + + + This buffer is loaned to the caller and should be returned to the same pool via + so that it may be reused in subsequent usage of . + It is not a fatal error to not return a rented buffer, but failure to do so may lead to + decreased application performance, as the pool may need to create a new buffer to replace + the one lost. + + + + + Returns to the pool an array that was previously obtained via on the same + instance. + + + The buffer previously obtained from to return to the pool. + + + If true and if the pool will store the buffer to enable subsequent reuse, + will clear of its contents so that a subsequent consumer via + will not see the previous consumer's content. If false or if the pool will release the buffer, + the array's contents are left unchanged. + + + Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer + and must not use it. The reference returned from a given call to must only be + returned via once. The default + may hold onto the returned buffer in order to rent it again, or it may release the returned buffer + if it's determined that the pool already has enough buffers stored. + + + + The reason for a BufferAllocated event. + + + The pool is allocating a buffer to be pooled in a bucket. + + + The requested buffer size was too large to be pooled. + + + The pool has already allocated for pooling as many buffers of a particular size as it's allowed. + + + + Event for when a buffer is rented. This is invoked once for every successful call to Rent, + regardless of whether a buffer is allocated or a buffer is taken from the pool. In a + perfect situation where all rented buffers are returned, we expect to see the number + of BufferRented events exactly match the number of BuferReturned events, with the number + of BufferAllocated events being less than or equal to those numbers (ideally significantly + less than). + + + + + Event for when a buffer is allocated by the pool. In an ideal situation, the number + of BufferAllocated events is significantly smaller than the number of BufferRented and + BufferReturned events. + + + + + Event raised when a buffer is returned to the pool. This event is raised regardless of whether + the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned + events exactly matches the number of BufferRented events. + + + + The default maximum length of each array in the pool (2^20). + + + The default maximum number of arrays per bucket that are available for rent. + + + Lazily-allocated empty array used when arrays of length 0 are requested. + + + Gets an ID for the pool to use with events. + + + Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd. + + + + Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length. + + + + Gets an ID for the bucket to use with events. + + + Takes an array from the bucket. If the bucket is empty, returns null. + + + + Attempts to return the buffer to the bucket. If successful, the buffer will be stored + in the bucket and true will be returned; otherwise, the buffer won't be stored, and false + will be returned. + + + + The buffer is not associated with this pool and may not be returned to it. + + + diff --git a/packages/System.Buffers.4.6.1/lib/netcoreapp2.0/_._ b/packages/System.Buffers.4.6.1/lib/netcoreapp2.0/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.dll b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.dll new file mode 100644 index 0000000..a4525d6 Binary files /dev/null and b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.dll differ diff --git a/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.xml b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.xml new file mode 100644 index 0000000..fe1f651 --- /dev/null +++ b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.xml @@ -0,0 +1,173 @@ + + + + System.Buffers + + + + + Provides a resource pool that enables reusing instances of type . + + + + Renting and returning buffers with an can increase performance + in situations where arrays are created and destroyed frequently, resulting in significant + memory pressure on the garbage collector. + + + This class is thread-safe. All members may be used by multiple threads concurrently. + + + + + The lazily-initialized shared pool instance. + + + + Retrieves a shared instance. + + + The shared pool provides a default implementation of + that's intended for general applicability. It maintains arrays of multiple sizes, and + may hand back a larger array than was actually requested, but will never hand back a smaller + array than was requested. Renting a buffer from it with will result in an + existing buffer being taken from the pool if an appropriate buffer is available or in a new + buffer being allocated if one is not available. + + + + Ensures that has been initialized to a pool and returns it. + + + + Creates a new instance using default configuration options. + + A new instance. + + + + Creates a new instance using custom configuration options. + + The maximum length of array instances that may be stored in the pool. + + The maximum number of array instances that may be stored in each bucket in the pool. The pool + groups arrays of similar lengths into buckets for faster access. + + A new instance with the specified configuration options. + + The created pool will group arrays into buckets, with no more than + in each bucket and with those arrays not exceeding in length. + + + + + Retrieves a buffer that is at least the requested length. + + The minimum length of the array needed. + + An that is at least in length. + + + This buffer is loaned to the caller and should be returned to the same pool via + so that it may be reused in subsequent usage of . + It is not a fatal error to not return a rented buffer, but failure to do so may lead to + decreased application performance, as the pool may need to create a new buffer to replace + the one lost. + + + + + Returns to the pool an array that was previously obtained via on the same + instance. + + + The buffer previously obtained from to return to the pool. + + + If true and if the pool will store the buffer to enable subsequent reuse, + will clear of its contents so that a subsequent consumer via + will not see the previous consumer's content. If false or if the pool will release the buffer, + the array's contents are left unchanged. + + + Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer + and must not use it. The reference returned from a given call to must only be + returned via once. The default + may hold onto the returned buffer in order to rent it again, or it may release the returned buffer + if it's determined that the pool already has enough buffers stored. + + + + The reason for a BufferAllocated event. + + + The pool is allocating a buffer to be pooled in a bucket. + + + The requested buffer size was too large to be pooled. + + + The pool has already allocated for pooling as many buffers of a particular size as it's allowed. + + + + Event for when a buffer is rented. This is invoked once for every successful call to Rent, + regardless of whether a buffer is allocated or a buffer is taken from the pool. In a + perfect situation where all rented buffers are returned, we expect to see the number + of BufferRented events exactly match the number of BuferReturned events, with the number + of BufferAllocated events being less than or equal to those numbers (ideally significantly + less than). + + + + + Event for when a buffer is allocated by the pool. In an ideal situation, the number + of BufferAllocated events is significantly smaller than the number of BufferRented and + BufferReturned events. + + + + + Event raised when a buffer is returned to the pool. This event is raised regardless of whether + the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned + events exactly matches the number of BufferRented events. + + + + The default maximum length of each array in the pool (2^20). + + + The default maximum number of arrays per bucket that are available for rent. + + + Lazily-allocated empty array used when arrays of length 0 are requested. + + + Gets an ID for the pool to use with events. + + + Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd. + + + + Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length. + + + + Gets an ID for the bucket to use with events. + + + Takes an array from the bucket. If the bucket is empty, returns null. + + + + Attempts to return the buffer to the bucket. If successful, the buffer will be stored + in the bucket and true will be returned; otherwise, the buffer won't be stored, and false + will be returned. + + + + The buffer is not associated with this pool and may not be returned to it. + + + diff --git a/packages/System.Buffers.4.6.1/lib/netstandard2.1/_._ b/packages/System.Buffers.4.6.1/lib/netstandard2.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Memory.4.6.3/.signature.p7s b/packages/System.Memory.4.6.3/.signature.p7s new file mode 100644 index 0000000..4f69dec Binary files /dev/null and b/packages/System.Memory.4.6.3/.signature.p7s differ diff --git a/packages/System.Memory.4.6.3/Icon.png b/packages/System.Memory.4.6.3/Icon.png new file mode 100644 index 0000000..a0f1fdb Binary files /dev/null and b/packages/System.Memory.4.6.3/Icon.png differ diff --git a/packages/System.Memory.4.6.3/PACKAGE.md b/packages/System.Memory.4.6.3/PACKAGE.md new file mode 100644 index 0000000..e917e28 --- /dev/null +++ b/packages/System.Memory.4.6.3/PACKAGE.md @@ -0,0 +1,29 @@ +## About + +Provides types for efficient representation and pooling of managed, stack, and native memory segments and sequences of such segments, along with primitives to parse and format UTF-8 encoded text stored in those memory segments. + +## Main Types + +The main types provided by this library are: + +- System.Span +- System.ReadOnlySpan +- System.Memory +- System.ReadOnlyMemory +- System.Buffers.MemoryPool +- System.Buffers.ReadOnlySequence +- System.Buffers.Text.Utf8Parser +- System.Buffers.Text.Utf8Formatter + +## Additional Documentation + +- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.memory +https://learn.microsoft.com/en-us/archive/msdn-magazine/2018/january/csharp-all-about-span-exploring-a-new-net-mainstay + +## Related Packages + +The types in this assembly are shipped as part of the shared framework starting with .NET Core 3.1. + +## License + +System.Memory is released as open source under the [MIT license](https://licenses.nuget.org/MIT). diff --git a/packages/System.Memory.4.6.3/System.Memory.4.6.3.nupkg b/packages/System.Memory.4.6.3/System.Memory.4.6.3.nupkg new file mode 100644 index 0000000..7e26fe1 Binary files /dev/null and b/packages/System.Memory.4.6.3/System.Memory.4.6.3.nupkg differ diff --git a/packages/System.Memory.4.6.3/buildTransitive/net461/System.Memory.targets b/packages/System.Memory.4.6.3/buildTransitive/net461/System.Memory.targets new file mode 100644 index 0000000..08b98c0 --- /dev/null +++ b/packages/System.Memory.4.6.3/buildTransitive/net461/System.Memory.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/packages/System.Memory.4.6.3/buildTransitive/net462/_._ b/packages/System.Memory.4.6.3/buildTransitive/net462/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Memory.4.6.3/lib/net462/System.Memory.dll b/packages/System.Memory.4.6.3/lib/net462/System.Memory.dll new file mode 100644 index 0000000..9b4f824 Binary files /dev/null and b/packages/System.Memory.4.6.3/lib/net462/System.Memory.dll differ diff --git a/packages/System.Memory.4.6.3/lib/net462/System.Memory.xml b/packages/System.Memory.4.6.3/lib/net462/System.Memory.xml new file mode 100644 index 0000000..ff0619c --- /dev/null +++ b/packages/System.Memory.4.6.3/lib/net462/System.Memory.xml @@ -0,0 +1,3489 @@ + + + + System.Memory + + + + + Reads bytes as primitives with specific endianness + + + For native formats, MemoryExtensions.Read{T}; should be used. + Use these helpers when you need to read specific endinanness. + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip sbyte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip byte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt64, return false. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt64, return false. + + + + + Writes an Int16 into a span of bytes as big endian. + + + + + Writes an Int32 into a span of bytes as big endian. + + + + + Writes an Int64 into a span of bytes as big endian. + + + + + Write a UInt16 into a span of bytes as big endian. + + + + + Write a UInt32 into a span of bytes as big endian. + + + + + Write a UInt64 into a span of bytes as big endian. + + + + + Writes an Int16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int16 into a span of bytes as little endian. + + + + + Writes an Int32 into a span of bytes as little endian. + + + + + Writes an Int64 into a span of bytes as little endian. + + + + + Write a UInt16 into a span of bytes as little endian. + + + + + Write a UInt32 into a span of bytes as little endian. + + + + + Write a UInt64 into a span of bytes as little endian. + + + + + Writes an Int16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Extension methods for + + + + + Returns position of first occurrence of item in the + + + + + Copy the to the specified . + + The source . + The destination . + + + + Converts the to an array + + + + + Writes contents of to + + + + + Represents a sink + + + + + Notifies that amount of data was written to / + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Owner of Memory that is responsible for disposing the underlying memory appropriately. + + + + + Returns a Memory. + + + + + Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them. + + + + + Call this method to indicate that the IPinnable object can not be moved by the garbage collector. + The address of the pinned object can be taken. + The offset to the element within the memory at which the returned points to. + + + + + Call this method to indicate that the IPinnable object no longer needs to be pinned. + The garbage collector is free to move the object now. + + + + + A handle for the memory. + + + + + Creates a new memory handle for the memory. + + pointer to memory + reference to manually managed object, or default if there is no memory manager + handle used to pin array buffers + + + + Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change. + + + + + Frees the pinned handle and releases IPinnable. + + + + + Manager of that provides the implementation. + + + + + Returns a . + + + + + Returns a span wrapping the underlying memory. + + + + + Returns a handle to the memory that has been pinned and hence its address can be taken. + + The offset to the element within the memory at which the returned points to. (default = 0) + + + + Lets the garbage collector know that the object is free to be moved now. + + + + + Returns a for the current . + + The element count in the memory, starting at offset 0. + + + + Returns a for the current . + + The offset to the element which the returned memory starts at. + The element count in the memory, starting at element offset . + + + + Returns an array segment. + Returns the default array segment if not overriden. + + + + + Implements IDisposable. + + + + + Clean up of any leftover managed and unmanaged resources. + + + + + Represents a pool of memory blocks. + + + + + Returns a singleton instance of a MemoryPool based on arrays. + + + + + Returns a memory block capable of holding at least elements of T. + + If -1 is passed, this is set to a default value for the pool. + + + + Returns the maximum buffer size supported by this pool. + + + + + Constructs a new instance of a memory pool. + + + + + Frees all resources used by the memory pool. + + + + + Frees all resources used by the memory pool. + + + + + + This enum defines the various potential status that can be returned from Span-based operations + that support processing of input contained in multiple discontiguous buffers. + + + + + The entire input buffer has been processed and the operation is complete. + + + + + The input is partially processed, up to what could fit into the destination buffer. + The caller can enlarge the destination buffer, slice the buffers appropriately, and retry. + + + + + The input is partially processed, up to the last valid chunk of the input that could be consumed. + The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry. + + + + + The input contained invalid bytes which could not be processed. If the input is partially processed, + the destination contains the partial result. This guarantees that no additional data appended to the input + will make the invalid sequence valid. + + + + + Represents a sequence that can read a sequential series of . + + + + + Returns empty + + + + + Length of the . + + + + + Determines if the is empty. + + + + + Determines if the contains a single segment. + + + + + Gets from the first segment. + + + + + A position to the start of the . + + + + + A position to the end of the + + + + + Creates an instance of from linked memory list represented by start and end segments + and corresponding indexes in them. + + + + + Creates an instance of from the . + + + + + Creates an instance of from the , start and index. + + + + + Creates an instance of from the . + Consumer is expected to manage lifetime of memory until is not used anymore. + + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at ', with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The starting (inclusive) at which to begin this slice. + The ending (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The starting (inclusive) at which to begin this slice. + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The start index at which to begin this slice. + + + + + + + Returns an enumerator over the + + + + + Returns a new at an from the start of the sequence. + + + + + Returns a new at an from the + + + + + Tries to retrieve next segment after and return its contents in . + Returns false if end of was reached otherwise true. + Sets to the beginning of next segment if is set to true. + + + + + An enumerator over the + + + + Initialize the enumerator. + The to enumerate. + + + + The current + + + + + Moves to the next in the + + + + + + Represents a linked list of nodes. + + + + + The value for current node. + + + + + The next node. + + + + + The sum of node length before current. + + + + + Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X') + and an optional precision ranging from 0..99, or the special value NoPrecision. + + + + + Precision values for format that don't use a precision, or for when the precision is to be unspecified. + + + + + The maximum valid precision value. + + + + + The character component of the format. + + + + + The precision component of the format. Ranges from 0..9 or the special value NoPrecision. + + + + + true if Precision is a value other than NoPrecision + + + + + true if the StandardFormat == default(StandardFormat) + + + + + Create a StandardFormat. + + A type-specific formatting character such as 'G', 'D' or 'X' + An optional precision ranging from 0..9 or the special value NoPrecision (the default) + + + + Converts a character to a StandardFormat using the NoPrecision precision. + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Compute a hash code. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns the format in classic .NET format. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns false if both the Symbol and Precision are equal. + + + + + Convert between binary data and UTF-8 encoded text that is represented in base 64. + + + + + Decode the span of UTF-8 encoded text represented as base 64 into binary data. + If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4. + + The input span which contains UTF-8 encoded text in base 64 that needs to be decoded. + The output span which contains the result of the operation, i.e. the decoded binary data. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input + - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true. + + + + + Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length". + + + Thrown when the specified is less than 0. + + + + + Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data. + The decoded binary output is smaller than the text data contained in the input (the operation deflates the data). + If the input is not a multiple of 4, it will not decode any. + + The input span which contains the base 64 text data that needs to be decoded. + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4). + It does not return DestinationTooSmall since that is not possible for base 64 decoding. + It does not return NeedMoreData since this method tramples the data in the buffer and + hence can only be called once with all the data in the buffer. + + + + + Encode the span of binary data into UTF-8 encoded text represented as base 64. + + The input span which contains binary data that needs to be encoded. + The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input + - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3 + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length". + + + Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3). + + + + + Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64. + The encoded text output is larger than the binary data contained in the input (the operation inflates the data). + + The input span which contains binary data that needs to be encoded. + It needs to be large enough to fit the result of the operation. + The amount of binary data contained within the buffer that needs to be encoded + (and needs to be smaller than the buffer length). + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire buffer + - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input + It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer. + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the symbol contained within the standard format. If the standard format + has not been initialized, returns the provided fallback symbol. + + + + + Fills a buffer with the ASCII character '0' (0x30). + + + + + Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + + + Formats a Boolean as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTimeOffset as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTime as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Decimal as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Double as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Single as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Guid as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Used to provide access to the individual bytes of a GUID. + + + + + Formats a Byte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an SByte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Unt16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a TimeSpan as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Methods to parse common data types to Utf8 strings. + + + + + Parses a Boolean at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTime at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTimeOffset at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset/Local time conversion factory. + + + + + Overflow-safe DateTime factory. + + + + + Parses a Decimal at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Single at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Double at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Guid at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a SByte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Byte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a TimeSpan at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan + parser rejects the string (even if the extra digits are all zeroes.) + + + + + Overflow-safe TryCreateTimeSpan + + + + + Memory represents a contiguous region of arbitrary memory similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 0 index and ending at 'end' index (exclusive). + + The memory manager. + The number of items in the memory. + + Thrown when the specified is negative. + + For internal infrastructure only + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 'start' index and ending at 'end' index (exclusive). + + The memory manager. + The index at which to begin the memory. + The number of items in the memory. + + Thrown when the specified or is negative. + + For internal infrastructure only + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + Determines whether the specified object is equal to the current object. + Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length. + + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Serves as the default hash function. + + + + + Extension methods for Span{T}, Memory{T}, and friends. + + + Extension methods for Span{T}, Memory{T}, and friends. + + + + + Removes all leading and trailing white-space characters from the span. + + + + + Removes all leading white-space characters from the span. + + + + + Removes all trailing white-space characters from the span. + + + + + Removes all leading and trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading and trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all leading occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Indicates whether the specified span contains only white-space characters. + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Reverses the sequence of the elements in the entire span. + + + + + Creates a new span over the target array. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the portion of the target array segment. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=array.Length). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory over the portion of the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Copies the contents of the array into the span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The array to copy items from. + The span to copy items into. + + Thrown when the destination Span is shorter than the source array. + + + + + + Copies the contents of the array into the memory. If the source + and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The array to copy items from. + The memory to copy items into. + + Thrown when the destination is shorter than the source array. + + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Creates a new span over the portion of the target array. + + + + + Returns a value indicating whether the specified occurs within the . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Determines whether this and the specified span have the same characters + when compared using the specified option. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Compares the specified and using the specified , + and returns an integer that indicates their relative position in the sort order. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Reports the zero-based index of the first occurrence of the specified in the current . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Copies the characters from the source span into the destination, converting each character to uppercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to uppercase + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Determines whether the end of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the end of the source span. + One of the enumeration values that determines how the and are compared. + + + + Determines whether the beginning of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the beginning of the source span. + One of the enumeration values that determines how the and are compared. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + Returns default when is null. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + Creates a new over the portion of the target string. + The target string. + Returns default when is null. + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + + Represents a contiguous region of memory, similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + Creates a new memory over the existing object, start, and length. No validation is performed. + The target object. + The index at which to begin the memory. + The number of items in the memory. + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the read-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the readonly-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + Determines whether the specified object is equal to the current object. + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + Returns the hash code for this + + + Gets the state of the memory as individual fields. + The offset. + The count. + The object. + + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the read-only span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns a 0-length read-only span whose base is the null pointer. + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new read-only span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new read-only span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the read-only span. + The number of items in the read-only span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new read-only span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns the specified element of the read-only span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given read-only span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given read-only span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this read-only span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Provides a collection of methods for interoperating with , , + , and . + + + Provides a collection of methods for interoperating with , , + , and . + + + + + Get an array segment from the underlying memory. + If unable to get the array segment, return false with a default array segment. + + + + + Gets an from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + A indicating if it was successful. + + + + Gets an and , from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + The offset from the start of the that the represents. + The length of the that the represents. + A indicating if it was successful. + + + + Creates an view of the given to allow + the to be used in existing APIs that take an . + + The element type of the . + The ReadOnlyMemory to view as an + An view of the given + + + Attempts to get the underlying from a . + The memory that may be wrapping a object. + The string. + The starting location in . + The number of items in . + + + + + Reads a structure of type T out of a read-only span of bytes. + + + + + Reads a structure of type T out of a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Writes a structure of type T into a span of bytes. + + + + + Writes a structure of type T into a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Creates a new memory over the portion of the pre-pinned target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The pre-pinned target array. + The index at which to begin the memory. + The number of items in the memory. + This method should only be called on an array that is already pinned and + that array should not be unpinned while the returned Memory is still in use. + Calling this method on an unpinned array could result in memory corruption. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Casts a Span of one primitive type to Span of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + + Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + Creates a from a . + The . + A representing the same memory as the , but writable. + + must be used with extreme caution. is used + to represent immutable data and other memory that is not meant to be written to; instances created + by should not be written to. The method exists to enable variables typed + as but only used for reading to store a . + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Casts a Span of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Casts a ReadOnlySpan of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Provides a collection of methods for interoperating with + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get an array segment from the underlying . + If unable to get the array segment, return false with a default array segment. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Represents position in non-contiguous set of memory. + Properties of this type should not be interpreted by anything but the type that created it. + + + + + Creates new + + + + + Returns object part of this + + + + + Returns integer part of this + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the span. + The number of items in the span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns a reference to specified element of the Span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Clears the contents of this span. + + + + + Fills the contents of this span with the given value. + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Defines an implicit conversion of a to a + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Implements the copy functionality used by Span and ReadOnlySpan. + + NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation + is only used by portable span. The code must live in code that only compiles + for portable span which means either each individual span implementation + of this shared code file. Other shared SpanHelper.X.cs files are compiled + for both portable and fast span implementations. + + + + + Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits. + + Assumptions: + Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span. + + If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space), + the behavior is undefined. + + + + + + Determine if a type is eligible for storage in unmanaged memory. + Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}() + + + + Equals() on Span and ReadOnlySpan is not supported. Use operator== instead. + + + GetHashCode() on Span and ReadOnlySpan is not supported. + + + Cannot use type '{0}'. Only value types without pointers or references are supported. + + + Destination is too short. + + + Memory<T> has been disposed. + + + Release all references before disposing this instance. + + + Format specifier was invalid. + + + The 'G' format combined with a precision is not supported. + + + Characters following the format symbol must be a number of {0} or less. + + + Precision cannot be larger than {0}. + + + Overlapping spans have mismatching alignment. + + + End position was not reached during enumeration. + + + Unexpected segment type. + + + diff --git a/packages/System.Memory.4.6.3/lib/netcoreapp2.1/_._ b/packages/System.Memory.4.6.3/lib/netcoreapp2.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.dll b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.dll new file mode 100644 index 0000000..402af9b Binary files /dev/null and b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.dll differ diff --git a/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.xml b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.xml new file mode 100644 index 0000000..ff0619c --- /dev/null +++ b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.xml @@ -0,0 +1,3489 @@ + + + + System.Memory + + + + + Reads bytes as primitives with specific endianness + + + For native formats, MemoryExtensions.Read{T}; should be used. + Use these helpers when you need to read specific endinanness. + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip sbyte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + This is a no-op and added only for consistency. + This allows the caller to read a struct of numeric primitives and reverse each field + rather than having to skip byte fields. + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reverses a primitive value - performs an endianness swap + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + + + + + Reads an Int16 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as big endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as big endian. + If the span is too small to contain a UInt64, return false. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + + + + + Reads an Int16 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int16, return false. + + + + + Reads an Int32 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int32, return false. + + + + + Reads an Int64 out of a read-only span of bytes as little endian. + If the span is too small to contain an Int64, return false. + + + + + Reads a UInt16 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt16, return false. + + + + + Reads a UInt32 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt32, return false. + + + + + Reads a UInt64 out of a read-only span of bytes as little endian. + If the span is too small to contain a UInt64, return false. + + + + + Writes an Int16 into a span of bytes as big endian. + + + + + Writes an Int32 into a span of bytes as big endian. + + + + + Writes an Int64 into a span of bytes as big endian. + + + + + Write a UInt16 into a span of bytes as big endian. + + + + + Write a UInt32 into a span of bytes as big endian. + + + + + Write a UInt64 into a span of bytes as big endian. + + + + + Writes an Int16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as big endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int16 into a span of bytes as little endian. + + + + + Writes an Int32 into a span of bytes as little endian. + + + + + Writes an Int64 into a span of bytes as little endian. + + + + + Write a UInt16 into a span of bytes as little endian. + + + + + Write a UInt32 into a span of bytes as little endian. + + + + + Write a UInt64 into a span of bytes as little endian. + + + + + Writes an Int16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Writes an Int64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt16 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt32 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Write a UInt64 into a span of bytes as little endian. + If the span is too small to contain the value, return false. + + + + + Extension methods for + + + + + Returns position of first occurrence of item in the + + + + + Copy the to the specified . + + The source . + The destination . + + + + Converts the to an array + + + + + Writes contents of to + + + + + Represents a sink + + + + + Notifies that amount of data was written to / + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Requests the that is at least in size if possible, otherwise returns maximum available memory. + If is equal to 0, currently available memory would get returned. + + + + + Owner of Memory that is responsible for disposing the underlying memory appropriately. + + + + + Returns a Memory. + + + + + Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them. + + + + + Call this method to indicate that the IPinnable object can not be moved by the garbage collector. + The address of the pinned object can be taken. + The offset to the element within the memory at which the returned points to. + + + + + Call this method to indicate that the IPinnable object no longer needs to be pinned. + The garbage collector is free to move the object now. + + + + + A handle for the memory. + + + + + Creates a new memory handle for the memory. + + pointer to memory + reference to manually managed object, or default if there is no memory manager + handle used to pin array buffers + + + + Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change. + + + + + Frees the pinned handle and releases IPinnable. + + + + + Manager of that provides the implementation. + + + + + Returns a . + + + + + Returns a span wrapping the underlying memory. + + + + + Returns a handle to the memory that has been pinned and hence its address can be taken. + + The offset to the element within the memory at which the returned points to. (default = 0) + + + + Lets the garbage collector know that the object is free to be moved now. + + + + + Returns a for the current . + + The element count in the memory, starting at offset 0. + + + + Returns a for the current . + + The offset to the element which the returned memory starts at. + The element count in the memory, starting at element offset . + + + + Returns an array segment. + Returns the default array segment if not overriden. + + + + + Implements IDisposable. + + + + + Clean up of any leftover managed and unmanaged resources. + + + + + Represents a pool of memory blocks. + + + + + Returns a singleton instance of a MemoryPool based on arrays. + + + + + Returns a memory block capable of holding at least elements of T. + + If -1 is passed, this is set to a default value for the pool. + + + + Returns the maximum buffer size supported by this pool. + + + + + Constructs a new instance of a memory pool. + + + + + Frees all resources used by the memory pool. + + + + + Frees all resources used by the memory pool. + + + + + + This enum defines the various potential status that can be returned from Span-based operations + that support processing of input contained in multiple discontiguous buffers. + + + + + The entire input buffer has been processed and the operation is complete. + + + + + The input is partially processed, up to what could fit into the destination buffer. + The caller can enlarge the destination buffer, slice the buffers appropriately, and retry. + + + + + The input is partially processed, up to the last valid chunk of the input that could be consumed. + The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry. + + + + + The input contained invalid bytes which could not be processed. If the input is partially processed, + the destination contains the partial result. This guarantees that no additional data appended to the input + will make the invalid sequence valid. + + + + + Represents a sequence that can read a sequential series of . + + + + + Returns empty + + + + + Length of the . + + + + + Determines if the is empty. + + + + + Determines if the contains a single segment. + + + + + Gets from the first segment. + + + + + A position to the start of the . + + + + + A position to the end of the + + + + + Creates an instance of from linked memory list represented by start and end segments + and corresponding indexes in them. + + + + + Creates an instance of from the . + + + + + Creates an instance of from the , start and index. + + + + + Creates an instance of from the . + Consumer is expected to manage lifetime of memory until is not used anymore. + + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , with items + + The index at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The index at which to begin this slice. + The end (inclusive) of the slice + + + + Forms a slice out of the given , beginning at ', with items + + The starting (inclusive) at which to begin this slice. + The length of the slice + + + + Forms a slice out of the given , beginning at , ending at (inclusive). + + The starting (inclusive) at which to begin this slice. + The ending (inclusive) of the slice + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The starting (inclusive) at which to begin this slice. + + + + Forms a slice out of the given , beginning at , ending at the existing 's end. + + The start index at which to begin this slice. + + + + + + + Returns an enumerator over the + + + + + Returns a new at an from the start of the sequence. + + + + + Returns a new at an from the + + + + + Tries to retrieve next segment after and return its contents in . + Returns false if end of was reached otherwise true. + Sets to the beginning of next segment if is set to true. + + + + + An enumerator over the + + + + Initialize the enumerator. + The to enumerate. + + + + The current + + + + + Moves to the next in the + + + + + + Represents a linked list of nodes. + + + + + The value for current node. + + + + + The next node. + + + + + The sum of node length before current. + + + + + Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X') + and an optional precision ranging from 0..99, or the special value NoPrecision. + + + + + Precision values for format that don't use a precision, or for when the precision is to be unspecified. + + + + + The maximum valid precision value. + + + + + The character component of the format. + + + + + The precision component of the format. Ranges from 0..9 or the special value NoPrecision. + + + + + true if Precision is a value other than NoPrecision + + + + + true if the StandardFormat == default(StandardFormat) + + + + + Create a StandardFormat. + + A type-specific formatting character such as 'G', 'D' or 'X' + An optional precision ranging from 0..9 or the special value NoPrecision (the default) + + + + Converts a character to a StandardFormat using the NoPrecision precision. + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Converts a classic .NET format string into a StandardFormat + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Compute a hash code. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns the format in classic .NET format. + + + + + Returns true if both the Symbol and Precision are equal. + + + + + Returns false if both the Symbol and Precision are equal. + + + + + Convert between binary data and UTF-8 encoded text that is represented in base 64. + + + + + Decode the span of UTF-8 encoded text represented as base 64 into binary data. + If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4. + + The input span which contains UTF-8 encoded text in base 64 that needs to be decoded. + The output span which contains the result of the operation, i.e. the decoded binary data. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input + - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true. + + + + + Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length". + + + Thrown when the specified is less than 0. + + + + + Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data. + The decoded binary output is smaller than the text data contained in the input (the operation deflates the data). + If the input is not a multiple of 4, it will not decode any. + + The input span which contains the base 64 text data that needs to be decoded. + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters, + or if the input is incomplete (i.e. not a multiple of 4). + It does not return DestinationTooSmall since that is not possible for base 64 decoding. + It does not return NeedMoreData since this method tramples the data in the buffer and + hence can only be called once with all the data in the buffer. + + + + + Encode the span of binary data into UTF-8 encoded text represented as base 64. + + The input span which contains binary data that needs to be encoded. + The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64. + The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary. + The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary. + True (default) when the input span contains the entire data to decode. + Set to false only if it is known that the input span contains partial data with more data to follow. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire input span + - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input + - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3 + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length". + + + Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3). + + + + + Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64. + The encoded text output is larger than the binary data contained in the input (the operation inflates the data). + + The input span which contains binary data that needs to be encoded. + It needs to be large enough to fit the result of the operation. + The amount of binary data contained within the buffer that needs to be encoded + (and needs to be smaller than the buffer length). + The number of bytes written into the buffer. + It returns the OperationStatus enum values: + - Done - on successful processing of the entire buffer + - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input + It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer. + It does not return InvalidData since that is not possible for base 64 encoding. + + + + + Returns the symbol contained within the standard format. If the standard format + has not been initialized, returns the provided fallback symbol. + + + + + Fills a buffer with the ASCII character '0' (0x30). + + + + + Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset. + This method performs best when the starting index is a constant literal. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + We don't have access to Math.DivRem, so this is a copy of the implementation. + + + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + Methods to format common data types as Utf8 strings. + + + + + Formats a Boolean as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTimeOffset as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + System.FormatException if the format is not valid for this data type. + + + + + Formats a DateTime as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Decimal as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Double as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Single as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Guid as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Used to provide access to the individual bytes of a GUID. + + + + + Formats a Byte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an SByte as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a Unt16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int16 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int32 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a UInt64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats an Int64 as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Formats a TimeSpan as a UTF8 string. + + Value to format + Buffer to write the UTF8-formatted value to + Receives the length of the formatted text in bytes + The standard format to use + + true for success. "bytesWritten" contains the length of the formatted text in bytes. + false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Methods to parse common data types to Utf8 strings. + + + + + Parses a Boolean at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) True/False + l true/false + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTime at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + default 05/25/2017 10:30:15 -08:00 + G 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a DateTimeOffset at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G (default) 05/25/2017 10:30:15 + R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123) + l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123) + O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable) + + + System.FormatException if the format is not valid for this data type. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset factory. + + + + + Overflow-safe DateTimeOffset/Local time conversion factory. + + + + + Overflow-safe DateTime factory. + + + + + Parses a Decimal at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Single at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Double at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + F/f 12.45 Fixed point + E/e 1.245000e1 Exponential + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Guid at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn + B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} + P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn) + N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a SByte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses an Int64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a Byte at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt16 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt32 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a UInt64 at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + G/g (default) + D/d 32767 + N/n 32,767 + X/x 7fff + + + System.FormatException if the format is not valid for this data type. + + + + + Parses a TimeSpan at the start of a Utf8 string. + + The Utf8 string to parse + Receives the parsed value + On a successful parse, receives the length in bytes of the substring that was parsed + Expected format of the Utf8 string + + true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed. + false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0. + + + Formats supported: + c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format) + G [-]d:hh:mm:ss.fffffff (general long) + g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short) + + + System.FormatException if the format is not valid for this data type. + + + + + Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan + parser rejects the string (even if the extra digits are all zeroes.) + + + + + Overflow-safe TryCreateTimeSpan + + + + + Memory represents a contiguous region of arbitrary memory similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 0 index and ending at 'end' index (exclusive). + + The memory manager. + The number of items in the memory. + + Thrown when the specified is negative. + + For internal infrastructure only + + + + Creates a new memory from a memory manager that provides specific method implementations beginning + at 'start' index and ending at 'end' index (exclusive). + + The memory manager. + The index at which to begin the memory. + The number of items in the memory. + + Thrown when the specified or is negative. + + For internal infrastructure only + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + Determines whether the specified object is equal to the current object. + Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length. + + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Serves as the default hash function. + + + + + Extension methods for Span{T}, Memory{T}, and friends. + + + Extension methods for Span{T}, Memory{T}, and friends. + + + + + Removes all leading and trailing white-space characters from the span. + + + + + Removes all leading white-space characters from the span. + + + + + Removes all trailing white-space characters from the span. + + + + + Removes all leading and trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all trailing occurrences of a specified character. + + The source span from which the character is removed. + The specified character to look for and remove. + + + + Removes all leading and trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all leading occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Removes all trailing occurrences of a set of characters specified + in a readonly span from the span. + + The source span from which the characters are removed. + The span which contains the set of characters to remove. + If is empty, white-space characters are removed instead. + + + + Indicates whether the specified span contains only white-space characters. + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The value to search for. + + + + Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T). + + The span to search. + The sequence to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + One of the values to search for. + One of the values to search for. + One of the values to search for. + + + + Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1. + + The span to search. + The set of values to search for. + + + + Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). + + + + + Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the start of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Determines whether the specified sequence appears at the end of the span. + + + + + Reverses the sequence of the elements in the entire span. + + + + + Creates a new span over the target array. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the portion of the target array segment. + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new Span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the Span. + The number of items in the Span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=array.Length). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new memory over the portion of the target array. + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=segment.Count). + + + + + Copies the contents of the array into the span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The array to copy items from. + The span to copy items into. + + Thrown when the destination Span is shorter than the source array. + + + + + + Copies the contents of the array into the memory. If the source + and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The array to copy items from. + The memory to copy items into. + + Thrown when the destination is shorter than the source array. + + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Determines whether two sequences overlap in memory. + + + + + Determines whether two sequences overlap in memory and outputs the element offset. + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic interface. + + The element type of the span. + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for a value + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The to use when comparing. + + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Searches an entire sorted for the specified + using the specified generic type. + + The element type of the span. + The specific type of . + The sorted to search. + The object to locate. The value can be null for reference types. + The to use when comparing. + /// + The zero-based index of in the sorted , + if is found; otherwise, a negative number that is the bitwise complement + of the index of the next element that is larger than or, if there is + no larger element, the bitwise complement of . + + + is . + + + + + Creates a new span over the portion of the target array. + + + + + Returns a value indicating whether the specified occurs within the . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Determines whether this and the specified span have the same characters + when compared using the specified option. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Compares the specified and using the specified , + and returns an integer that indicates their relative position in the sort order. + The source span. + The value to compare with the source span. + One of the enumeration values that determines how the and are compared. + + + + + Reports the zero-based index of the first occurrence of the specified in the current . + The source span. + The value to seek within the source span. + One of the enumeration values that determines how the and are compared. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to lowercase, + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Copies the characters from the source span into the destination, converting each character to uppercase, + using the casing rules of the specified culture. + + The source span. + The destination span which contains the transformed characters. + An object that supplies culture-specific casing rules. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + Thrown when is null. + + + + + Copies the characters from the source span into the destination, converting each character to uppercase + using the casing rules of the invariant culture. + + The source span. + The destination span which contains the transformed characters. + If the source and destinations overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + + + Determines whether the end of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the end of the source span. + One of the enumeration values that determines how the and are compared. + + + + Determines whether the beginning of the matches the specified when compared using the specified option. + + The source span. + The sequence to compare to the beginning of the source span. + One of the enumeration values that determines how the and are compared. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + Returns default when is null. + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + + Creates a new readonly span over the portion of the target string. + + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + Creates a new over the portion of the target string. + The target string. + Returns default when is null. + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + Returns default when is null. + + Thrown when the specified index is not in range (<0 or >text.Length). + + + + Creates a new over the portion of the target string. + The target string. + The index at which to begin this slice. + The desired length for the slice (exclusive). + Returns default when is null. + + Thrown when the specified index or is not in range. + + + + + Represents a contiguous region of memory, similar to . + Unlike , it is not a byref-like type. + + + + + Creates a new memory over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new memory over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the memory. + The number of items in the memory. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + Creates a new memory over the existing object, start, and length. No validation is performed. + The target object. + The index at which to begin the memory. + The number of items in the memory. + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + + The number of items in the memory. + + + + + Returns true if Length is 0. + + + + + For , returns a new instance of string that represents the characters pointed to by the memory. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given memory, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given memory, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Returns a span from the memory. + + + + + Copies the contents of the read-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + The Memory to copy items into. + + Thrown when the destination is shorter than the source. + + + + + + Copies the contents of the readonly-only memory into the destination. If the source + and destination overlap, this method behaves as if the original values are in + a temporary location before the destination is overwritten. + + If the destination is shorter than the source, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Creates a handle for the memory. + The GC will not move the memory until the returned + is disposed, enabling taking and using the memory's address. + + An instance with nonprimitive (non-blittable) members cannot be pinned. + + + + + + Copies the contents from the memory into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + Determines whether the specified object is equal to the current object. + + + + Returns true if the memory points to the same array and has the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + Returns the hash code for this + + + Gets the state of the memory as individual fields. + The offset. + The count. + The object. + + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the read-only span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns a 0-length read-only span whose base is the null pointer. + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new read-only span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new read-only span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the read-only span. + The number of items in the read-only span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new read-only span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns the specified element of the read-only span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this read-only span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given read-only span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given read-only span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this read-only span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Provides a collection of methods for interoperating with , , + , and . + + + Provides a collection of methods for interoperating with , , + , and . + + + + + Get an array segment from the underlying memory. + If unable to get the array segment, return false with a default array segment. + + + + + Gets an from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + A indicating if it was successful. + + + + Gets an and , from the underlying read-only memory. + If unable to get the type, returns false. + + The element type of the . + The type of to try and retrive. + The memory to get the manager for. + The returned manager of the . + The offset from the start of the that the represents. + The length of the that the represents. + A indicating if it was successful. + + + + Creates an view of the given to allow + the to be used in existing APIs that take an . + + The element type of the . + The ReadOnlyMemory to view as an + An view of the given + + + Attempts to get the underlying from a . + The memory that may be wrapping a object. + The string. + The starting location in . + The number of items in . + + + + + Reads a structure of type T out of a read-only span of bytes. + + + + + Reads a structure of type T out of a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Writes a structure of type T into a span of bytes. + + + + + Writes a structure of type T into a span of bytes. + If the span is too small to contain the type T, return false. + + + + + Creates a new memory over the portion of the pre-pinned target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The pre-pinned target array. + The index at which to begin the memory. + The number of items in the memory. + This method should only be called on an array that is already pinned and + that array should not be unpinned while the returned Memory is still in use. + Calling this method on an unpinned array could result in memory corruption. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Casts a Span of one primitive type to Span of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + + Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes. + That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + The source slice, of type . + + Thrown when contains pointers. + + + Thrown if the Length property of the new Span would exceed Int32.MaxValue. + + + + Creates a from a . + The . + A representing the same memory as the , but writable. + + must be used with extreme caution. is used + to represent immutable data and other memory that is not meant to be written to; instances created + by should not be written to. The method exists to enable variables typed + as but only used for reading to store a . + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Casts a Span of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Casts a ReadOnlySpan of one primitive type to another primitive type . + These types may not contain pointers or references. This is checked at runtime in order to preserve type safety. + + + Supported only for platforms that support misaligned memory access. + + The source slice, of type . + + Thrown when or contains pointers. + + + + + Provides a collection of methods for interoperating with + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get an array segment from the underlying . + If unable to get the array segment, return false with a default array segment. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Get from the underlying . + If unable to get the , return false. + + + + + Represents position in non-contiguous set of memory. + Properties of this type should not be interpreted by anything but the type that created it. + + + + + Creates new + + + + + Returns object part of this + + + + + Returns integer part of this + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + Indicates whether the current is equal to another . + equality does not guarantee that they point to the same location in + + + + + + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed + or native memory, or to memory allocated on the stack. It is type- and memory-safe. + + + + + The number of items in the span. + + + + + Returns true if Length is 0. + + + + + Returns false if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + This method is not supported as spans cannot be boxed. To compare two spans, use operator==. + + Always thrown by this method. + + + + + + This method is not supported as spans cannot be boxed. + + Always thrown by this method. + + + + + + Defines an implicit conversion of an array to a + + + + + Defines an implicit conversion of a to a + + + + + Returns an empty + + + + Gets an enumerator for this span. + + + Enumerates the elements of a . + + + The span being enumerated. + + + The next index to yield. + + + Initialize the enumerator. + The span to enumerate. + + + Advances the enumerator to the next element of the span. + + + Gets the element at the current position of the enumerator. + + + + Creates a new span over the entirety of the target array. + + The target array. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + + + Creates a new span over the portion of the target array beginning + at 'start' index and ending at 'end' index (exclusive). + + The target array. + The index at which to begin the span. + The number of items in the span. + Returns default when is null. + Thrown when is covariant and array's type is not exactly T[]. + + Thrown when the specified or end index is not in the range (<0 or >=Length). + + + + + Creates a new span over the target unmanaged buffer. Clearly this + is quite dangerous, because we are creating arbitrarily typed T's + out of a void*-typed block of memory. And the length is not checked. + But if this creation is correct, then all subsequent uses are correct. + + An unmanaged pointer to memory. + The number of elements the memory contains. + + Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory. + + + Thrown when the specified is negative. + + + + + Returns a reference to specified element of the Span. + + + + + Thrown when index less than 0 or index greater than or equal to Length + + + + + Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference. + It can be used for pinning and is required to support the use of span within a fixed statement. + + + + + Clears the contents of this span. + + + + + Fills the contents of this span with the given value. + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + The span to copy items into. + + Thrown when the destination Span is shorter than the source Span. + + + + + + Copies the contents of this span into destination span. If the source + and destinations overlap, this method behaves as if the original values in + a temporary location before the destination is overwritten. + + If the destination span is shorter than the source span, this method + return false and no data is written to the destination. + + The span to copy items into. + + + + Returns true if left and right point at the same memory and have the same length. Note that + this does *not* check to see if the *contents* are equal. + + + + + Defines an implicit conversion of a to a + + + + + For , returns a new instance of string that represents the characters pointed to by the span. + Otherwise, returns a with the name of the type and the number of elements. + + + + + Forms a slice out of the given span, beginning at 'start'. + + The index at which to begin this slice. + + Thrown when the specified index is not in range (<0 or >=Length). + + + + + Forms a slice out of the given span, beginning at 'start', of given length + + The index at which to begin this slice. + The desired length for the slice (exclusive). + + Thrown when the specified or end index is not in range (<0 or >=Length). + + + + + Copies the contents of this span into a new array. This heap + allocates, so should generally be avoided, however it is sometimes + necessary to bridge the gap with APIs written in terms of arrays. + + + + + This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead. + Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element + would have been stored. Such a reference can be used for pinning but must never be dereferenced. + + + + + Implements the copy functionality used by Span and ReadOnlySpan. + + NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation + is only used by portable span. The code must live in code that only compiles + for portable span which means either each individual span implementation + of this shared code file. Other shared SpanHelper.X.cs files are compiled + for both portable and fast span implementations. + + + + + Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits. + + Assumptions: + Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span. + + If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space), + the behavior is undefined. + + + + + + Determine if a type is eligible for storage in unmanaged memory. + Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}() + + + + Equals() on Span and ReadOnlySpan is not supported. Use operator== instead. + + + GetHashCode() on Span and ReadOnlySpan is not supported. + + + Cannot use type '{0}'. Only value types without pointers or references are supported. + + + Destination is too short. + + + Memory<T> has been disposed. + + + Release all references before disposing this instance. + + + Format specifier was invalid. + + + The 'G' format combined with a precision is not supported. + + + Characters following the format symbol must be a number of {0} or less. + + + Precision cannot be larger than {0}. + + + Overlapping spans have mismatching alignment. + + + End position was not reached during enumeration. + + + Unexpected segment type. + + + diff --git a/packages/System.Memory.4.6.3/lib/netstandard2.1/_._ b/packages/System.Memory.4.6.3/lib/netstandard2.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Numerics.Vectors.4.6.1/.signature.p7s b/packages/System.Numerics.Vectors.4.6.1/.signature.p7s new file mode 100644 index 0000000..81559d9 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/.signature.p7s differ diff --git a/packages/System.Numerics.Vectors.4.6.1/Icon.png b/packages/System.Numerics.Vectors.4.6.1/Icon.png new file mode 100644 index 0000000..a0f1fdb Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/Icon.png differ diff --git a/packages/System.Numerics.Vectors.4.6.1/PACKAGE.md b/packages/System.Numerics.Vectors.4.6.1/PACKAGE.md new file mode 100644 index 0000000..9793ff7 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.6.1/PACKAGE.md @@ -0,0 +1,25 @@ +## About + +Provides hardware-accelerated numeric types, suitable for high-performance processing and graphics applications. + +## Main Types + +The main types provided by this library are: + +- System.Numerics.Matrix3x2 +- System.Numerics.Matrix4x4 +- System.Numerics.Plane +- System.Numerics.Quaternion +- System.Numerics.Vector2 +- System.Numerics.Vector3 +- System.Numerics.Vector4 +- System.Numerics.Vector +- System.Numerics.Vector + +## Additional Documentation + +- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.vectors + +## License + +System.Numerics.Vectors is released as open source under the [MIT license](https://licenses.nuget.org/MIT). diff --git a/packages/System.Numerics.Vectors.4.6.1/System.Numerics.Vectors.4.6.1.nupkg b/packages/System.Numerics.Vectors.4.6.1/System.Numerics.Vectors.4.6.1.nupkg new file mode 100644 index 0000000..9053d75 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/System.Numerics.Vectors.4.6.1.nupkg differ diff --git a/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net461/System.Numerics.Vectors.targets b/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net461/System.Numerics.Vectors.targets new file mode 100644 index 0000000..303ce05 --- /dev/null +++ b/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net461/System.Numerics.Vectors.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net462/_._ b/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net462/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.dll new file mode 100644 index 0000000..95a6d99 Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.xml new file mode 100644 index 0000000..2c6356e --- /dev/null +++ b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.xml @@ -0,0 +1,3451 @@ + + + + System.Numerics.Vectors + + + + + A structure encapsulating a 3x2 matrix. + + + + + The first element of the first row + + + + + The second element of the first row + + + + + The first element of the second row + + + + + The second element of the second row + + + + + The first element of the third row + + + + + The second element of the third row + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix3x2 from the given components. + + + + + Creates a translation matrix from the given vector. + + The translation position. + A translation matrix. + + + + Creates a translation matrix from the given X and Y components. + + The X position. + The Y position. + A translation matrix. + + + + Creates a scale matrix from the given X and Y components. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + A scaling matrix. + + + + Creates a scale matrix that is offset by a given center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + The center point. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale. + + The scale to use. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale with an offset from the given center point. + + The scale to use. + The center offset. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale. + + The uniform scale to use. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale with an offset from the given center. + + The uniform scale to use. + The center offset. + A scaling matrix. + + + + Creates a skew matrix from the given angles in radians. + + The X angle, in radians. + The Y angle, in radians. + A skew matrix. + + + + Creates a skew matrix from the given angles in radians and a center point. + + The X angle, in radians. + The Y angle, in radians. + The center point. + A skew matrix. + + + + Creates a rotation matrix using the given rotation in radians. + + The amount of rotation, in radians. + A rotation matrix. + + + + Creates a rotation matrix using the given rotation in radians and a center point. + + The amount of rotation, in radians. + The center point. + A rotation matrix. + + + + Calculates the determinant for this matrix. + The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1). + + The determinant. + + + + Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter. + + The source matrix. + The output matrix. + True if the operation succeeded, False otherwise. + + + + Linearly interpolates from matrix1 to matrix2, based on the third parameter. + + The first source matrix. + The second source matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Returns a boolean indicating whether the given matrices are equal. + + The first source matrix. + The second source matrix. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given matrices are not equal. + + The first source matrix. + The second source matrix. + True if the matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether the matrix is equal to the other given matrix. + + The other matrix to test equality against. + True if this matrix is equal to other; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 4x4 matrix. + + + + + Value at row 1, column 1 of the matrix. + + + + + Value at row 1, column 2 of the matrix. + + + + + Value at row 1, column 3 of the matrix. + + + + + Value at row 1, column 4 of the matrix. + + + + + Value at row 2, column 1 of the matrix. + + + + + Value at row 2, column 2 of the matrix. + + + + + Value at row 2, column 3 of the matrix. + + + + + Value at row 2, column 4 of the matrix. + + + + + Value at row 3, column 1 of the matrix. + + + + + Value at row 3, column 2 of the matrix. + + + + + Value at row 3, column 3 of the matrix. + + + + + Value at row 3, column 4 of the matrix. + + + + + Value at row 4, column 1 of the matrix. + + + + + Value at row 4, column 2 of the matrix. + + + + + Value at row 4, column 3 of the matrix. + + + + + Value at row 4, column 4 of the matrix. + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix4x4 from the given components. + + + + + Constructs a Matrix4x4 from the given Matrix3x2. + + The source Matrix3x2. + + + + Creates a spherical billboard that rotates around a specified object position. + + Position of the object the billboard will rotate around. + Position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard matrix + + + + Creates a cylindrical billboard that rotates around a specified axis. + + Position of the object the billboard will rotate around. + Position of the camera. + Axis to rotate the billboard around. + Forward vector of the camera. + Forward vector of the object. + The created billboard matrix. + + + + Creates a translation matrix. + + The amount to translate in each axis. + The translation matrix. + + + + Creates a translation matrix. + + The amount to translate on the X-axis. + The amount to translate on the Y-axis. + The amount to translate on the Z-axis. + The translation matrix. + + + + Creates a scaling matrix. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The center point. + The scaling matrix. + + + + Creates a scaling matrix. + + The vector containing the amount to scale by on each axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + The vector containing the amount to scale by on each axis. + The center point. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis. + + The uniform scaling factor. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + + The uniform scaling factor. + The center point. + The scaling matrix. + + + + Creates a matrix for rotating points around the X-axis. + + The amount, in radians, by which to rotate around the X-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the X-axis, from a center point. + + The amount, in radians, by which to rotate around the X-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis. + + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis, from a center point. + + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis. + + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis, from a center point. + + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + + Creates a matrix that rotates around an arbitrary vector. + + The axis to rotate around. + The angle to rotate around the given axis, in radians. + The rotation matrix. + + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + + Field of view in the y direction, in radians. + Aspect ratio, defined as view space width divided by height. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a perspective projection matrix from the given view volume dimensions. + + Width of the view volume at the near view plane. + Height of the view volume at the near view plane. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a customized, perspective projection matrix. + + Minimum x-value of the view volume at the near view plane. + Maximum x-value of the view volume at the near view plane. + Minimum y-value of the view volume at the near view plane. + Maximum y-value of the view volume at the near view plane. + Distance to the near view plane. + Distance to of the far view plane. + The perspective projection matrix. + + + + Creates an orthographic perspective matrix from the given view volume dimensions. + + Width of the view volume. + Height of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Builds a customized, orthographic projection matrix. + + Minimum X-value of the view volume. + Maximum X-value of the view volume. + Minimum Y-value of the view volume. + Maximum Y-value of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Creates a view matrix. + + The position of the camera. + The target towards which the camera is pointing. + The direction that is "up" from the camera's point of view. + The view matrix. + + + + Creates a world matrix with the specified parameters. + + The position of the object; used in translation operations. + Forward direction of the object. + Upward direction of the object; usually [0, 1, 0]. + The world matrix. + + + + Creates a rotation matrix from the given Quaternion rotation value. + + The source Quaternion. + The rotation matrix. + + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + + Angle of rotation, in radians, around the Y-axis. + Angle of rotation, in radians, around the X-axis. + Angle of rotation, in radians, around the Z-axis. + The rotation matrix. + + + + Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source. + + The direction from which the light that will cast the shadow is coming. + The Plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + + Creates a Matrix that reflects the coordinate system about a specified Plane. + + The Plane about which to create a reflection. + A new matrix expressing the reflection. + + + + Calculates the determinant of the matrix. + + The determinant of the matrix. + + + + Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix. + + The source matrix to invert. + If successful, contains the inverted matrix. + True if the source matrix could be inverted; False otherwise. + + + + Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix. + If successful, the out parameters will contained the extracted values. + + The source matrix. + The scaling component of the transformation matrix. + The rotation component of the transformation matrix. + The translation component of the transformation matrix + True if the source matrix was successfully decomposed; False otherwise. + + + + Transforms the given matrix by applying the given Quaternion rotation. + + The source matrix to transform. + The rotation to apply. + The transformed matrix. + + + + Transposes the rows and columns of a matrix. + + The source matrix. + The transposed matrix. + + + + Linearly interpolates between the corresponding values of two matrices. + + The first source matrix. + The second source matrix. + The relative weight of the second source matrix. + The interpolated matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a boolean indicating whether the given two matrices are equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given two matrices are not equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether this matrix instance is equal to the other given matrix. + + The matrix to compare this instance to. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 3D Plane + + + + + The normal vector of the Plane. + + + + + The distance of the Plane along its normal from the origin. + + + + + Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + + The X-component of the normal. + The Y-component of the normal. + The Z-component of the normal. + The distance of the Plane along its normal from the origin. + + + + Constructs a Plane from the given normal and distance along the normal from the origin. + + The Plane's normal vector. + The Plane's distance from the origin along its normal vector. + + + + Constructs a Plane from the given Vector4. + + A vector whose first 3 elements describe the normal vector, + and whose W component defines the distance along that normal from the origin. + + + + Creates a Plane that contains the three given points. + + The first point defining the Plane. + The second point defining the Plane. + The third point defining the Plane. + The Plane containing the three points. + + + + Creates a new Plane whose normal vector is the source Plane's normal vector normalized. + + The source Plane. + The normalized Plane. + + + + Transforms a normalized Plane by a Matrix. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The transformation matrix to apply to the Plane. + The transformed Plane. + + + + Transforms a normalized Plane by a Quaternion rotation. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The Quaternion rotation to apply to the Plane. + A new Plane that results from applying the rotation. + + + + Calculates the dot product of a Plane and Vector4. + + The Plane. + The Vector4. + The dot product. + + + + Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane. + + The plane. + The Vector3. + The resulting value. + + + + Returns the dot product of a specified Vector3 and the Normal vector of this Plane. + + The plane. + The Vector3. + The resulting dot product. + + + + Returns a boolean indicating whether the two given Planes are equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Planes are not equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Plane is equal to this Plane instance. + + The Plane to compare this instance to. + True if the other Plane is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Plane instance. + + The Object to compare against. + True if the Object is equal to this Plane; False otherwise. + + + + Returns a String representing this Plane instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a four-dimensional vector (x,y,z,w), + which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2). + + + + + Specifies the X-value of the vector component of the Quaternion. + + + + + Specifies the Y-value of the vector component of the Quaternion. + + + + + Specifies the Z-value of the vector component of the Quaternion. + + + + + Specifies the rotation component of the Quaternion. + + + + + Returns a Quaternion representing no rotation. + + + + + Returns whether the Quaternion is the identity Quaternion. + + + + + Constructs a Quaternion from the given components. + + The X component of the Quaternion. + The Y component of the Quaternion. + The Z component of the Quaternion. + The W component of the Quaternion. + + + + Constructs a Quaternion from the given vector and rotation parts. + + The vector part of the Quaternion. + The rotation part of the Quaternion. + + + + Calculates the length of the Quaternion. + + The computed length of the Quaternion. + + + + Calculates the length squared of the Quaternion. This operation is cheaper than Length(). + + The length squared of the Quaternion. + + + + Divides each component of the Quaternion by the length of the Quaternion. + + The source Quaternion. + The normalized Quaternion. + + + + Creates the conjugate of a specified Quaternion. + + The Quaternion of which to return the conjugate. + A new Quaternion that is the conjugate of the specified one. + + + + Returns the inverse of a Quaternion. + + The source Quaternion. + The inverted Quaternion. + + + + Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector. + + The unit vector to rotate around. + This vector must be normalized before calling this function or the resulting Quaternion will be incorrect. + The angle, in radians, to rotate around the vector. + The created Quaternion. + + + + Creates a new Quaternion from the given yaw, pitch, and roll, in radians. + + The yaw angle, in radians, around the Y-axis. + The pitch angle, in radians, around the X-axis. + The roll angle, in radians, around the Z-axis. + + + + + Creates a Quaternion from the given rotation matrix. + + The rotation matrix. + The created Quaternion. + + + + Calculates the dot product of two Quaternions. + + The first source Quaternion. + The second source Quaternion. + The dot product of the Quaternions. + + + + Interpolates between two quaternions, using spherical linear interpolation. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Linearly interpolates between two quaternions. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation. + + The first Quaternion rotation in the series. + The second Quaternion rotation in the series. + A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Returns a boolean indicating whether the two given Quaternions are equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Quaternions are not equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance. + + The Quaternion to compare this instance to. + True if the other Quaternion is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Quaternion instance. + + The Object to compare against. + True if the Object is equal to this Quaternion; False otherwise. + + + + Returns a String representing this Quaternion instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure describing the layout of an SSE2-sized register. + Contains overlapping fields representing the set of valid numeric types. + Allows the generic Vector'T struct to contain an explicit field layout. + + + + + A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent. + This struct only supports numerical types. This type is intended to be used as a building block for vectorizing + large algorithms. This type is immutable, individual elements cannot be modified. + + + + + Returns the number of elements stored in the vector. This value is hardware dependent. + + + + + Returns a vector containing all zeroes. + + + + + Returns a vector containing all ones. + + + + + Constructs a vector whose components are all value + + + + + Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count. + + + + + Constructs a vector from the given array, starting from the given index. + The array must contain at least Vector'T.Count from the given index. + + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + If the destination array is null + If number of elements in source vector is greater than those available in destination array + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + The index to start copying to + If the destination array is null + If index is greater than end of the array or index is less than zero + If number of elements in source vector is greater than those available in destination array + + + + Returns the element at the given index. + + + + + Returns a boolean indicating whether the given Object is equal to this vector instance. + + The Object to compare against. + True if the Object is equal to this vector; False otherwise. + + + + Returns a boolean indicating whether the given vector is equal to this vector instance. + + The vector to compare this instance to. + True if the other vector is equal to this instance; False otherwise. + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a String representing this vector. + + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if left and right are not equal; False otherwise. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another. + + + + + Widens a Vector{Byte} into two Vector{UInt16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt16} into two Vector{UInt32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt32} into two Vector{UInt64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{SByte} into two Vector{Int16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int16} into two Vector{Int32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int32} into two Vector{Int64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Single} into two Vector{Double}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Narrows two Vector{UInt16}'s into one Vector{Byte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Byte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt32}'s into one Vector{UInt16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt64}'s into one Vector{UInt32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int16}'s into one Vector{SByte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{SByte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int32}'s into one Vector{Int16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int64}'s into one Vector{Int32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Double}'s into one Vector{Single}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Single} containing elements narrowed from the source vectors. + + + + + Converts a Vector{Int32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{Int64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{Int32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{UInt32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{Int64}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{UInt64}. + + The source vector. + The converted vector. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if any element pairs are equal; False if no element pairs are equal. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right. + elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all of the elements in left are greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support. + + + + + Returns a new vector whose elements are the absolute values of the given vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The minimum vector. + + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The maximum vector. + + + + Returns the dot product of two vectors. + + The first source vector. + The second source vector. + The dot product. + + + + Returns a new vector whose elements are the square roots of the given vector's elements. + + The source vector. + The square root vector. + + + + Creates a new vector whose values are the sum of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Creates a new vector whose values are the difference between each pairs of elements in the given vectors. + + The first source vector. + The second source vector. + The difference vector. + + + + Creates a new vector whose values are the product of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The source vector. + The scalar factor. + The scaled vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The scalar factor. + The source vector. + The scaled vector. + + + + Returns a new vector whose values are the result of dividing the first vector's elements + by the corresponding elements in the second vector. + + The first source vector. + The second source vector. + The divided vector. + + + + Returns a new vector whose elements are the given vector's elements negated. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + A structure encapsulating two single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0). + + + + + Returns the vector (1,1). + + + + + Returns the vector (1,0). + + + + + Returns the vector (0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector2 instance. + + The Object to compare against. + True if the Object is equal to this Vector2; False otherwise. + + + + Returns a String representing this Vector2 instance. + + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + + + + Copies the contents of the vector into the given array. + + The destination array. + + + + Copies the contents of the vector into the given array, starting from the given index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array + or if there are not enough elements to copy. + + + + Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance. + + The Vector2 to compare this instance to. + True if the other Vector2 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors + + The first source vector + The second source vector + The maximized vector + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating three single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0). + + + + + Returns the vector (1,1,1). + + + + + Returns the vector (1,0,0). + + + + + Returns the vector (0,1,0). + + + + + Returns the vector (0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector3 instance. + + The Object to compare against. + True if the Object is equal to this Vector3; False otherwise. + + + + Returns a String representing this Vector3 instance. + + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Computes the cross product of two vectors. + + The first vector. + The second vector. + The cross product. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a Vector3 from the given Vector2 and a third value. + + The Vector to extract X and Y components from. + The Z component. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + The Z component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance. + + The Vector3 to compare this instance to. + True if the other Vector3 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating four single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0,0). + + + + + Returns the vector (1,1,1,1). + + + + + Returns the vector (1,0,0,0). + + + + + Returns the vector (0,1,0,0). + + + + + Returns the vector (0,0,1,0). + + + + + Returns the vector (0,0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector4 instance. + + The Object to compare against. + True if the Object is equal to this Vector4; False otherwise. + + + + Returns a String representing this Vector4 instance. + + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. This operation is cheaper than Length(). + + The vector's length. + + + + Returns the length of the vector squared. + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + The W component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + W component. + X component. + Y component. + Z component. + + + + Constructs a Vector4 from the given Vector2 and a Z and W component. + + The vector to use as the X and Y components. + The Z component. + The W component. + + + + Constructs a Vector4 from the given Vector3 and a W component. + + The vector to use as the X, Y, and Z components. + The W component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance. + + The Vector4 to compare this instance to. + True if the other Vector4 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + Index was out of bounds: + + + Number of elements in source vector is greater than the destination array + + + The method was called with a null array argument. + + + Specified type is not supported + + + At least {0} element(s) are expected in the parameter "{1}". + + + diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netcoreapp2.0/_._ b/packages/System.Numerics.Vectors.4.6.1/lib/netcoreapp2.0/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.dll new file mode 100644 index 0000000..3257d7a Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.dll differ diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.xml new file mode 100644 index 0000000..2c6356e --- /dev/null +++ b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.xml @@ -0,0 +1,3451 @@ + + + + System.Numerics.Vectors + + + + + A structure encapsulating a 3x2 matrix. + + + + + The first element of the first row + + + + + The second element of the first row + + + + + The first element of the second row + + + + + The second element of the second row + + + + + The first element of the third row + + + + + The second element of the third row + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix3x2 from the given components. + + + + + Creates a translation matrix from the given vector. + + The translation position. + A translation matrix. + + + + Creates a translation matrix from the given X and Y components. + + The X position. + The Y position. + A translation matrix. + + + + Creates a scale matrix from the given X and Y components. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + A scaling matrix. + + + + Creates a scale matrix that is offset by a given center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + The center point. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale. + + The scale to use. + A scaling matrix. + + + + Creates a scale matrix from the given vector scale with an offset from the given center point. + + The scale to use. + The center offset. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale. + + The uniform scale to use. + A scaling matrix. + + + + Creates a scale matrix that scales uniformly with the given scale with an offset from the given center. + + The uniform scale to use. + The center offset. + A scaling matrix. + + + + Creates a skew matrix from the given angles in radians. + + The X angle, in radians. + The Y angle, in radians. + A skew matrix. + + + + Creates a skew matrix from the given angles in radians and a center point. + + The X angle, in radians. + The Y angle, in radians. + The center point. + A skew matrix. + + + + Creates a rotation matrix using the given rotation in radians. + + The amount of rotation, in radians. + A rotation matrix. + + + + Creates a rotation matrix using the given rotation in radians and a center point. + + The amount of rotation, in radians. + The center point. + A rotation matrix. + + + + Calculates the determinant for this matrix. + The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1). + + The determinant. + + + + Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter. + + The source matrix. + The output matrix. + True if the operation succeeded, False otherwise. + + + + Linearly interpolates from matrix1 to matrix2, based on the third parameter. + + The first source matrix. + The second source matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Negates the given matrix by multiplying all values by -1. + + The source matrix. + The negated matrix. + + + + Adds each matrix element in value1 with its corresponding element in value2. + + The first source matrix. + The second source matrix. + The matrix containing the summed values. + + + + Subtracts each matrix element in value2 from its corresponding element in value1. + + The first source matrix. + The second source matrix. + The matrix containing the resulting values. + + + + Multiplies two matrices together and returns the resulting matrix. + + The first source matrix. + The second source matrix. + The product matrix. + + + + Scales all elements in a matrix by the given scalar factor. + + The source matrix. + The scaling value to use. + The resulting matrix. + + + + Returns a boolean indicating whether the given matrices are equal. + + The first source matrix. + The second source matrix. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given matrices are not equal. + + The first source matrix. + The second source matrix. + True if the matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether the matrix is equal to the other given matrix. + + The other matrix to test equality against. + True if this matrix is equal to other; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 4x4 matrix. + + + + + Value at row 1, column 1 of the matrix. + + + + + Value at row 1, column 2 of the matrix. + + + + + Value at row 1, column 3 of the matrix. + + + + + Value at row 1, column 4 of the matrix. + + + + + Value at row 2, column 1 of the matrix. + + + + + Value at row 2, column 2 of the matrix. + + + + + Value at row 2, column 3 of the matrix. + + + + + Value at row 2, column 4 of the matrix. + + + + + Value at row 3, column 1 of the matrix. + + + + + Value at row 3, column 2 of the matrix. + + + + + Value at row 3, column 3 of the matrix. + + + + + Value at row 3, column 4 of the matrix. + + + + + Value at row 4, column 1 of the matrix. + + + + + Value at row 4, column 2 of the matrix. + + + + + Value at row 4, column 3 of the matrix. + + + + + Value at row 4, column 4 of the matrix. + + + + + Returns the multiplicative identity matrix. + + + + + Returns whether the matrix is the identity matrix. + + + + + Gets or sets the translation component of this matrix. + + + + + Constructs a Matrix4x4 from the given components. + + + + + Constructs a Matrix4x4 from the given Matrix3x2. + + The source Matrix3x2. + + + + Creates a spherical billboard that rotates around a specified object position. + + Position of the object the billboard will rotate around. + Position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard matrix + + + + Creates a cylindrical billboard that rotates around a specified axis. + + Position of the object the billboard will rotate around. + Position of the camera. + Axis to rotate the billboard around. + Forward vector of the camera. + Forward vector of the object. + The created billboard matrix. + + + + Creates a translation matrix. + + The amount to translate in each axis. + The translation matrix. + + + + Creates a translation matrix. + + The amount to translate on the X-axis. + The amount to translate on the Y-axis. + The amount to translate on the Z-axis. + The translation matrix. + + + + Creates a scaling matrix. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + Value to scale by on the X-axis. + Value to scale by on the Y-axis. + Value to scale by on the Z-axis. + The center point. + The scaling matrix. + + + + Creates a scaling matrix. + + The vector containing the amount to scale by on each axis. + The scaling matrix. + + + + Creates a scaling matrix with a center point. + + The vector containing the amount to scale by on each axis. + The center point. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis. + + The uniform scaling factor. + The scaling matrix. + + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + + The uniform scaling factor. + The center point. + The scaling matrix. + + + + Creates a matrix for rotating points around the X-axis. + + The amount, in radians, by which to rotate around the X-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the X-axis, from a center point. + + The amount, in radians, by which to rotate around the X-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis. + + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Y-axis, from a center point. + + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis. + + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + + Creates a matrix for rotating points around the Z-axis, from a center point. + + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + + Creates a matrix that rotates around an arbitrary vector. + + The axis to rotate around. + The angle to rotate around the given axis, in radians. + The rotation matrix. + + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + + Field of view in the y direction, in radians. + Aspect ratio, defined as view space width divided by height. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a perspective projection matrix from the given view volume dimensions. + + Width of the view volume at the near view plane. + Height of the view volume at the near view plane. + Distance to the near view plane. + Distance to the far view plane. + The perspective projection matrix. + + + + Creates a customized, perspective projection matrix. + + Minimum x-value of the view volume at the near view plane. + Maximum x-value of the view volume at the near view plane. + Minimum y-value of the view volume at the near view plane. + Maximum y-value of the view volume at the near view plane. + Distance to the near view plane. + Distance to of the far view plane. + The perspective projection matrix. + + + + Creates an orthographic perspective matrix from the given view volume dimensions. + + Width of the view volume. + Height of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Builds a customized, orthographic projection matrix. + + Minimum X-value of the view volume. + Maximum X-value of the view volume. + Minimum Y-value of the view volume. + Maximum Y-value of the view volume. + Minimum Z-value of the view volume. + Maximum Z-value of the view volume. + The orthographic projection matrix. + + + + Creates a view matrix. + + The position of the camera. + The target towards which the camera is pointing. + The direction that is "up" from the camera's point of view. + The view matrix. + + + + Creates a world matrix with the specified parameters. + + The position of the object; used in translation operations. + Forward direction of the object. + Upward direction of the object; usually [0, 1, 0]. + The world matrix. + + + + Creates a rotation matrix from the given Quaternion rotation value. + + The source Quaternion. + The rotation matrix. + + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + + Angle of rotation, in radians, around the Y-axis. + Angle of rotation, in radians, around the X-axis. + Angle of rotation, in radians, around the Z-axis. + The rotation matrix. + + + + Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source. + + The direction from which the light that will cast the shadow is coming. + The Plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + + Creates a Matrix that reflects the coordinate system about a specified Plane. + + The Plane about which to create a reflection. + A new matrix expressing the reflection. + + + + Calculates the determinant of the matrix. + + The determinant of the matrix. + + + + Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix. + + The source matrix to invert. + If successful, contains the inverted matrix. + True if the source matrix could be inverted; False otherwise. + + + + Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix. + If successful, the out parameters will contained the extracted values. + + The source matrix. + The scaling component of the transformation matrix. + The rotation component of the transformation matrix. + The translation component of the transformation matrix + True if the source matrix was successfully decomposed; False otherwise. + + + + Transforms the given matrix by applying the given Quaternion rotation. + + The source matrix to transform. + The rotation to apply. + The transformed matrix. + + + + Transposes the rows and columns of a matrix. + + The source matrix. + The transposed matrix. + + + + Linearly interpolates between the corresponding values of two matrices. + + The first source matrix. + The second source matrix. + The relative weight of the second source matrix. + The interpolated matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a new matrix with the negated elements of the given matrix. + + The source matrix. + The negated matrix. + + + + Adds two matrices together. + + The first source matrix. + The second source matrix. + The resulting matrix. + + + + Subtracts the second matrix from the first. + + The first source matrix. + The second source matrix. + The result of the subtraction. + + + + Multiplies a matrix by another matrix. + + The first source matrix. + The second source matrix. + The result of the multiplication. + + + + Multiplies a matrix by a scalar value. + + The source matrix. + The scaling factor. + The scaled matrix. + + + + Returns a boolean indicating whether the given two matrices are equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given two matrices are not equal. + + The first matrix to compare. + The second matrix to compare. + True if the given matrices are not equal; False if they are equal. + + + + Returns a boolean indicating whether this matrix instance is equal to the other given matrix. + + The matrix to compare this instance to. + True if the matrices are equal; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this matrix instance. + + The Object to compare against. + True if the Object is equal to this matrix; False otherwise. + + + + Returns a String representing this matrix instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a 3D Plane + + + + + The normal vector of the Plane. + + + + + The distance of the Plane along its normal from the origin. + + + + + Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + + The X-component of the normal. + The Y-component of the normal. + The Z-component of the normal. + The distance of the Plane along its normal from the origin. + + + + Constructs a Plane from the given normal and distance along the normal from the origin. + + The Plane's normal vector. + The Plane's distance from the origin along its normal vector. + + + + Constructs a Plane from the given Vector4. + + A vector whose first 3 elements describe the normal vector, + and whose W component defines the distance along that normal from the origin. + + + + Creates a Plane that contains the three given points. + + The first point defining the Plane. + The second point defining the Plane. + The third point defining the Plane. + The Plane containing the three points. + + + + Creates a new Plane whose normal vector is the source Plane's normal vector normalized. + + The source Plane. + The normalized Plane. + + + + Transforms a normalized Plane by a Matrix. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The transformation matrix to apply to the Plane. + The transformed Plane. + + + + Transforms a normalized Plane by a Quaternion rotation. + + The normalized Plane to transform. + This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called. + The Quaternion rotation to apply to the Plane. + A new Plane that results from applying the rotation. + + + + Calculates the dot product of a Plane and Vector4. + + The Plane. + The Vector4. + The dot product. + + + + Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane. + + The plane. + The Vector3. + The resulting value. + + + + Returns the dot product of a specified Vector3 and the Normal vector of this Plane. + + The plane. + The Vector3. + The resulting dot product. + + + + Returns a boolean indicating whether the two given Planes are equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Planes are not equal. + + The first Plane to compare. + The second Plane to compare. + True if the Planes are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Plane is equal to this Plane instance. + + The Plane to compare this instance to. + True if the other Plane is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Plane instance. + + The Object to compare against. + True if the Object is equal to this Plane; False otherwise. + + + + Returns a String representing this Plane instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure encapsulating a four-dimensional vector (x,y,z,w), + which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2). + + + + + Specifies the X-value of the vector component of the Quaternion. + + + + + Specifies the Y-value of the vector component of the Quaternion. + + + + + Specifies the Z-value of the vector component of the Quaternion. + + + + + Specifies the rotation component of the Quaternion. + + + + + Returns a Quaternion representing no rotation. + + + + + Returns whether the Quaternion is the identity Quaternion. + + + + + Constructs a Quaternion from the given components. + + The X component of the Quaternion. + The Y component of the Quaternion. + The Z component of the Quaternion. + The W component of the Quaternion. + + + + Constructs a Quaternion from the given vector and rotation parts. + + The vector part of the Quaternion. + The rotation part of the Quaternion. + + + + Calculates the length of the Quaternion. + + The computed length of the Quaternion. + + + + Calculates the length squared of the Quaternion. This operation is cheaper than Length(). + + The length squared of the Quaternion. + + + + Divides each component of the Quaternion by the length of the Quaternion. + + The source Quaternion. + The normalized Quaternion. + + + + Creates the conjugate of a specified Quaternion. + + The Quaternion of which to return the conjugate. + A new Quaternion that is the conjugate of the specified one. + + + + Returns the inverse of a Quaternion. + + The source Quaternion. + The inverted Quaternion. + + + + Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector. + + The unit vector to rotate around. + This vector must be normalized before calling this function or the resulting Quaternion will be incorrect. + The angle, in radians, to rotate around the vector. + The created Quaternion. + + + + Creates a new Quaternion from the given yaw, pitch, and roll, in radians. + + The yaw angle, in radians, around the Y-axis. + The pitch angle, in radians, around the X-axis. + The roll angle, in radians, around the Z-axis. + + + + + Creates a Quaternion from the given rotation matrix. + + The rotation matrix. + The created Quaternion. + + + + Calculates the dot product of two Quaternions. + + The first source Quaternion. + The second source Quaternion. + The dot product of the Quaternions. + + + + Interpolates between two quaternions, using spherical linear interpolation. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Linearly interpolates between two quaternions. + + The first source Quaternion. + The second source Quaternion. + The relative weight of the second source Quaternion in the interpolation. + The interpolated Quaternion. + + + + Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation. + + The first Quaternion rotation in the series. + The second Quaternion rotation in the series. + A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Flips the sign of each component of the quaternion. + + The source Quaternion. + The negated Quaternion. + + + + Adds two Quaternions element-by-element. + + The first source Quaternion. + The second source Quaternion. + The result of adding the Quaternions. + + + + Subtracts one Quaternion from another. + + The first source Quaternion. + The second Quaternion, to be subtracted from the first. + The result of the subtraction. + + + + Multiplies two Quaternions together. + + The Quaternion on the left side of the multiplication. + The Quaternion on the right side of the multiplication. + The result of the multiplication. + + + + Multiplies a Quaternion by a scalar value. + + The source Quaternion. + The scalar value. + The result of the multiplication. + + + + Divides a Quaternion by another Quaternion. + + The source Quaternion. + The divisor. + The result of the division. + + + + Returns a boolean indicating whether the two given Quaternions are equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are equal; False otherwise. + + + + Returns a boolean indicating whether the two given Quaternions are not equal. + + The first Quaternion to compare. + The second Quaternion to compare. + True if the Quaternions are not equal; False if they are equal. + + + + Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance. + + The Quaternion to compare this instance to. + True if the other Quaternion is equal to this instance; False otherwise. + + + + Returns a boolean indicating whether the given Object is equal to this Quaternion instance. + + The Object to compare against. + True if the Object is equal to this Quaternion; False otherwise. + + + + Returns a String representing this Quaternion instance. + + The string representation. + + + + Returns the hash code for this instance. + + The hash code. + + + + A structure describing the layout of an SSE2-sized register. + Contains overlapping fields representing the set of valid numeric types. + Allows the generic Vector'T struct to contain an explicit field layout. + + + + + A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent. + This struct only supports numerical types. This type is intended to be used as a building block for vectorizing + large algorithms. This type is immutable, individual elements cannot be modified. + + + + + Returns the number of elements stored in the vector. This value is hardware dependent. + + + + + Returns a vector containing all zeroes. + + + + + Returns a vector containing all ones. + + + + + Constructs a vector whose components are all value + + + + + Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count. + + + + + Constructs a vector from the given array, starting from the given index. + The array must contain at least Vector'T.Count from the given index. + + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + If the destination array is null + If number of elements in source vector is greater than those available in destination array + + + + Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count. + + The destination array which the values are copied into + The index to start copying to + If the destination array is null + If index is greater than end of the array or index is less than zero + If number of elements in source vector is greater than those available in destination array + + + + Returns the element at the given index. + + + + + Returns a boolean indicating whether the given Object is equal to this vector instance. + + The Object to compare against. + True if the Object is equal to this vector; False otherwise. + + + + Returns a boolean indicating whether the given vector is equal to this vector instance. + + The vector to compare this instance to. + True if the other vector is equal to this instance; False otherwise. + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a String representing this vector. + + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this vector, using the specified format string to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if left and right are not equal; False otherwise. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of another type. + + The source vector + The reinterpreted vector. + + + + Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another. + + + + + Widens a Vector{Byte} into two Vector{UInt16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt16} into two Vector{UInt32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{UInt32} into two Vector{UInt64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{SByte} into two Vector{Int16}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int16} into two Vector{Int32}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Int32} into two Vector{Int64}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Widens a Vector{Single} into two Vector{Double}'s. + The source vector whose elements are widened into the outputs. + The first output vector, whose elements will contain the widened elements from lower indices in the source vector. + The second output vector, whose elements will contain the widened elements from higher indices in the source vector. + + + + + Narrows two Vector{UInt16}'s into one Vector{Byte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Byte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt32}'s into one Vector{UInt16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{UInt64}'s into one Vector{UInt32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{UInt32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int16}'s into one Vector{SByte}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{SByte} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int32}'s into one Vector{Int16}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int16} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Int64}'s into one Vector{Int32}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Int32} containing elements narrowed from the source vectors. + + + + + Narrows two Vector{Double}'s into one Vector{Single}. + The first source vector, whose elements become the lower-index elements of the return value. + The second source vector, whose elements become the higher-index elements of the return value. + A Vector{Single} containing elements narrowed from the source vectors. + + + + + Converts a Vector{Int32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt32} to a Vector{Single}. + + The source vector. + The converted vector. + + + + Converts a Vector{Int64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{UInt64} to a Vector{Double}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{Int32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Single} to a Vector{UInt32}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{Int64}. + + The source vector. + The converted vector. + + + + Converts a Vector{Double} to a Vector{UInt64}. + + The source vector. + The converted vector. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Creates a new vector with elements selected between the two given source vectors, and based on a mask vector. + + The mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left and right were equal. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether each pair of elements in the given vectors are equal. + + The first vector to compare. + The first vector to compare. + True if all elements are equal; False otherwise. + + + + Returns a boolean indicating whether any single pair of elements in the given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if any element pairs are equal; False if no element pairs are equal. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were less than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are less than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are less than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right. + elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than their corresponding elements in right; False otherwise. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns a new vector whose elements signal whether the elements in left were greater than or equal to their + corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant vector. + + + + Returns an integral vector whose elements signal whether the elements in left were greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + The resultant integral vector. + + + + Returns a boolean indicating whether all of the elements in left are greater than or equal to + their corresponding elements in right. + + The first vector to compare. + The second vector to compare. + True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right. + + The first vector to compare. + The second vector to compare. + True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise. + + + + Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support. + + + + + Returns a new vector whose elements are the absolute values of the given vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The minimum vector. + + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + + The first source vector. + The second source vector. + The maximum vector. + + + + Returns the dot product of two vectors. + + The first source vector. + The second source vector. + The dot product. + + + + Returns a new vector whose elements are the square roots of the given vector's elements. + + The source vector. + The square root vector. + + + + Creates a new vector whose values are the sum of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Creates a new vector whose values are the difference between each pairs of elements in the given vectors. + + The first source vector. + The second source vector. + The difference vector. + + + + Creates a new vector whose values are the product of each pair of elements from the two given vectors. + + The first source vector. + The second source vector. + The summed vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The source vector. + The scalar factor. + The scaled vector. + + + + Returns a new vector whose values are the values of the given vector each multiplied by a scalar value. + + The scalar factor. + The source vector. + The scaled vector. + + + + Returns a new vector whose values are the result of dividing the first vector's elements + by the corresponding elements in the second vector. + + The first source vector. + The second source vector. + The divided vector. + + + + Returns a new vector whose elements are the given vector's elements negated. + + The source vector. + The negated vector. + + + + Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements. + + The source vector. + The one's complement vector. + + + + Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors. + + The first source vector. + The second source vector. + The resultant vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed bytes. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers. + + The source vector + The reinterpreted vector. + + + + A structure encapsulating two single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0). + + + + + Returns the vector (1,1). + + + + + Returns the vector (1,0). + + + + + Returns the vector (0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector2 instance. + + The Object to compare against. + True if the Object is equal to this Vector2; False otherwise. + + + + Returns a String representing this Vector2 instance. + + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector2 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + + + + Copies the contents of the vector into the given array. + + The destination array. + + + + Copies the contents of the vector into the given array, starting from the given index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array + or if there are not enough elements to copy. + + + + Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance. + + The Vector2 to compare this instance to. + True if the other Vector2 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors + + The first source vector + The second source vector + The maximized vector + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating three single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0). + + + + + Returns the vector (1,1,1). + + + + + Returns the vector (1,0,0). + + + + + Returns the vector (0,1,0). + + + + + Returns the vector (0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector3 instance. + + The Object to compare against. + True if the Object is equal to this Vector3; False otherwise. + + + + Returns a String representing this Vector3 instance. + + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector3 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. + + The vector's length. + + + + Returns the length of the vector squared. This operation is cheaper than Length(). + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Computes the cross product of two vectors. + + The first vector. + The second vector. + The cross product. + + + + Returns the reflection of a vector off a surface that has the specified normal. + + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector normal by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a Vector3 from the given Vector2 and a third value. + + The Vector to extract X and Y components from. + The Z component. + + + + Constructs a vector with the given individual elements. + + The X component. + The Y component. + The Z component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance. + + The Vector3 to compare this instance to. + True if the other Vector3 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + + A structure encapsulating four single precision floating point values and provides hardware accelerated methods. + + + + + Returns the vector (0,0,0,0). + + + + + Returns the vector (1,1,1,1). + + + + + Returns the vector (1,0,0,0). + + + + + Returns the vector (0,1,0,0). + + + + + Returns the vector (0,0,1,0). + + + + + Returns the vector (0,0,0,1). + + + + + Returns the hash code for this instance. + + The hash code. + + + + Returns a boolean indicating whether the given Object is equal to this Vector4 instance. + + The Object to compare against. + True if the Object is equal to this Vector4; False otherwise. + + + + Returns a String representing this Vector4 instance. + + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements. + + The format of individual elements. + The string representation. + + + + Returns a String representing this Vector4 instance, using the specified format to format individual elements + and the given IFormatProvider. + + The format of individual elements. + The format provider to use when formatting elements. + The string representation. + + + + Returns the length of the vector. This operation is cheaper than Length(). + + The vector's length. + + + + Returns the length of the vector squared. + + The vector's length squared. + + + + Returns the Euclidean distance between the two given points. + + The first point. + The second point. + The distance. + + + + Returns the Euclidean distance squared between the two given points. + + The first point. + The second point. + The distance squared. + + + + Returns a vector with the same direction as the given vector, but with a length of 1. + + The vector to normalize. + The normalized vector. + + + + Restricts a vector between a min and max value. + + The source vector. + The minimum value. + The maximum value. + The restricted vector. + + + + Linearly interpolates between two vectors based on the given weighting. + + The first source vector. + The second source vector. + Value between 0 and 1 indicating the weight of the second source vector. + The interpolated vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given matrix. + + The source vector. + The transformation matrix. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Transforms a vector by the given Quaternion rotation value. + + The source vector to be rotated. + The rotation to apply. + The transformed vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + The X component of the vector. + + + + + The Y component of the vector. + + + + + The Z component of the vector. + + + + + The W component of the vector. + + + + + Constructs a vector whose elements are all the single specified value. + + The element to fill the vector with. + + + + Constructs a vector with the given individual elements. + + W component. + X component. + Y component. + Z component. + + + + Constructs a Vector4 from the given Vector2 and a Z and W component. + + The vector to use as the X and Y components. + The Z component. + The W component. + + + + Constructs a Vector4 from the given Vector3 and a W component. + + The vector to use as the X, Y, and Z components. + The W component. + + + + Copies the contents of the vector into the given array. + + + + + Copies the contents of the vector into the given array, starting from index. + + If array is null. + If array is multidimensional. + If index is greater than end of the array or index is less than zero. + If number of elements in source vector is greater than those available in destination array. + + + + Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance. + + The Vector4 to compare this instance to. + True if the other Vector4 is equal to this instance; False otherwise. + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product. + + + + Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The minimized vector. + + + + Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors. + + The first source vector. + The second source vector. + The maximized vector. + + + + Returns a vector whose elements are the absolute values of each of the source vector's elements. + + The source vector. + The absolute value vector. + + + + Returns a vector whose elements are the square root of each of the source vector's elements. + + The source vector. + The square root vector. + + + + Adds two vectors together. + + The first source vector. + The second source vector. + The summed vector. + + + + Subtracts the second vector from the first. + + The first source vector. + The second source vector. + The difference vector. + + + + Multiplies two vectors together. + + The first source vector. + The second source vector. + The product vector. + + + + Multiplies a vector by the given scalar. + + The source vector. + The scalar value. + The scaled vector. + + + + Multiplies a vector by the given scalar. + + The scalar value. + The source vector. + The scaled vector. + + + + Divides the first vector by the second. + + The first source vector. + The second source vector. + The vector resulting from the division. + + + + Divides the vector by the given scalar. + + The source vector. + The scalar value. + The result of the division. + + + + Negates a given vector. + + The source vector. + The negated vector. + + + + Returns a boolean indicating whether the two given vectors are equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are equal; False otherwise. + + + + Returns a boolean indicating whether the two given vectors are not equal. + + The first vector to compare. + The second vector to compare. + True if the vectors are not equal; False if they are equal. + + + Index was out of bounds: + + + Number of elements in source vector is greater than the destination array + + + The method was called with a null array argument. + + + Specified type is not supported + + + At least {0} element(s) are expected in the parameter "{1}". + + + diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.1/_._ b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.1/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/.signature.p7s b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/.signature.p7s new file mode 100644 index 0000000..6ba5099 Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/.signature.p7s differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/Icon.png b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/Icon.png new file mode 100644 index 0000000..a0f1fdb Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/Icon.png differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/PACKAGE.md b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/PACKAGE.md new file mode 100644 index 0000000..ba003b0 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/PACKAGE.md @@ -0,0 +1,17 @@ +## About + +Provides the System.Runtime.CompilerServices.Unsafe class, which provides generic, low-level functionality for manipulating pointers and managed byrefs. + +## Main Types + +The main types provided by this library are: + +- System.Runtime.CompilerServices.Unsafe + +## Additional Documentation + +- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.unsafe + +## License + +System.Runtime.CompilerServices.Unsafe is released as open source under the [MIT license](https://licenses.nuget.org/MIT). diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/System.Runtime.CompilerServices.Unsafe.6.1.2.nupkg b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/System.Runtime.CompilerServices.Unsafe.6.1.2.nupkg new file mode 100644 index 0000000..5949e7c Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/System.Runtime.CompilerServices.Unsafe.6.1.2.nupkg differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets new file mode 100644 index 0000000..dee6e54 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net462/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net462/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net6.0/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net6.0/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets new file mode 100644 index 0000000..806acd6 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..7795684 Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7acab80 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,353 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + + Contains generic, low-level functionality for manipulating pointers. + + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A reference to the value to copy. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A pointer to the value to copy. + + + + Returns a pointer to the given by-ref parameter. + + The type of object. + The object whose pointer is obtained. + A pointer to the given value. + + + + Returns the size of an object of the given type parameter. + + The type of object whose size is retrieved. + The size of an object of type . + + + + Casts the given object to the specified type, performs no dynamic type checking. + + The type which the object will be cast to. + The object to cast. + The original object, casted to the given type. + + + + Reinterprets the given location as a reference to a value of type . + + The type of the interpreted location. + The location of the value to reference. + A reference to a value of type . + + + + Reinterprets the given read-only reference as a reference. + + The type of reference. + The read-only reference to reinterpret. + A reference to a value of type . + + + + Reinterprets the given reference as a reference to a value of type . + + The type of reference to reinterpret. + The desired type of the reference. + The reference to reinterpret. + A reference to a value of type . + + + + Returns a reference to the value type contained with the specified box object. + + The type of the value type contained within the box. + The boxed value type. + A reference to a value of type in the box object. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given pointer. + + The type of reference. + The pointer to add the offset to. + The offset to add. + A new pointer that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Determines the byte offset from origin to target from the given references. + + The type of reference. + The reference to origin. + The reference to target. + Byte offset from origin to target i.e. - . + + + + Determines whether the specified references point to the same location. + + The first reference to compare. + The second reference to compare. + true if and point to the same location; otherwise false. + + + + Determines whether the memory address referenced by is greater than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is greater than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Determines whether the memory address referenced by is less than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is less than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Returns if a given reference to a value of type is a null reference. + + The reference to check. + This check is conceptually similar to "(void*)(&source) == nullptr". + + + + Returns a reference to a value of type that is a null reference. + + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..53524fb Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7acab80 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,353 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + + Contains generic, low-level functionality for manipulating pointers. + + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A reference to the value to copy. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A pointer to the value to copy. + + + + Returns a pointer to the given by-ref parameter. + + The type of object. + The object whose pointer is obtained. + A pointer to the given value. + + + + Returns the size of an object of the given type parameter. + + The type of object whose size is retrieved. + The size of an object of type . + + + + Casts the given object to the specified type, performs no dynamic type checking. + + The type which the object will be cast to. + The object to cast. + The original object, casted to the given type. + + + + Reinterprets the given location as a reference to a value of type . + + The type of the interpreted location. + The location of the value to reference. + A reference to a value of type . + + + + Reinterprets the given read-only reference as a reference. + + The type of reference. + The read-only reference to reinterpret. + A reference to a value of type . + + + + Reinterprets the given reference as a reference to a value of type . + + The type of reference to reinterpret. + The desired type of the reference. + The reference to reinterpret. + A reference to a value of type . + + + + Returns a reference to the value type contained with the specified box object. + + The type of the value type contained within the box. + The boxed value type. + A reference to a value of type in the box object. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given pointer. + + The type of reference. + The pointer to add the offset to. + The offset to add. + A new pointer that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Determines the byte offset from origin to target from the given references. + + The type of reference. + The reference to origin. + The reference to target. + Byte offset from origin to target i.e. - . + + + + Determines whether the specified references point to the same location. + + The first reference to compare. + The second reference to compare. + true if and point to the same location; otherwise false. + + + + Determines whether the memory address referenced by is greater than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is greater than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Determines whether the memory address referenced by is less than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is less than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Returns if a given reference to a value of type is a null reference. + + The reference to check. + This check is conceptually similar to "(void*)(&source) == nullptr". + + + + Returns a reference to a value of type that is a null reference. + + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net7.0/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net7.0/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..6e91f06 Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..7acab80 --- /dev/null +++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,353 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + + Contains generic, low-level functionality for manipulating pointers. + + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Reads a value of type from the given location. + + The type to read. + The location to read from. + An object of type read from the given location. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Writes a value of type to the given location. + + The type of value to write. + The location to write to. + The value to write. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A reference to the value to copy. + + + + Copies a value of type to the given location. + + The type of value to copy. + The location to copy to. + A pointer to the value to copy. + + + + Returns a pointer to the given by-ref parameter. + + The type of object. + The object whose pointer is obtained. + A pointer to the given value. + + + + Returns the size of an object of the given type parameter. + + The type of object whose size is retrieved. + The size of an object of type . + + + + Casts the given object to the specified type, performs no dynamic type checking. + + The type which the object will be cast to. + The object to cast. + The original object, casted to the given type. + + + + Reinterprets the given location as a reference to a value of type . + + The type of the interpreted location. + The location of the value to reference. + A reference to a value of type . + + + + Reinterprets the given read-only reference as a reference. + + The type of reference. + The read-only reference to reinterpret. + A reference to a value of type . + + + + Reinterprets the given reference as a reference to a value of type . + + The type of reference to reinterpret. + The desired type of the reference. + The reference to reinterpret. + A reference to a value of type . + + + + Returns a reference to the value type contained with the specified box object. + + The type of the value type contained within the box. + The boxed value type. + A reference to a value of type in the box object. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given pointer. + + The type of reference. + The pointer to add the offset to. + The offset to add. + A new pointer that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds an element offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Adds a byte offset to the given reference. + + The type of reference. + The reference to add the offset to. + The offset to add. + A new reference that reflects the addition of byte offset to pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts an element offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Subtracts a byte offset from the given reference. + + The type of reference. + The reference to subtract the offset from. + The offset to subtract. + A new reference that reflects the subraction of byte offset from pointer. + + + + Determines the byte offset from origin to target from the given references. + + The type of reference. + The reference to origin. + The reference to target. + Byte offset from origin to target i.e. - . + + + + Determines whether the specified references point to the same location. + + The first reference to compare. + The second reference to compare. + true if and point to the same location; otherwise false. + + + + Determines whether the memory address referenced by is greater than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is greater than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Determines whether the memory address referenced by is less than the memory address referenced by . + + The first reference to compare. + The second reference to compare. + true if the memory address referenced by is less than the memory address referenced by ; otherwise false. + + This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span; + or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined. + + + + + Returns if a given reference to a value of type is a null reference. + + The reference to check. + This check is conceptually similar to "(void*)(&source) == nullptr". + + + + Returns a reference to a value of type that is a null reference. + + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Copies bytes from the source address to the destination address + without assuming architecture dependent alignment of the addresses. + + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + + Initializes a block of memory at the given location with a given initial value + without assuming architecture dependent alignment of the address. + + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + +